@tangle-network/brand 1.11.0 → 1.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -56,7 +56,9 @@
56
56
  * from the complete canonical light baseline in tokens.css. */
57
57
  [data-theme="aubergine-light"],
58
58
  [data-theme="arena-light"],
59
- [data-theme="tangle-light"] {
59
+ [data-theme="super-light"],
60
+ [data-theme="tangle-light"],
61
+ [data-theme="agents-light"] {
60
62
  --hsl-secondary-foreground: 0 0% 10%;
61
63
  --surface-neutral-text: #4b5563;
62
64
  }
@@ -81,7 +83,10 @@
81
83
  --border-subtle: rgba(183,157,255,0.12); --border-default: rgba(183,157,255,0.22);
82
84
  --border-hover: rgba(183,157,255,0.40); --accent-text: #c4b0ff;
83
85
  --brand-primary: #8f8bff; --brand-glow: #c4b0ff;
84
- --text-primary: #f4f1fd; --text-secondary: #cec4e8; --text-muted: #a99fc8; --text-dim: #786d99;
86
+ --text-primary: #f4f1fd; --text-secondary: #cec4e8; --text-muted: #b7afd1; --text-dim: #a59ebb;
87
+ --md3-surface: var(--bg-root); --md3-surface-dim: var(--md3-surface-container-lowest);
88
+ --md3-surface-bright: var(--md3-surface-container-highest); --md3-surface-variant: var(--md3-surface-container-high);
89
+ --md3-on-surface: var(--text-primary); --md3-on-surface-variant: var(--text-muted);
85
90
  }
86
91
  [data-theme="aubergine-light"] {
87
92
  --hsl-background: 258 60% 96%; --hsl-foreground: 258 45% 11%;
@@ -100,7 +105,10 @@
100
105
  --border-subtle: rgba(60,32,110,0.10); --border-default: rgba(60,32,110,0.16);
101
106
  --border-hover: rgba(60,32,110,0.30); --accent-text: #6d28d9;
102
107
  --brand-primary: #6d28d9; --brand-glow: #8b5cf6;
103
- --text-primary: #160f22; --text-secondary: #3f3460; --text-muted: #6c6289; --text-dim: #8a82a6;
108
+ --text-primary: #160f22; --text-secondary: #3f3460; --text-muted: #585070; --text-dim: #655d82;
109
+ --md3-surface: var(--bg-root); --md3-surface-dim: var(--depth-2);
110
+ --md3-surface-bright: #ffffff; --md3-surface-variant: var(--md3-surface-container-high);
111
+ --md3-on-surface: var(--text-primary); --md3-on-surface-variant: var(--text-muted);
104
112
  }
105
113
 
106
114
  /* ───────────────────────── Arena — emerald / green accent ────────────────── */
@@ -121,7 +129,10 @@
121
129
  --border-subtle: rgba(52,211,153,0.10); --border-default: rgba(52,211,153,0.18);
122
130
  --border-hover: rgba(52,211,153,0.32); --accent-text: #34d399;
123
131
  --brand-primary: #10b981; --brand-glow: #34d399;
124
- --text-primary: #ecfdf5; --text-secondary: #c2e8d6; --text-muted: #8fb6a3; --text-dim: #5f8472;
132
+ --text-primary: #ecfdf5; --text-secondary: #c2e8d6; --text-muted: #8fb6a3; --text-dim: #7ba08e;
133
+ --md3-surface: var(--bg-root); --md3-surface-dim: var(--md3-surface-container-lowest);
134
+ --md3-surface-bright: var(--md3-surface-container-highest); --md3-surface-variant: var(--md3-surface-container-high);
135
+ --md3-on-surface: var(--text-primary); --md3-on-surface-variant: var(--text-muted);
125
136
  }
