anentrypoint-design 0.0.166 → 0.0.168

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.
package/dist/247420.css CHANGED
@@ -54,8 +54,32 @@
54
54
 
55
55
  --accent: var(--green);
56
56
  --accent-fg: var(--paper);
57
+ --accent-bright: var(--green-2); /* base value so var(--accent-bright) never falls back empty; ink + [data-accent] retune it */
57
58
  --accent-tint: color-mix(in oklab, var(--accent) 26%, var(--bg));
58
59
 
60
+ /* On-color foregrounds — text/icons that sit ON a saturated fill (accent,
61
+ danger, category chips). Theme-driven so white-on-color never hard-codes
62
+ #fff. --on-accent tracks --accent-fg; --on-color is the generic light
63
+ foreground for any colored fill. */
64
+ --on-accent: var(--accent-fg);
65
+ --on-color: #fff;
66
+
67
+ /* Scrims — modal/overlay backdrops. Derived from --fg so a dark theme dims
68
+ with its own ink rather than a baked rgba(0,0,0). */
69
+ --scrim: color-mix(in oklab, var(--fg) 40%, transparent);
70
+ --scrim-strong: color-mix(in oklab, var(--fg) 72%, transparent);
71
+ --scrim-media: color-mix(in oklab, var(--fg) 85%, transparent);
72
+
73
+ /* Category palette — surfaces (forum tags, project cards) that color-code by
74
+ category. Canonical so a theme/accent swap recolors categories instead of
75
+ drifting from a private --cat-* block. Derived from the base palette. */
76
+ --cat-green: var(--green-2);
77
+ --cat-purple: var(--purple-2);
78
+ --cat-mascot: var(--mascot);
79
+ --cat-sun: var(--sun);
80
+ --cat-flame: var(--flame);
81
+ --cat-sky: var(--sky);
82
+
59
83
  --panel-bg: var(--bg);
60
84
  --panel-bg-2: var(--bg-2);
61
85
  --panel-accent: var(--accent);
@@ -277,6 +301,47 @@
277
301
  --panel-text-3: inherit;
278
302
  --panel-accent-2: inherit;
279
303
  --panel-shadow: inherit;
304
+ --on-accent: inherit;
305
+ --on-color: inherit;
306
+ --scrim: inherit;
307
+ --scrim-strong: inherit;
308
+ --scrim-media: inherit;
309
+ --cat-green: inherit;
310
+ --cat-purple: inherit;
311
+ --cat-mascot: inherit;
312
+ --cat-sun: inherit;
313
+ --cat-flame: inherit;
314
+ --cat-sky: inherit;
315
+ }
316
+
317
+ /* ============================================================
318
+ Named-theme preset contract
319
+ ------------------------------------------------------------
320
+ A theme is one [data-theme="X"] block that overrides ONLY the semantic
321
+ surface tokens — never component rules, never raw literals in component
322
+ sheets. The base :root above IS the "paper" theme; [data-theme="paper"]
323
+ restates it so the attribute is explicit and round-trippable. To add a
324
+ theme: copy a block, rename the attr, retune the ~8 semantic tokens.
325
+ ============================================================ */
326
+ .ds-247420[data-theme="paper"] {
327
+ color-scheme: light;
328
+ --bg: var(--paper); --bg-2: var(--paper-2); --bg-3: var(--paper-3);
329
+ --fg: var(--ink); --fg-2: var(--ink-2); --fg-3: var(--ink-3);
330
+ --accent: var(--green); --accent-fg: var(--paper);
331
+ }
332
+
333
+ /* thebird — warm-paper brand preset. A first-class swappable theme: it lives
334
+ here in the canonical layer (not as a global :root override) so any consumer
335
+ can opt in with data-theme="thebird". The OS-shell chrome (bar heights,
336
+ window controls) stays in src/kits/os/theme.css; only color lives here. */
337
+ .ds-247420[data-theme="thebird"] {
338
+ color-scheme: light;
339
+ --paper: #F5F0E4;
340
+ --paper-2: #EFE9DB;
341
+ --paper-3: #E3DAC7;
342
+ --bg: var(--paper); --bg-2: var(--paper-2); --bg-3: var(--paper-3);
343
+ --fg: var(--ink); --fg-2: var(--ink-2); --fg-3: var(--ink-3);
344
+ --accent: var(--green); --accent-fg: var(--paper);
280
345
  }