126
137
  [data-theme="arena-light"] {
127
138
  --hsl-background: 150 30% 96%; --hsl-foreground: 158 30% 10%;
@@ -140,7 +151,70 @@
140
151
  --border-subtle: rgba(6,95,70,0.10); --border-default: rgba(6,95,70,0.16);
141
152
  --border-hover: rgba(6,95,70,0.30); --accent-text: #047857;
142
153
  --brand-primary: #059669; --brand-glow: #10b981;
143
- --text-primary: #06231a; --text-secondary: #285048; --text-muted: #5f8472; --text-dim: #82a699;
154
+ --text-primary: #06231a; --text-secondary: #285048; --text-muted: #455f52; --text-dim: #4e6d62;
155
+ --md3-surface: var(--bg-root); --md3-surface-dim: var(--depth-2);
156
+ --md3-surface-bright: #ffffff; --md3-surface-variant: var(--md3-surface-container-high);
157
+ --md3-on-surface: var(--text-primary); --md3-on-surface-variant: var(--text-muted);
158
+ }
159
+
160
+ /* ───────────────────────── Super — warm neutral / forest accent ─────────────
161
+ * SUPER, the local logistics app. Warm green-grey planes with a forest action
162
+ * colour. Light is the product's primary mode; dark keeps the same hue family.
163
+ * Status and category tones are inherited, never retinted. */
164
+ [data-theme="super"] {
165
+ --hsl-background: 120 12% 8%; --hsl-foreground: 86 20% 93%;
166
+ --hsl-card: 120 11% 12%; --hsl-card-foreground: 86 20% 93%;
167
+ --hsl-popover: 120 10% 15%; --hsl-popover-foreground: 86 20% 93%;
168
+ --hsl-primary: 139 31% 61%; --hsl-primary-foreground: 140 35% 8%;
169
+ --hsl-secondary: 120 9% 17%; --hsl-secondary-foreground: 86 20% 93%;
170
+ --hsl-muted: 120 9% 17%; --hsl-muted-foreground: 95 10% 67%;
171
+ --hsl-accent: 120 10% 18%; --hsl-accent-foreground: 86 20% 93%;
172
+ --hsl-border: 120 9% 25%; --hsl-input: 120 9% 17%;
173
+ --hsl-ring: 139 31% 61%;
174
+ --depth-1: #121712; --depth-2: #1c231c; --depth-3: #232b23; --depth-4: #2b342b;
175
+ --bg-root: #121712; --bg-card: var(--depth-2); --bg-input: var(--depth-3);
176
+ --md3-surface-container-lowest: #0d110d; --md3-surface-container-low: #171d17;
177
+ --md3-surface-container: #1c231c; --md3-surface-container-high: #232b23;
178
+ --md3-surface-container-highest: #2b342b; --md3-outline-variant: #3a453a;
179
+ --border-subtle: rgba(190,210,180,0.12); --border-default: rgba(190,210,180,0.20);
180
+ --border-hover: rgba(190,210,180,0.34); --accent-text: #8fd0a4;
181
+ --brand-primary: #7dbb91; --brand-glow: #8fd0a4;
182
+ --text-primary: #eef1ea; --text-secondary: #cbd3c5; --text-muted: #a9b3a2; --text-dim: #959f8f;
183
+ --md3-primary: #8fd0a4; --bg-hover: rgba(190,210,180,0.06); --bg-selection: rgba(125,187,145,0.28);
184
+ --accent-surface-soft: rgba(125,187,145,0.08); --accent-surface-strong: rgba(125,187,145,0.24);
185
+ --border-accent: rgba(125,187,145,0.38); --border-accent-hover: rgba(125,187,145,0.56);
186
+ --btn-primary-bg: #7dbb91; --btn-primary-hover: #8fcaa1; --btn-primary-text: #0e1d13;
187
+ --btn-cta-bg: #7dbb91; --btn-cta-text: #0e1d13;
188
+ --md3-surface: var(--bg-root); --md3-surface-dim: var(--md3-surface-container-lowest);
189
+ --md3-surface-bright: var(--md3-surface-container-highest); --md3-surface-variant: var(--md3-surface-container-high);
190
+ --md3-on-surface: var(--text-primary); --md3-on-surface-variant: var(--text-muted);
191
+ }
192
+ [data-theme="super-light"] {
193
+ --hsl-background: 75 22% 96%; --hsl-foreground: 114 13% 15%;
194
+ --hsl-card: 0 0% 100%; --hsl-card-foreground: 114 13% 15%;
195
+ --hsl-popover: 0 0% 100%; --hsl-popover-foreground: 114 13% 15%;
196
+ --hsl-primary: 148 40% 25%; --hsl-primary-foreground: 0 0% 100%;
197
+ --hsl-secondary: 80 18% 93%; --hsl-muted: 80 18% 93%;
198
+ --hsl-muted-foreground: 99 9% 37%;
199
+ --hsl-accent: 80 18% 93%; --hsl-border: 87 17% 87%;
200
+ --hsl-input: 92 14% 78%; --hsl-ring: 144 31% 34%;
201
+ --depth-1: #f7f8f4; --depth-2: #eff1eb; --depth-3: #ffffff; --depth-4: #ffffff;
202
+ --bg-root: #f7f8f4; --bg-card: #ffffff; --bg-input: #eff1eb;
203
+ --md3-surface-container-lowest: #ffffff; --md3-surface-container-low: #fcfcf9;
204
+ --md3-surface-container: #f7f8f4; --md3-surface-container-high: #eff1eb;
205
+ --md3-surface-container-highest: #e6eae1; --md3-outline-variant: #dfe4d9;
206
+ --border-subtle: rgba(34,43,33,0.10); --border-default: rgba(34,43,33,0.16);
207
+ --border-hover: rgba(34,43,33,0.30); --accent-text: #275a3f;
208
+ --brand-primary: #275a3f; --brand-glow: #3b7050;
209
+ --text-primary: #222b21; --text-secondary: #46523f; --text-muted: #5d6857; --text-dim: #616c5a;
210
+ --md3-primary: #275a3f; --bg-hover: rgba(34,43,33,0.04); --bg-selection: rgba(39,90,63,0.16);
211
+ --accent-surface-soft: rgba(39,90,63,0.06); --accent-surface-strong: rgba(39,90,63,0.14);
212
+ --border-accent: rgba(39,90,63,0.30); --border-accent-hover: rgba(39,90,63,0.45);
213
+ --btn-primary-bg: #275a3f; --btn-primary-hover: #1e4832; --btn-primary-text: #ffffff;
214
+ --btn-cta-bg: #275a3f; --btn-cta-text: #ffffff;
215
+ --md3-surface: var(--bg-root); --md3-surface-dim: var(--depth-2);
216
+ --md3-surface-bright: #ffffff; --md3-surface-variant: var(--md3-surface-container-high);
217
+ --md3-on-surface: var(--text-primary); --md3-on-surface-variant: var(--text-muted);
144
218
  }
145
219
 
146
220
  /* ───────────────────────── Tangle — neutral dark spine ─────────────────────
@@ -188,7 +262,7 @@
188
262
  --border-subtle: rgba(20,20,40,0.08); --border-default: rgba(20,20,40,0.14);
189
263
  --border-hover: rgba(20,20,40,0.26); --accent-text: #4f46e5;
190
264
  --brand-primary: #6366f1; --brand-glow: #818cf8;
191
- --text-primary: #15131f; --text-secondary: #3f3a52; --text-muted: #6a6680; --text-dim: #9490a6;
265
+ --text-primary: #15131f; --text-secondary: #3f3a52; --text-muted: #59556b; --text-dim: #67627b;
192
266
  }
193
267
 
194
268
  /* ───────────────────── Intelligence — violet surface ramp ────────────────────
@@ -245,3 +319,259 @@
245
319
  --border-default: rgba(120, 108, 158, 0.18);
246
320
  --border-hover: rgba(120, 108, 158, 0.28);
247
321
  }
322
+
323
+ /* ───────────────────── Hospitality — sage paper, forest accent ─────────────────
324
+ * Hospitality's product identity: a sage-tinted surface ladder and a forest-green
325
+ * accent in place of iris. It follows the canonical ladder's roles exactly (light
326
+ * paper cards on a tinted canvas; dark planes rising in the same steps as the
327
+ * neutral spine), so shared components keep their hierarchy and only the hue
328
+ * changes. Status tones are deliberately NOT overridden: approval, overdue and
329
+ * failure read the same in Hospitality as everywhere else.
330
+ *
331
+ * Apply `data-theme="hospitality"` on <html>. The mode comes from the `.dark`
332
+ * class the shared theme control already toggles: without `.dark` the scope is
333
+ * light, including before hydration, and tokens.css seeds it with the complete
334
+ * canonical light baseline exactly as it does `vault`; with `.dark` it takes the
335
+ * dark baseline and this file's dark ladder. A mode switch never needs a second
336
+ * attribute, and the two blocks declare the same properties. */
337
+ [data-theme="hospitality"]:where(:not(.dark)) {
338
+ --hsl-background: 102 18% 92%; --hsl-foreground: 143 25% 12%;
339
+ --hsl-card: 0 0% 100%; --hsl-card-foreground: 143 25% 12%;
340
+ --hsl-popover: 0 0% 100%; --hsl-popover-foreground: 143 25% 12%;
341
+ --hsl-primary: 153 38% 25%; --hsl-primary-foreground: 0 0% 100%;
342
+ --hsl-secondary: 126 17% 94%; --hsl-secondary-foreground: 143 25% 12%;
343
+ --hsl-muted: 126 17% 94%; --hsl-muted-foreground: 146 9% 39%;
344
+ --hsl-accent: 131 20% 91%; --hsl-accent-foreground: 143 25% 12%;
345
+ --hsl-border: 130 15% 84%; --hsl-input: 105 22% 97.5%;
346
+ --hsl-ring: 148 28% 43%;
347
+ --sidebar-background: 0 0% 100%; --sidebar-foreground: 143 25% 12%;
348
+ --sidebar-primary: 153 38% 25%; --sidebar-primary-foreground: 0 0% 100%;
349
+ --sidebar-accent: 126 17% 94%; --sidebar-accent-foreground: 143 25% 12%;
350
+ --sidebar-border: 130 15% 84%; --sidebar-ring: 148 28% 43%;
351
+ --md3-surface: #e9eee7; --md3-surface-dim: #d5ded3; --md3-surface-bright: #ffffff;
352
+ --md3-surface-container-lowest: #ffffff; --md3-surface-container-low: #f8faf7;
353
+ --md3-surface-container: #ffffff; --md3-surface-container-high: #edf2ee;
354
+ --md3-surface-container-highest: #ffffff; --md3-surface-variant: #edf2ee;
355
+ --md3-on-surface: #17261d; --md3-on-surface-variant: #5a6c62;
356
+ --md3-outline: #6d8376; --md3-outline-variant: #d0dcd2;
357
+ --md3-primary: #285842; --md3-primary-dim: #1f4735; --md3-primary-container: #1f4735;
358
+ --md3-on-primary: #ffffff; --md3-surface-tint: #285842;
359
+ --depth-1: #e9eee7; --depth-2: #ffffff; --depth-3: #edf2ee; --depth-4: #ffffff;
360
+ --bg-root: #e9eee7; --bg-dark: #e9eee7; --bg-section: #e9eee7;
361
+ --bg-card: #ffffff; --bg-elevated: #ffffff; --bg-input: #f8faf7;
362
+ --bg-hover: rgba(40, 88, 66, 0.05); --bg-selection: rgba(40, 88, 66, 0.16);
363
+ --border-subtle: rgba(23, 38, 29, 0.10); --border-default: rgba(23, 38, 29, 0.14);
364
+ --border-hover: rgba(23, 38, 29, 0.24);
365
+ --border-accent: rgba(40, 88, 66, 0.20); --border-accent-hover: rgba(40, 88, 66, 0.36);
366
+ --accent-text: #285842;
367
+ --accent-surface-soft: rgba(40, 88, 66, 0.05); --accent-surface-strong: rgba(40, 88, 66, 0.13);
368
+ --accent-gradient-strong: linear-gradient(135deg, #1f4735, #336c52);
369
+ --brand-primary: #3d7b5f; --brand-cool: #4f8c6c; --brand-glow: #6cac8a; --brand-vibrant: #3d7b5f;
370
+ --btn-primary-bg: #285842; --btn-primary-hover: #336c52; --btn-primary-text: #ffffff;
371
+ --text-primary: #17261d; --text-secondary: #36493e; --text-muted: #5a6c62; --text-dim: #5f6d65;
372
+ }
373
+ .dark[data-theme="hospitality"] {
374
+ --hsl-background: 150 8% 8.6%; --hsl-foreground: 140 12% 90.2%;
375
+ --hsl-card: 150 6% 18.8%; --hsl-card-foreground: 140 12% 90.2%;
376
+ --hsl-popover: 150 6% 20.8%; --hsl-popover-foreground: 140 12% 90.2%;
377
+ --hsl-primary: 145 31% 59%; --hsl-primary-foreground: 153 35% 10%;
378
+ --hsl-secondary: 150 6% 20.8%; --hsl-secondary-foreground: 140 12% 90.2%;
379
+ --hsl-muted: 150 6% 20.8%; --hsl-muted-foreground: 145 8% 71%;
380
+ --hsl-accent: 150 6% 20.8%; --hsl-accent-foreground: 140 12% 90.2%;
381
+ --hsl-border: 150 5% 29.8%; --hsl-input: 150 8% 12.2%;
382
+ --hsl-ring: 145 31% 59%;
383
+ --sidebar-background: 150 9% 6.3%; --sidebar-foreground: 140 12% 90.2%;
384
+ --sidebar-primary: 145 31% 59%; --sidebar-primary-foreground: 153 35% 10%;
385
+ --sidebar-accent: 150 6% 20.8%; --sidebar-accent-foreground: 140 12% 90.2%;
386
+ --sidebar-border: 150 5% 29.8%; --sidebar-ring: 145 31% 59%;
387
+ --md3-surface: #141816; --md3-surface-dim: #0f1210; --md3-surface-bright: #383e3b;
388
+ --md3-surface-container-lowest: #0f1210; --md3-surface-container-low: #212624;
389
+ --md3-surface-container: #2d3330; --md3-surface-container-high: #323835;
390
+ --md3-surface-container-highest: #383e3b; --md3-surface-variant: #323835;
391
+ --md3-on-surface: #e3e9e5; --md3-on-surface-variant: #afbbb4;
392
+ --md3-outline: #8a938e; --md3-outline-variant: #48504c;
393
+ --md3-primary: #76b791; --md3-primary-dim: #396a52; --md3-primary-container: #396a52;
394
+ --md3-on-primary: #11221a; --md3-surface-tint: #76b791;
395
+ --depth-1: #141816; --depth-2: #2d3330; --depth-3: #323835; --depth-4: #383e3b;
396
+ --bg-root: #141816; --bg-dark: #141816; --bg-section: #141816;
397
+ --bg-card: #2d3330; --bg-elevated: #383e3b; --bg-input: #1d221f;
398
+ --bg-hover: rgba(118, 183, 145, 0.07); --bg-selection: rgba(118, 183, 145, 0.28);
399
+ --border-subtle: rgba(227, 233, 229, 0.10); --border-default: rgba(227, 233, 229, 0.16);
400
+ --border-hover: rgba(227, 233, 229, 0.28);
401
+ --border-accent: rgba(118, 183, 145, 0.35); --border-accent-hover: rgba(118, 183, 145, 0.50);
402
+ --accent-text: #76b791;
403
+ --accent-surface-soft: rgba(118, 183, 145, 0.07); --accent-surface-strong: rgba(57, 106, 82, 0.40);
404
+ --accent-gradient-strong: linear-gradient(135deg, #396a52, #76b791);
405
+ --brand-primary: #529873; --brand-cool: #76b791; --brand-glow: #94c7a9; --brand-vibrant: #529873;
406
+ --btn-primary-bg: #76b791; --btn-primary-hover: #8dc3a4; --btn-primary-text: #11221a;
407
+ --text-primary: #e3e9e5; --text-secondary: #c5cec9; --text-muted: #afbbb4; --text-dim: #9ea9a2;
408
+ }
409
+ /* agents:begin — generated by scripts/gen-ladders.mjs from its MAP; edit there, not these lines.
410
+ * Agents (Agent Builder): white light pages, cards separated by shadow, and a
411
+ * mauve neutral ladder. Surfaces, text and borders only; the accent, status
412
+ * and category tokens stay canonical. Select data-theme="agents" for dark and
413
+ * data-theme="agents-light" for light. */
414
+ [data-theme="agents"] {
415
+ --bg-card: #1a191b;
416
+ --hsl-background: 270 5.6% 7.1%;
417
+ --hsl-foreground: 240 6.2% 93.7%;
418
+ --hsl-card: 270 3.8% 10.2%;
419
+ --hsl-card-foreground: 240 6.2% 93.7%;
420
+ --hsl-popover: 260 4.2% 13.9%;
421
+ --hsl-popover-foreground: 240 6.2% 93.7%;
422
+ --hsl-secondary: 260 4.2% 13.9%;
423
+ --hsl-secondary-foreground: 240 6.2% 93.7%;
424
+ --hsl-muted: 260 4.2% 13.9%;
425
+ --hsl-muted-foreground: 258 6.9% 71.8%;
426
+ --hsl-accent: 270 4.7% 16.9%;
427
+ --hsl-accent-foreground: 240 6.2% 93.7%;
428
+ --hsl-border: 270 5% 23.5%;
429
+ --hsl-input: 251 4.8% 44.9%;
430
+ --sidebar-background: 270 3.8% 10.2%;
431
+ --sidebar-foreground: 240 6.2% 93.7%;
432
+ --sidebar-accent: 270 4.7% 16.9%;
433
+ --sidebar-accent-foreground: 240 6.2% 93.7%;
434
+ --sidebar-border: 270 5% 23.5%;
435
+ --md3-surface: #121113;
436
+ --md3-surface-dim: #121113;
437
+ --md3-surface-bright: #323035;
438
+ --md3-surface-container-lowest: #121113;
439
+ --md3-surface-container-low: #1a191b;
440
+ --md3-surface-container: #1a191b;
441
+ --md3-surface-container-high: #232225;
442
+ --md3-surface-container-highest: #2b292d;
443
+ --md3-surface-variant: #232225;
444
+ --md3-on-surface: #eeeef0;
445
+ --md3-on-surface-variant: #b5b2bc;
446
+ --md3-outline: #6f6d78;
447
+ --md3-outline-variant: #3c393f;
448
+ --depth-1: #121113;
449
+ --depth-2: #1a191b;
450
+ --depth-3: #232225;
451
+ --depth-4: #2b292d;
452
+ --bg-root: #121113;
453
+ --bg-dark: #121113;
454
+ --bg-elevated: #232225;
455
+ --bg-section: #121113;
456
+ --bg-input: #1a191b;
457
+ --bg-hover: #232225;
458
+ --text-primary: #eeeef0;
459
+ --text-secondary: #eeeef0;
460
+ --text-muted: #b5b2bc;
461
+ --text-dim: #b5b2bc;
462
+ --border-subtle: #3c393f;
463
+ --border-default: #49474e;
464
+ --border-hover: #625f69;
465
+ --shadow-card: inset 0 0 0 1px rgb(255 255 255 / 0.06);
466
+ --shadow-dropdown: inset 0 0 0 1px rgb(255 255 255 / 0.08), 0 8px 24px rgb(0 0 0 / 0.5);
467
+ --shadow-overlay: inset 0 0 0 1px rgb(255 255 255 / 0.1), 0 16px 48px rgb(0 0 0 / 0.6);
468
+ }
469
+ [data-theme="agents-light"] {
470
+ --bg-card: #ffffff;
471
+ --hsl-background: 0 0% 100%;
472
+ --hsl-foreground: 257 10.1% 13.5%;
473
+ --hsl-card: 0 0% 100%;
474
+ --hsl-card-foreground: 257 10.1% 13.5%;
475
+ --hsl-popover: 0 0% 100%;
476
+ --hsl-popover-foreground: 257 10.1% 13.5%;
477
+ --hsl-secondary: 285 14.3% 94.5%;
478
+ --hsl-secondary-foreground: 257 10.1% 13.5%;
479
+ --hsl-muted: 285 14.3% 94.5%;
480
+ --hsl-muted-foreground: 252 4.8% 40.8%;
481
+ --hsl-accent: 276 11.6% 91.6%;
482
+ --hsl-accent-foreground: 257 10.1% 13.5%;
483
+ --hsl-border: 262 11.4% 86.3%;
484
+ --hsl-input: 249 6% 57.5%;
485
+ --sidebar-background: 270 20% 98%;
486
+ --sidebar-foreground: 257 10.1% 13.5%;
487
+ --sidebar-accent: 276 11.6% 91.6%;
488
+ --sidebar-accent-foreground: 257 10.1% 13.5%;
489
+ --sidebar-border: 262 11.4% 86.3%;
490
+ --md3-surface: #ffffff;
491
+ --md3-surface-dim: #faf9fb;
492
+ --md3-surface-bright: #ffffff;
493
+ --md3-surface-container-lowest: #ffffff;
494
+ --md3-surface-container-low: #faf9fb;
495
+ --md3-surface-container: #ffffff;
496
+ --md3-surface-container-high: #f2eff3;
497
+ --md3-surface-container-highest: #ffffff;
498
+ --md3-surface-variant: #f2eff3;
499
+ --md3-on-surface: #211f26;
500
+ --md3-on-surface-variant: #65636d;
501
+ --md3-outline: #8e8c99;
502
+ --md3-outline-variant: #dbd8e0;
503
+ --depth-1: #ffffff;
504
+ --depth-2: #ffffff;
505
+ --depth-3: #faf9fb;
506
+ --depth-4: #ffffff;
507
+ --bg-root: #ffffff;
508
+ --bg-dark: #faf9fb;
509
+ --bg-elevated: #ffffff;
510
+ --bg-section: #faf9fb;
511
+ --bg-input: #ffffff;
512
+ --bg-hover: #f2eff3;
513
+ --text-primary: #211f26;
514
+ --text-secondary: #211f26;
515
+ --text-muted: #65636d;
516
+ --text-dim: #65636d;
517
+ --border-subtle: #dbd8e0;
518
+ --border-default: #d0cdd7;
519
+ --border-hover: #bcbac7;
520
+ --shadow-card: 0 0 0 1px rgb(33 31 38 / 0.03), 0 2px 6px rgb(33 31 38 / 0.05), 0 4px 8px rgb(33 31 38 / 0.08);
521
+ --shadow-dropdown: 0 0 0 1px rgb(33 31 38 / 0.04), 0 6px 16px rgb(33 31 38 / 0.12);
522
+ --shadow-overlay: 0 8px 28px rgb(33 31 38 / 0.28);
523
+ }
524
+ /* agents:end */
525
+
526
+ /* ───────────────────── Website — indigo night, indigo paper ───────────────────
527
+ * The public site's identity (tangle.tools): an indigo-tinted surface ladder in
528
+ * dark and cool indigo paper in light. Only the planes and ink change; the Tangle
529
+ * accent, status, category and syntax tones stay canonical.
530
+ *
531
+ * Apply `class="dark" data-theme="website"` on <html>. A section that reads as
532
+ * paper (long-form, editorial) sets `data-theme="website"` without `.dark` and
533
+ * becomes a complete light island; tokens.css seeds both modes with the
534
+ * canonical baselines, as it does Hospitality. The two blocks declare the same
535
+ * properties, so nothing from one mode survives into the other. */
536
+ [data-theme="website"]:where(:not(.dark)) {
537
+ --hsl-background: 240 42.9% 97.3%; --hsl-foreground: 224 18% 12%;
538
+ --hsl-card: 0 0% 100%; --hsl-card-foreground: 224 18% 12%;
539
+ --hsl-popover: 0 0% 100%; --hsl-popover-foreground: 224 18% 12%;
540
+ --hsl-secondary: 240 35.7% 94.5%; --hsl-secondary-foreground: 224 18% 12%;
541
+ --hsl-muted: 240 35.7% 94.5%; --hsl-muted-foreground: 240 13% 42.4%;
542
+ --hsl-accent: 240 23.1% 92.4%; --hsl-accent-foreground: 224 18% 12%;
543
+ --hsl-border: 240 26.3% 88.8%; --hsl-input: 240 42.9% 97.3%;
544
+ --md3-surface: #f5f5fb; --md3-surface-dim: #e7e7f0; --md3-surface-bright: #ffffff;
545
+ --md3-surface-container-lowest: #ffffff; --md3-surface-container-low: #fafafd;
546
+ --md3-surface-container: #ffffff; --md3-surface-container-high: #ececf6;
547
+ --md3-surface-container-highest: #ffffff; --md3-surface-variant: #ececf6;
548
+ --md3-on-surface: #191c24; --md3-on-surface-variant: #5e5e7a;
549
+ --md3-outline: #5e5e7a; --md3-outline-variant: #dbdbea;
550
+ --depth-1: #f5f5fb; --depth-2: #ffffff; --depth-3: #ececf6; --depth-4: #ffffff;
551
+ --bg-root: #f5f5fb; --bg-dark: #f5f5fb; --bg-section: #ececf6;
552
+ --bg-card: #ffffff; --bg-elevated: #ffffff; --bg-input: #f5f5fb;
553
+ --border-subtle: rgba(25, 28, 36, 0.08); --border-default: rgba(25, 28, 36, 0.12);
554
+ --border-hover: rgba(25, 28, 36, 0.24);
555
+ --text-primary: #191c24; --text-secondary: #3a3a50; --text-muted: #5e5e7a; --text-dim: #5e5e7a;
556
+ }
557
+ .dark[data-theme="website"] {
558
+ --hsl-background: 243 45% 7.8%; --hsl-foreground: 0 0% 99.2%;
559
+ --hsl-card: 244 34.9% 16.3%; --hsl-card-foreground: 0 0% 99.2%;
560
+ --hsl-popover: 243 33.3% 21.2%; --hsl-popover-foreground: 0 0% 99.2%;
561
+ --hsl-secondary: 244 34% 19%; --hsl-secondary-foreground: 0 0% 99.2%;
562
+ --hsl-muted: 244 34% 19%; --hsl-muted-foreground: 237 23% 65.9%;
563
+ --hsl-accent: 243 33.3% 21.2%; --hsl-accent-foreground: 0 0% 99.2%;
564
+ --hsl-border: 243 31.9% 28.2%; --hsl-input: 243 41.2% 10%;
565
+ --md3-surface: #0c0b1d; --md3-surface-dim: #080814; --md3-surface-bright: #2e2c56;
566
+ --md3-surface-container-lowest: #080814; --md3-surface-container-low: #141328;
567
+ --md3-surface-container: #1d1b38; --md3-surface-container-high: #222041;
568
+ --md3-surface-container-highest: #262448; --md3-surface-variant: #222041;
569
+ --md3-on-surface: #fdfdfd; --md3-on-surface-variant: #aaa8b8;
570
+ --md3-outline: #9496bc; --md3-outline-variant: #33315f;
571
+ --depth-1: #0c0b1d; --depth-2: #1d1b38; --depth-3: #222041; --depth-4: #262448;
572
+ --bg-root: #0c0b1d; --bg-dark: #0c0b1d; --bg-section: #141328;
573
+ --bg-card: #1d1b38; --bg-elevated: #262448; --bg-input: #100f24;
574
+ --border-subtle: rgba(255, 255, 255, 0.08); --border-default: rgba(255, 255, 255, 0.15);
575
+ --border-hover: rgba(255, 255, 255, 0.28);
576
+ --text-primary: #fdfdfd; --text-secondary: #aaa8b8; --text-muted: #9496bc; --text-dim: #9496bc;
577
+ }