281
346
 
282
347
  .ds-247420[data-density="compact"] { --density: 0.75; }
@@ -322,6 +387,10 @@
322
387
  0 2px 4px color-mix(in oklab, var(--fg) 6%, transparent);
323
388
  --shadow-3: 0 12px 32px color-mix(in oklab, var(--fg) 14%, transparent),
324
389
  0 4px 8px color-mix(in oklab, var(--fg) 8%, transparent);
390
+ /* Overlay elevation — the float for dialogs/lightboxes that sit above a
391
+ scrim; heavier than --shadow-3 and theme-driven (was raw rgba(0,0,0,.4)). */
392
+ --shadow-overlay: 0 12px 40px color-mix(in oklab, var(--fg) 28%, transparent),
393
+ 0 4px 12px color-mix(in oklab, var(--fg) 16%, transparent);
325
394
  --z-dropdown: 600;
326
395
  --z-popover: 700;
327
396
  --z-modal: 800;
@@ -466,7 +535,7 @@
466
535
 
467
536
  .ds-247420 pre {
468
537
  font-family: var(--ff-mono);
469
- background: var(--panel-bg, #15151a);
538
+ background: var(--panel-bg);
470
539
  color: var(--panel-text, inherit);
471
540
  padding: var(--space-5);
472
541
  overflow-x: auto;
@@ -477,7 +546,7 @@
477
546
  }
478
547
  .ds-247420 pre .k { color: var(--mascot); }
479
548
  .ds-247420 pre .s { color: var(--sun); }
480
- .ds-247420 pre .c { color: #9A9AA2; }
549
+ .ds-247420 pre .c { color: var(--fg-3); }
481
550
  .ds-247420 pre .n { color: var(--green-2); }
482
551
 
483
552
  /* ============================================================
@@ -921,10 +990,10 @@
921
990
  .ds-247420 .cli .copy {
922
991
  padding: 8px 16px; background: transparent; color: var(--paper);
923
992
  font-size: var(--fs-tiny); text-transform: uppercase; letter-spacing: var(--tr-caps);
924
- cursor: pointer; box-shadow: inset 0 0 0 1px #6A6A70;
993
+ cursor: pointer; box-shadow: inset 0 0 0 1px var(--rule-strong);
925
994
  border-radius: var(--r-pill);
926
995
  }
927
- .ds-247420 .cli .copy:hover { background: #6A6A70; }
996
+ .ds-247420 .cli .copy:hover { background: var(--fg-3); }
928
997
 
929
998
  /* Multi-line CLI block: when .cli holds .cli-line / .cli-cmt children
930
999
  (quickstart scripts, multi-command snippets) it stacks as a column
@@ -1617,7 +1686,7 @@
1617
1686
  .ds-247420 .btn-primary.danger {
1618
1687
  background: var(--warn);
1619
1688
  border-color: var(--warn);
1620
- color: #fff;
1689
+ color: var(--on-color);
1621
1690
  }
1622
1691
 
1623
1692
  /* ── Preview ──────────────────────────────────────────────── */
@@ -1801,7 +1870,7 @@
1801
1870
  .ds-247420 .ds-segmented .ds-seg-btn:hover { color: var(--fg); }
1802
1871
  .ds-247420 .ds-segmented .ds-seg-btn.is-on {
1803
1872
  background: var(--bg); color: var(--fg);
1804
- box-shadow: 0 1px 2px rgba(0,0,0,0.08);
1873
+ box-shadow: var(--shadow-1);
1805
1874
  }
1806
1875
  .ds-247420 .ds-theme-toggle.btn {
1807
1876
  font-family: var(--ff-mono); font-size: var(--fs-xs);
@@ -2571,7 +2640,7 @@
2571
2640
  }
2572
2641
  .ds-247420 .ds-field input[aria-invalid="true"],
2573
2642
  .ds-247420 .ds-field textarea[aria-invalid="true"] {
2574
- box-shadow: inset 0 0 0 var(--bw-hair, 1px) var(--flame, #d64545);
2643
+ box-shadow: inset 0 0 0 var(--bw-hair, 1px) var(--flame);
2575
2644
  }
2576
2645
 
2577
2646
  /* Clear button for text inputs */
@@ -4433,9 +4502,9 @@
4433
4502
  cursor: pointer; font-size: 16px; line-height: 1;
4434
4503
  }
4435
4504
  .ds-247420 .vx-vc-btn:hover { background: var(--bg-4, var(--bg-3)); }
4436
- .ds-247420 .vx-vc-on { background: var(--accent); color: var(--accent-fg, #fff); border-color: var(--accent); }
4505
+ .ds-247420 .vx-vc-on { background: var(--accent); color: var(--accent-fg); border-color: var(--accent); }
4437
4506
  .ds-247420 .vx-vc-disabled, .ds-247420 .vx-vc-btn:disabled { opacity: .4; cursor: not-allowed; }
4438
- .ds-247420 .vx-vc-leave { margin-left: auto; background: var(--danger, #d04545); color: #fff; border-color: var(--danger, #d04545); }
4507
+ .ds-247420 .vx-vc-leave { margin-left: auto; background: var(--danger); color: var(--on-color); border-color: var(--danger); }
4439
4508
  .ds-247420 .vx-vc-glyph { pointer-events: none; }
4440
4509
 
4441
4510
  /* ThreadPanel — cm-thread-panel / cm-tp-* */
@@ -4478,7 +4547,7 @@
4478
4547
  .ds-247420 .cm-forum-toolbar { display: flex; gap: var(--space-2); align-items: center; padding: var(--space-2); border-bottom: var(--bw-hair) solid var(--rule); }
4479
4548
  .ds-247420 .cm-forum-search { flex: 1; padding: var(--space-1) var(--space-2); border: var(--bw-hair) solid var(--rule-strong); border-radius: var(--r-1); background: var(--bg-3); color: var(--fg); }
4480
4549
  .ds-247420 .cm-forum-sort { padding: var(--space-1); border: var(--bw-hair) solid var(--rule-strong); border-radius: var(--r-1); background: var(--bg-3); color: var(--fg); }
4481
- .ds-247420 .cm-forum-new { padding: var(--space-1) var(--space-2); border: none; border-radius: var(--r-1); background: var(--accent); color: var(--accent-fg, #fff); cursor: pointer; }
4550
+ .ds-247420 .cm-forum-new { padding: var(--space-1) var(--space-2); border: none; border-radius: var(--r-1); background: var(--accent); color: var(--accent-fg); cursor: pointer; }
4482
4551
  .ds-247420 .cm-forum-list { flex: 1; min-height: 0; overflow-y: auto; }
4483
4552
  .ds-247420 .cm-forum-item { display: flex; flex-direction: column; gap: var(--space-1); width: 100%; text-align: left; cursor: pointer; padding: var(--space-2) var(--space-3); border: none; background: transparent; border-bottom: var(--bw-hair) solid var(--rule); color: var(--fg); }
4484
4553
  .ds-247420 .cm-forum-item:hover { background: var(--bg-3); }
@@ -4551,21 +4620,21 @@
4551
4620
  white-space: nowrap;
4552
4621
  margin-left: auto;
4553
4622
  font-size: .85em;
4554
- color: var(--muted, #8a8f98);
4623
+ color: var(--fg-3);
4555
4624
  }
4556
4625
  /* status disc — a CSS-drawn dot, not a glyph; pulses while streaming */
4557
4626
  .ds-247420 .agentchat-status .status-dot-disc {
4558
4627
  flex: none; width: 8px; height: 8px; border-radius: 50%;
4559
- background: var(--muted, #8a8f98);
4628
+ background: var(--fg-3);
4560
4629
  }
4561
4630
  .ds-247420 .agentchat-status .status-dot-disc.status-dot-live {
4562
- background: var(--accent, #50c878);
4631
+ background: var(--accent);
4563
4632
  animation: agentchat-pulse 2s infinite;
4564
4633
  }
4565
4634
  @keyframes agentchat-pulse {
4566
- 0% { box-shadow: 0 0 0 0 rgba(80, 200, 120, .5); }
4567
- 70% { box-shadow: 0 0 0 6px rgba(80, 200, 120, 0); }
4568
- 100% { box-shadow: 0 0 0 0 rgba(80, 200, 120, 0); }
4635
+ 0% { box-shadow: 0 0 0 0 color-mix(in oklab, var(--accent) 50%, transparent); }
4636
+ 70% { box-shadow: 0 0 0 6px color-mix(in oklab, var(--accent) 0%, transparent); }
4637
+ 100% { box-shadow: 0 0 0 0 color-mix(in oklab, var(--accent) 0%, transparent); }
4569
4638
  }
4570
4639
  @media (prefers-reduced-motion: reduce) {
4571
4640
  .ds-247420 .agentchat-status .status-dot-disc { animation: none !important; }
@@ -4577,7 +4646,7 @@
4577
4646
  align-items: center;
4578
4647
  gap: var(--space-2, 8px);
4579
4648
  font-size: .85em;
4580
- color: var(--muted, #8a8f98);
4649
+ color: var(--fg-3);
4581
4650
  flex-wrap: wrap;
4582
4651
  }
4583
4652
  .ds-247420 .agentchat-cwd-text {
@@ -4588,20 +4657,20 @@
4588
4657
  }
4589
4658
  .ds-247420 .agentchat-cwd-btn {
4590
4659
  background: none;
4591
- border: 1px solid var(--border, #2a2f3a);
4660
+ border: 1px solid var(--rule);
4592
4661
  color: inherit;
4593
4662
  border-radius: 6px;
4594
4663
  padding: 2px 8px;
4595
4664
  cursor: pointer;
4596
4665
  font: inherit;
4597
4666
  }
4598
- .ds-247420 .agentchat-cwd-btn:hover { border-color: var(--accent, #50c878); }
4667
+ .ds-247420 .agentchat-cwd-btn:hover { border-color: var(--accent); }
4599
4668
  .ds-247420 .agentchat-cwd-input {
4600
4669
  flex: 1;
4601
4670
  min-width: 12ch;
4602
- background: var(--surface, #11151c);
4603
- border: 1px solid var(--border, #2a2f3a);
4604
- color: var(--text, #e6e9ee);
4671
+ background: var(--bg-2);
4672
+ border: 1px solid var(--rule);
4673
+ color: var(--fg);
4605
4674
  border-radius: 6px;
4606
4675
  padding: 4px 8px;
4607
4676
  font: inherit;
@@ -4614,7 +4683,7 @@
4614
4683
  gap: .5em;
4615
4684
  }
4616
4685
  .ds-247420 .agentchat-title { font-size: 1em; margin: 0; }
4617
- .ds-247420 .agentchat-sub { font-size: .85em; color: var(--muted, #8a8f98); }
4686
+ .ds-247420 .agentchat-sub { font-size: .85em; color: var(--fg-3); }
4618
4687
  .ds-247420 .agentchat-thread {
4619
4688
  flex: 1;
4620
4689
  min-height: 0;
@@ -4864,7 +4933,7 @@
4864
4933
  color: var(--panel-text, var(--fg-text));
4865
4934
  border: 1px solid var(--rule);
4866
4935
  border-radius: var(--r-2, 8px);
4867
- box-shadow: 0 8px 28px rgba(0,0,0,0.18);
4936
+ box-shadow: var(--shadow-2);
4868
4937
  padding: 4px;
4869
4938
  display: flex; flex-direction: column;
4870
4939
  outline: none;
@@ -4881,7 +4950,7 @@
4881
4950
  .ds-247420 .ds-ep-ctxmenu-item:focus-visible {
4882
4951
  background: var(--panel-2, var(--rule));
4883
4952
  }
4884
- .ds-247420 .ds-ep-ctxmenu-item.danger { color: var(--danger, #c33); }
4953
+ .ds-247420 .ds-ep-ctxmenu-item.danger { color: var(--danger); }
4885
4954
  .ds-247420 .ds-ep-ctxmenu-item.disabled { opacity: 0.45; cursor: not-allowed; }
4886
4955
  .ds-247420 .ds-ep-ctxmenu-icon { width: 16px; display: inline-flex; justify-content: center; }
4887
4956
  .ds-247420 .ds-ep-ctxmenu-sep { height: 1px; background: var(--rule); margin: 4px 6px; }
@@ -4891,13 +4960,13 @@
4891
4960
  --------------------------------------------------------------- */
4892
4961
  .ds-247420 .ds-ep-drawer-backdrop {
4893
4962
  position: fixed; inset: 0; z-index: 8500;
4894
- background: rgba(0,0,0,0.42);
4963
+ background: var(--scrim);
4895
4964
  }
4896
4965
  .ds-247420 .ds-ep-drawer {
4897
4966
  position: absolute;
4898
4967
  background: var(--panel-1, var(--panel-bg));
4899
4968
  color: var(--panel-text, var(--fg-text));
4900
- box-shadow: 0 12px 40px rgba(0,0,0,0.28);
4969
+ box-shadow: var(--shadow-overlay);
4901
4970
  outline: none;
4902
4971
  transition: transform 180ms ease;
4903
4972
  padding: 12px;
@@ -4918,7 +4987,7 @@
4918
4987
  --------------------------------------------------------------- */
4919
4988
  .ds-247420 .ds-ep-dialog-backdrop {
4920
4989
  position: fixed; inset: 0; z-index: 9500;
4921
- background: rgba(0,0,0,0.5);
4990
+ background: var(--scrim-strong);
4922
4991
  display: flex; align-items: center; justify-content: center;
4923
4992
  padding: 16px;
4924
4993
  }
@@ -4927,7 +4996,7 @@
4927
4996
  color: var(--panel-text, var(--fg-text));
4928
4997
  border: 1px solid var(--rule);
4929
4998
  border-radius: var(--r-2, 10px);
4930
- box-shadow: 0 20px 60px rgba(0,0,0,0.36);
4999
+ box-shadow: var(--shadow-overlay);
4931
5000
  min-width: 280px; max-width: min(560px, 100%);
4932
5001
  max-height: 90vh; overflow: auto;
4933
5002
  display: flex; flex-direction: column;
@@ -4951,7 +5020,7 @@
4951
5020
  background: var(--accent); color: var(--accent-fg); border-color: var(--accent);
4952
5021
  }
4953
5022
  .ds-247420 .ds-ep-dialog-btn.kind-danger {
4954
- background: var(--danger, #c33); color: #fff; border-color: var(--danger, #c33);
5023
+ background: var(--danger); color: var(--on-accent); border-color: var(--danger);
4955
5024
  }
4956
5025
 
4957
5026
  /* ---------------------------------------------------------------
@@ -4973,14 +5042,14 @@
4973
5042
  border-left: 3px solid var(--accent);
4974
5043
  border-radius: var(--r-1, 6px);
4975
5044
  padding: 10px 14px;
4976
- box-shadow: 0 8px 24px rgba(0,0,0,0.22);
5045
+ box-shadow: var(--shadow-3);
4977
5046
  min-width: 220px; max-width: 360px;
4978
5047
  opacity: 1;
4979
5048
  transition: opacity 180ms ease, transform 180ms ease;
4980
5049
  }
4981
- .ds-247420 .ds-ep-toast.kind-success { border-left-color: var(--success, #2a8); }
4982
- .ds-247420 .ds-ep-toast.kind-warn { border-left-color: var(--warn, #d90); }
4983
- .ds-247420 .ds-ep-toast.kind-error { border-left-color: var(--danger, #c33); }
5050
+ .ds-247420 .ds-ep-toast.kind-success { border-left-color: var(--success); }
5051
+ .ds-247420 .ds-ep-toast.kind-warn { border-left-color: var(--warn); }
5052
+ .ds-247420 .ds-ep-toast.kind-error { border-left-color: var(--danger); }
4984
5053
  .ds-247420 .ds-ep-toast.leaving { opacity: 0; transform: translateY(-6px); }
4985
5054
  @media (max-width: 480px) {
4986
5055
  .ds-247420 .ds-ep-toast-host { left: 16px; right: 16px; align-items: center; }
@@ -5140,7 +5209,7 @@
5140
5209
  font-weight: 500;
5141
5210
  }
5142
5211
  .ds-247420 .ds-field-required {
5143
- color: var(--danger, oklch(0.55 0.18 25));
5212
+ color: var(--danger);
5144
5213
  font-weight: 700;
5145
5214
  margin-left: 2px;
5146
5215
  }
@@ -5149,12 +5218,12 @@
5149
5218
  font-size: var(--fs-tiny, 12px);
5150
5219
  }
5151
5220
  .ds-247420 .ds-field-error {
5152
- color: var(--danger, oklch(0.55 0.18 25));
5221
+ color: var(--danger);
5153
5222
  font-size: var(--fs-tiny, 12px);
5154
5223
  font-weight: 500;
5155
5224
  }
5156
5225
  .ds-247420 .ds-field-wrap [aria-invalid="true"] {
5157
- border-color: var(--danger, oklch(0.55 0.18 25)) !important;
5226
+ border-color: var(--danger) !important;
5158
5227
  }
5159
5228
 
5160
5229
  .ds-247420 .sr-only {
@@ -5182,10 +5251,10 @@
5182
5251
  font-size: 12px;
5183
5252
  line-height: 1.4;
5184
5253
  max-width: 280px;
5185
- box-shadow: 0 6px 18px rgba(0,0,0,0.22);
5254
+ box-shadow: var(--shadow-3);
5186
5255
  pointer-events: none;
5187
5256
  }
5188
- .ds-247420 .ds-tooltip.kind-danger { border-color: var(--danger, #c33); color: var(--danger, #c33); }
5257
+ .ds-247420 .ds-tooltip.kind-danger { border-color: var(--danger); color: var(--danger); }
5189
5258
  @media (prefers-reduced-motion: no-preference) {
5190
5259
  .ds-247420 .ds-tooltip { transition: opacity 120ms ease; }
5191
5260
  }
@@ -5201,7 +5270,7 @@
5201
5270
  color: var(--panel-text, var(--fg-text));
5202
5271
  border: 1px solid var(--rule);
5203
5272
  border-radius: var(--r-2, 8px);
5204
- box-shadow: 0 8px 28px rgba(0,0,0,0.22);
5273
+ box-shadow: var(--shadow-3);
5205
5274
  padding: 0;
5206
5275
  outline: none;
5207
5276
  min-width: 160px;
@@ -5238,7 +5307,7 @@
5238
5307
  pointer-events: none;
5239
5308
  cursor: not-allowed;
5240
5309
  }
5241
- .ds-247420 .ds-dropdown-item.is-danger { color: var(--danger, #c33); }
5310
+ .ds-247420 .ds-dropdown-item.is-danger { color: var(--danger); }
5242
5311
  .ds-247420 .ds-dropdown-glyph { width: 16px; display: inline-flex; justify-content: center; flex-shrink: 0; }
5243
5312
  .ds-247420 .ds-dropdown-label { flex: 1; min-width: 0; }
5244
5313
  .ds-247420 .ds-dropdown-separator { height: 1px; background: var(--rule); margin: 4px 6px; }
@@ -5318,7 +5387,7 @@
5318
5387
  background: var(--bg-2); color: var(--fg);
5319
5388
  border: 1px solid var(--rule);
5320
5389
  border-radius: var(--r-2, 14px);
5321
- box-shadow: var(--shadow-3, 0 12px 32px rgba(0,0,0,0.3));
5390
+ box-shadow: var(--shadow-3);
5322
5391
  overflow: hidden;
5323
5392
  }
5324
5393
  .ds-247420 .ov-cmd-input {
@@ -5366,7 +5435,7 @@
5366
5435
  background: var(--bg-2); color: var(--fg);
5367
5436
  border: 1px solid var(--rule);
5368
5437
  border-radius: var(--r-2, 14px);
5369
- box-shadow: var(--shadow-3, 0 12px 32px rgba(0,0,0,0.3));
5438
+ box-shadow: var(--shadow-3);
5370
5439
  outline: none; overflow: hidden;
5371
5440
  }
5372
5441
  .ds-247420 .ov-emoji-tabs {
@@ -5446,7 +5515,7 @@
5446
5515
  background: var(--bg-2); color: var(--fg);
5447
5516
  border: 1px solid var(--rule);
5448
5517
  border-radius: var(--r-2, 14px);
5449
- box-shadow: var(--shadow-3, 0 12px 32px rgba(0,0,0,0.3));
5518
+ box-shadow: var(--shadow-3);
5450
5519
  outline: none; overflow: hidden;
5451
5520
  }
5452
5521
  .ds-247420 .ov-set-head {
@@ -5491,14 +5560,14 @@
5491
5560
  .ds-247420 .ov-auth-backdrop {
5492
5561
  position: fixed; inset: 0; z-index: var(--z-overlay, 1000);
5493
5562
  display: flex; align-items: center; justify-content: center;
5494
- background: rgba(0,0,0,.55);
5563
+ background: var(--scrim-strong);
5495
5564
  }
5496
5565
  .ds-247420 .ov-auth-panel {
5497
5566
  width: min(420px, 92vw);
5498
5567
  display: flex; flex-direction: column;
5499
5568
  background: var(--bg-2); color: var(--fg);
5500
5569
  border: 1px solid var(--rule); border-radius: var(--r-2, 8px);
5501
- box-shadow: var(--shadow-2, 0 12px 40px rgba(0,0,0,.4));
5570
+ box-shadow: var(--shadow-overlay);
5502
5571
  overflow: hidden;
5503
5572
  }
5504
5573
  .ds-247420 .ov-auth-head { display: flex; align-items: center; justify-content: space-between; padding: var(--space-3); border-bottom: 1px solid var(--rule); }
@@ -5511,21 +5580,21 @@
5511
5580
  .ds-247420 .ov-auth-body { display: flex; flex-direction: column; gap: var(--space-2); padding: var(--space-3); }
5512
5581
  .ds-247420 .ov-auth-hint { margin: 0; font-size: var(--fs-0, 12px); color: var(--fg-2, var(--fg)); }
5513
5582
  .ds-247420 .ov-auth-input { padding: var(--space-2); border: 1px solid var(--rule-strong); border-radius: var(--r-1); background: var(--bg-3); color: var(--fg); }
5514
- .ds-247420 .ov-auth-primary { padding: var(--space-2); border: none; border-radius: var(--r-1); background: var(--accent); color: var(--accent-fg, #fff); font-weight: 700; cursor: pointer; }
5583
+ .ds-247420 .ov-auth-primary { padding: var(--space-2); border: none; border-radius: var(--r-1); background: var(--accent); color: var(--on-accent); font-weight: 700; cursor: pointer; }
5515
5584
  .ds-247420 .ov-auth-primary:disabled { opacity: .6; cursor: progress; }
5516
- .ds-247420 .ov-auth-error { margin: 0 var(--space-3) var(--space-3); padding: var(--space-2); border-radius: var(--r-1); background: var(--danger-bg, rgba(208,69,69,.15)); color: var(--danger, #d04545); font-size: var(--fs-0, 12px); }
5585
+ .ds-247420 .ov-auth-error { margin: 0 var(--space-3) var(--space-3); padding: var(--space-2); border-radius: var(--r-1); background: color-mix(in oklab, var(--danger) 15%, transparent); color: var(--danger); font-size: var(--fs-0, 12px); }
5517
5586
 
5518
5587
  /* VideoLightbox — ov-lightbox-* */
5519
5588
  .ds-247420 .ov-lightbox-backdrop {
5520
5589
  position: fixed; inset: 0; z-index: var(--z-overlay-top, 1100);
5521
5590
  display: flex; align-items: center; justify-content: center;
5522
- background: rgba(0,0,0,.85);
5591
+ background: var(--scrim-media);
5523
5592
  }
5524
- .ds-247420 .ov-lightbox-x { position: absolute; top: 16px; right: 16px; width: 40px; height: 40px; border: none; border-radius: 50%; background: rgba(255,255,255,.12); color: #fff; font-size: 24px; line-height: 1; cursor: pointer; }
5525
- .ds-247420 .ov-lightbox-x:hover { background: rgba(255,255,255,.24); }
5593
+ .ds-247420 .ov-lightbox-x { position: absolute; top: 16px; right: 16px; width: 40px; height: 40px; border: none; border-radius: 50%; background: color-mix(in oklab, var(--on-color) 12%, transparent); color: var(--on-color); font-size: 24px; line-height: 1; cursor: pointer; }
5594
+ .ds-247420 .ov-lightbox-x:hover { background: color-mix(in oklab, var(--on-color) 24%, transparent); }
5526
5595
  .ds-247420 .ov-lightbox-stage { display: flex; flex-direction: column; align-items: center; gap: var(--space-2); max-width: 92vw; max-height: 90vh; }
5527
- .ds-247420 .ov-lightbox-video { max-width: 92vw; max-height: 82vh; border-radius: var(--r-1); background: #000; }
5528
- .ds-247420 .ov-lightbox-label { color: #fff; font-size: var(--fs-0, 12px); opacity: .85; }
5596
+ .ds-247420 .ov-lightbox-video { max-width: 92vw; max-height: 82vh; border-radius: var(--r-1); background: #000; /* true black media letterbox, intentional */ }
5597
+ .ds-247420 .ov-lightbox-label { color: var(--on-color); font-size: var(--fs-0, 12px); opacity: .85; }
5529
5598
 
5530
5599
  /* community-app.css */
5531
5600
  /* community-app.css — layout glue for mountCommunityApp (the full chat/community
@@ -5536,15 +5605,6 @@
5536
5605
  .ds-247420. Additive — defines only the ca- prefix, group, rail-empty, vx-view
5537
5606
  classes plus the cat color tokens. */
5538
5607
 
5539
- .ds-247420 {
5540
- --cat-green: #3F8A4A;
5541
- --cat-purple: #6B3A78;
5542
- --cat-mascot: #F07AA8;
5543
- --cat-sun: #FFD86B;
5544
- --cat-flame: #FF8454;
5545
- --cat-sky: #6FA9FF;
5546
- }
5547
-
5548
5608
  .ds-247420.ds-247420 .ca-app {
5549
5609
  display: flex;
5550
5610
  flex-direction: column;
@@ -5619,7 +5679,7 @@
5619
5679
  padding: 0 5px;
5620
5680
  border-radius: 9px;
5621
5681
  background: var(--accent);
5622
- color: var(--green-fg, #fff);
5682
+ color: var(--on-accent);
5623
5683
  font-size: 11px;
5624
5684
  font-weight: 600;
5625
5685
  text-align: center;
@@ -5649,3 +5709,72 @@
5649
5709
  overflow-y: auto;
5650
5710
  align-content: start;
5651
5711
  }
5712
+
5713
+ /* spoint/loading-screen.css */
5714
+ /* Loading-screen kit styles. Scoped under .ds-247420 at build time.
5715
+ All colors reference design tokens (no raw literals) per the token-lint gate. */
5716
+ .ds-247420 .sp-loading {
5717
+ position: fixed;
5718
+ inset: 0;
5719
+ z-index: 10000;
5720
+ display: flex;
5721
+ align-items: center;
5722
+ justify-content: center;
5723
+ background: var(--bg);
5724
+ color: var(--fg);
5725
+ font-family: var(--ff-mono);
5726
+ transition: opacity var(--dur-slow) var(--ease);
5727
+ }
5728
+ .ds-247420 .sp-loading-fade { opacity: 0; pointer-events: none; }
5729
+ .ds-247420 .sp-loading-container {
5730
+ width: min(420px, 86vw);
5731
+ display: flex;
5732
+ flex-direction: column;
5733
+ gap: 20px;
5734
+ }
5735
+ .ds-247420 .sp-loading-header h1 {
5736
+ margin: 0;
5737
+ font-family: var(--ff-display);
5738
+ font-size: var(--fs-h2);
5739
+ letter-spacing: 0.04em;
5740
+ }
5741
+ .ds-247420 .sp-loading-label {
5742
+ margin: 4px 0 0;
5743
+ color: var(--fg-2);
5744
+ font-size: var(--fs-body);
5745
+ }
5746
+ .ds-247420 .sp-loading-bars { display: flex; flex-direction: column; gap: 10px; }
5747
+ .ds-247420 .sp-loading-bar-row {
5748
+ display: grid;
5749
+ grid-template-columns: 88px 1fr 44px;
5750
+ align-items: center;
5751
+ gap: 10px;
5752
+ }
5753
+ .ds-247420 .sp-loading-bar-name {
5754
+ color: var(--fg-3);
5755
+ font-size: var(--fs-small, 11px);
5756
+ text-transform: uppercase;
5757
+ letter-spacing: 0.1em;
5758
+ }
5759
+ .ds-247420 .sp-loading-bar-track {
5760
+ height: 6px;
5761
+ border-radius: 3px;
5762
+ background: var(--bg-3);
5763
+ overflow: hidden;
5764
+ }
5765
+ .ds-247420 .sp-loading-bar-fill {
5766
+ height: 100%;
5767
+ width: 0%;
5768
+ background: var(--accent);
5769
+ transition: width var(--dur-base) var(--ease);
5770
+ }
5771
+ .ds-247420 .sp-loading-bar-pct {
5772
+ color: var(--fg-2);
5773
+ font-size: var(--fs-small, 11px);
5774
+ text-align: right;
5775
+ }
5776
+ .ds-247420 .sp-loading-detail {
5777
+ min-height: 16px;
5778
+ color: var(--fg-3);
5779
+ font-size: var(--fs-small, 11px);
5780
+ }