ui-style-kit-css 2.3.0 → 2.4.1

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.
Files changed (122) hide show
  1. package/CHANGELOG.md +57 -2
  2. package/CONTRIBUTING.md +8 -1
  3. package/README.md +102 -44
  4. package/STYLE-MAP.md +14 -5
  5. package/dist/assets/bauhaus-barlow-OFL.txt +93 -0
  6. package/dist/assets/bauhaus-barlow-semibold.ttf +0 -0
  7. package/dist/assets/bauhaus-barlow.ttf +0 -0
  8. package/dist/assets/bauhaus-condensed-OFL.txt +93 -0
  9. package/dist/assets/bauhaus-condensed-bold.ttf +0 -0
  10. package/dist/assets/bauhaus-condensed-extrabold.ttf +0 -0
  11. package/dist/assets/bento-manrope-OFL.txt +93 -0
  12. package/dist/assets/bento-manrope.ttf +0 -0
  13. package/dist/assets/clay-grain.png +0 -0
  14. package/dist/assets/clay-rounded-OFL.txt +93 -0
  15. package/dist/assets/clay-rounded.ttf +0 -0
  16. package/dist/assets/neo-noir-corner-dark.png +0 -0
  17. package/dist/assets/neo-noir-corner-light.png +0 -0
  18. package/dist/assets/neo-noir-texture-dark.png +0 -0
  19. package/dist/assets/neo-noir-texture-light.png +0 -0
  20. package/dist/assets/organic-display-OFL.txt +93 -0
  21. package/dist/assets/organic-display.ttf +0 -0
  22. package/dist/assets/organic-icons-LICENSE.txt +21 -0
  23. package/dist/assets/organic-sans-OFL.txt +93 -0
  24. package/dist/assets/organic-sans.ttf +0 -0
  25. package/dist/ui-style-kit.css +47898 -15121
  26. package/dist/ui-style-kit.min.css +2 -2
  27. package/dist/ui-style-kit.visual.css +47771 -15122
  28. package/dist/ui-style-kit.visual.min.css +2 -2
  29. package/dist/ui-style-kit.with-bridge.css +47932 -15145
  30. package/dist/ui-style-kit.with-bridge.min.css +2 -2
  31. package/dist/visual/art-deco.css +3247 -295
  32. package/dist/visual/bauhaus.css +2 -4692
  33. package/dist/visual/bento.css +2 -4708
  34. package/dist/visual/brutalism.css +1229 -231
  35. package/dist/visual/clay.css +2 -4786
  36. package/dist/visual/cyberpunk.css +2663 -282
  37. package/dist/visual/data-terminal.css +2064 -276
  38. package/dist/visual/editorial-luxe.css +2315 -259
  39. package/dist/visual/industrial-utility.css +3142 -270
  40. package/dist/visual/maximalist.css +2185 -454
  41. package/dist/visual/minimal-saas.css +1503 -398
  42. package/dist/visual/neo-noir.css +2 -4787
  43. package/dist/visual/neumorphism.css +1690 -402
  44. package/dist/visual/organic-modern.css +2 -4764
  45. package/dist/visual/paper-editorial.css +2977 -292
  46. package/dist/visual/retro-glass.css +2625 -299
  47. package/dist/visual/retrofuturism.css +1885 -397
  48. package/dist/visual/tactile.css +2716 -498
  49. package/dist/visual/technical-blueprint.css +2599 -267
  50. package/dist/visual/y2k.css +1906 -309
  51. package/docs/ART-DECO.md +80 -0
  52. package/docs/BAUHAUS.md +152 -0
  53. package/docs/BENTO.md +121 -0
  54. package/docs/CLAY.md +127 -0
  55. package/docs/COLOR-THEMES.md +63 -0
  56. package/docs/DEMO-SHOWCASE.md +65 -0
  57. package/docs/ECOSYSTEM.md +4 -4
  58. package/docs/EDITORIAL-LUX.md +75 -0
  59. package/docs/INDUSTRIAL-UTILITY.md +131 -0
  60. package/docs/NATIVE-ELEMENTS.md +23 -17
  61. package/docs/NEO-NOIR.md +94 -0
  62. package/docs/ORGANIC-MODERN.md +91 -0
  63. package/docs/PAPER-EDITORIAL.md +63 -0
  64. package/docs/PUBLISHING.md +31 -10
  65. package/docs/RELEASE-2.4.0.md +88 -0
  66. package/docs/RELEASE-2.4.1.md +35 -0
  67. package/docs/RETRO-GLASS.md +105 -0
  68. package/docs/STYLE-GUIDE.md +41 -26
  69. package/docs/TACTILE.md +38 -0
  70. package/docs/TECHNICAL-BLUEPRINT.md +60 -0
  71. package/docs/TOKENS.md +80 -3
  72. package/docs/superpowers/plans/2026-09-04-library-wide-theme-fallback-and-fidelity.md +331 -0
  73. package/docs/superpowers/specs/2026-09-04-library-wide-theme-fallback-and-fidelity-design.md +113 -0
  74. package/manifest.json +624 -28
  75. package/package.json +20 -11
  76. package/styles/art-deco.css +1402 -17
  77. package/styles/assets/bauhaus-barlow-OFL.txt +93 -0
  78. package/styles/assets/bauhaus-barlow-semibold.ttf +0 -0
  79. package/styles/assets/bauhaus-barlow.ttf +0 -0
  80. package/styles/assets/bauhaus-condensed-OFL.txt +93 -0
  81. package/styles/assets/bauhaus-condensed-bold.ttf +0 -0
  82. package/styles/assets/bauhaus-condensed-extrabold.ttf +0 -0
  83. package/styles/assets/bento-manrope-OFL.txt +93 -0
  84. package/styles/assets/bento-manrope.ttf +0 -0
  85. package/styles/assets/clay-grain.png +0 -0
  86. package/styles/assets/clay-rounded-OFL.txt +93 -0
  87. package/styles/assets/clay-rounded.ttf +0 -0
  88. package/styles/assets/neo-noir-corner-dark.png +0 -0
  89. package/styles/assets/neo-noir-corner-light.png +0 -0
  90. package/styles/assets/neo-noir-texture-dark.png +0 -0
  91. package/styles/assets/neo-noir-texture-light.png +0 -0
  92. package/styles/assets/organic-display-OFL.txt +93 -0
  93. package/styles/assets/organic-display.ttf +0 -0
  94. package/styles/assets/organic-icons-LICENSE.txt +21 -0
  95. package/styles/assets/organic-sans-OFL.txt +93 -0
  96. package/styles/assets/organic-sans.ttf +0 -0
  97. package/styles/bauhaus.css +881 -110
  98. package/styles/bento.css +1182 -113
  99. package/styles/brutalism.css +266 -15
  100. package/styles/clay.css +1307 -72
  101. package/styles/compat-layout.css +1 -2
  102. package/styles/components.css +107 -36
  103. package/styles/content-overflow.css +11 -5
  104. package/styles/cyberpunk.css +1856 -51
  105. package/styles/data-terminal.css +1122 -18
  106. package/styles/editorial-luxe.css +581 -17
  107. package/styles/industrial-utility.css +1775 -16
  108. package/styles/interactive-surface-bridge.css +30 -20
  109. package/styles/interactive-surface-theme.css +21 -11
  110. package/styles/maximalist.css +1215 -133
  111. package/styles/minimal-saas.css +465 -93
  112. package/styles/native-elements.css +347 -171
  113. package/styles/neo-noir.css +661 -19
  114. package/styles/neumorphism.css +1021 -149
  115. package/styles/organic-modern.css +693 -23
  116. package/styles/paper-editorial.css +1053 -17
  117. package/styles/retro-glass.css +639 -50
  118. package/styles/retrofuturism.css +948 -60
  119. package/styles/tactile.css +1813 -111
  120. package/styles/technical-blueprint.css +673 -22
  121. package/styles/theme-colors.css +412 -2
  122. package/styles/y2k.css +954 -46
package/styles/y2k.css CHANGED
@@ -18,12 +18,12 @@
18
18
 
19
19
  @layer ui-style-kit.y2k {
20
20
  :root {
21
- --y2k-radius-xs: 0.25rem;
22
- --y2k-radius-sm: 0.5rem;
23
- --y2k-radius-md: 0.75rem;
24
- --y2k-radius-lg: 1rem;
25
- --y2k-radius-xl: 1.5rem;
26
- --y2k-radius-pill: 999px;
21
+ --y2k-radius-xs: 0;
22
+ --y2k-radius-sm: 0;
23
+ --y2k-radius-md: 0;
24
+ --y2k-radius-lg: 0;
25
+ --y2k-radius-xl: 0;
26
+ --y2k-radius-pill: 0;
27
27
 
28
28
  --y2k-space-1: 0.25rem;
29
29
  --y2k-space-2: 0.5rem;
@@ -33,42 +33,121 @@
33
33
  --y2k-space-6: 1.5rem;
34
34
  --y2k-space-8: 2rem;
35
35
 
36
- --y2k-transition-fast: 140ms ease;
37
- --y2k-transition-base: 220ms ease;
38
- --y2k-transition-slow: 360ms ease;
36
+ --y2k-transition-fast: 60ms steps(1, end);
37
+ --y2k-transition-base: 90ms steps(1, end);
38
+ --y2k-transition-slow: 120ms steps(1, end);
39
39
 
40
- --y2k-font-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
41
- --y2k-font-display: Orbitron, Rajdhani, Eurostile, "Bank Gothic", var(--y2k-font-sans);
40
+ --y2k-font-sans: Tahoma, Verdana, Arial, sans-serif;
41
+ --y2k-font-display: Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif;
42
42
  --y2k-font-body: var(--y2k-font-sans);
43
- --y2k-font-heading: var(--y2k-font-display);
44
- --y2k-font-control: var(--y2k-font-display);
45
- --y2k-font-mono: "JetBrains Mono", "SFMono-Regular", Consolas, "Liberation Mono", monospace;
43
+ --y2k-font-heading: var(--y2k-font-sans);
44
+ --y2k-font-control: var(--y2k-font-sans);
45
+ --y2k-font-mono: "Courier New", Courier, monospace;
46
46
  }
47
47
 
48
48
  [data-ui="y2k"][data-mode="light"] {
49
49
  color-scheme: light;
50
- --y2k-panel-alpha: 0.92;
51
- --y2k-panel-strong-alpha: 0.98;
52
- --y2k-panel-soft-alpha: 0.74;
53
- --y2k-border-alpha: 0.7;
54
- --y2k-glow-alpha: 0.24;
55
- --y2k-shadow-alpha: 0.18;
56
- --y2k-grid-alpha: 0.075;
50
+ --y2k-fallback-bg-rgb: 192 192 192;
51
+ --y2k-fallback-surface-rgb: 236 236 236;
52
+ --y2k-fallback-surface-strong-rgb: 255 255 255;
53
+ --y2k-fallback-surface-soft-rgb: 216 216 216;
54
+ --y2k-fallback-text-rgb: 5 5 5;
55
+ --y2k-fallback-text-muted-rgb: 68 68 68;
56
+ --y2k-fallback-border-rgb: 119 119 119;
57
+ --y2k-fallback-primary-rgb: 8 24 172;
58
+ --y2k-fallback-primary-hover-rgb: 0 127 16;
59
+ --y2k-fallback-primary-text-rgb: 255 255 255;
60
+ --y2k-fallback-secondary-rgb: 0 127 136;
61
+ --y2k-fallback-secondary-hover-rgb: 0 95 102;
62
+ --y2k-fallback-secondary-text-rgb: 255 255 255;
63
+ --y2k-fallback-accent-rgb: 0 217 239;
64
+ --y2k-fallback-accent-text-rgb: 0 0 0;
65
+ --y2k-fallback-success-rgb: 0 143 19;
66
+ --y2k-fallback-success-text-rgb: 0 0 0;
67
+ --y2k-fallback-warning-rgb: 255 240 0;
68
+ --y2k-fallback-warning-text-rgb: 0 0 0;
69
+ --y2k-fallback-danger-rgb: 210 18 18;
70
+ --y2k-fallback-danger-text-rgb: 255 255 255;
71
+ --y2k-fallback-link-rgb: 0 0 204;
72
+ --y2k-fallback-focus-rgb: 210 18 18;
73
+ --y2k-panel-alpha: 1;
74
+ --y2k-panel-strong-alpha: 1;
75
+ --y2k-panel-soft-alpha: 1;
76
+ --y2k-border-alpha: 1;
77
+ --y2k-glow-alpha: 0;
78
+ --y2k-shadow-alpha: 0.48;
79
+ --y2k-grid-alpha: 0;
80
+ --y2k-bevel-highlight: #fff;
81
+ --y2k-bevel-shadow: #3d3d3d;
82
+ --y2k-reference-navy: #000080;
57
83
  }
58
84
 
59
85
  [data-ui="y2k"][data-mode="dark"] {
60
86
  color-scheme: dark;
61
- --y2k-panel-alpha: 0.82;
62
- --y2k-panel-strong-alpha: 0.94;
63
- --y2k-panel-soft-alpha: 0.58;
64
- --y2k-border-alpha: 0.64;
65
- --y2k-glow-alpha: 0.42;
66
- --y2k-shadow-alpha: 0.42;
67
- --y2k-grid-alpha: 0.12;
87
+ --y2k-dark-fallback-bg-rgb: 2 6 7;
88
+ --y2k-dark-fallback-surface-rgb: 3 7 7;
89
+ --y2k-dark-fallback-primary-rgb: 7 20 145;
90
+ --y2k-dark-fallback-link-rgb: 85 167 255;
91
+ --y2k-fallback-bg-rgb: 2 6 7;
92
+ --y2k-fallback-surface-rgb: 3 7 7;
93
+ --y2k-fallback-surface-strong-rgb: 9 16 17;
94
+ --y2k-fallback-surface-soft-rgb: 9 16 17;
95
+ --y2k-fallback-text-rgb: 217 219 220;
96
+ --y2k-fallback-text-muted-rgb: 167 172 175;
97
+ --y2k-fallback-border-rgb: 79 90 93;
98
+ --y2k-fallback-primary-rgb: 7 20 145;
99
+ --y2k-fallback-primary-hover-rgb: 0 127 16;
100
+ --y2k-fallback-primary-text-rgb: 255 255 255;
101
+ --y2k-fallback-secondary-rgb: 7 94 101;
102
+ --y2k-fallback-secondary-hover-rgb: 7 94 101;
103
+ --y2k-fallback-secondary-text-rgb: 255 255 255;
104
+ --y2k-fallback-accent-rgb: 25 215 239;
105
+ --y2k-fallback-accent-text-rgb: 0 0 0;
106
+ --y2k-fallback-success-rgb: 22 209 45;
107
+ --y2k-fallback-success-text-rgb: 0 0 0;
108
+ --y2k-fallback-warning-rgb: 255 242 60;
109
+ --y2k-fallback-warning-text-rgb: 0 0 0;
110
+ --y2k-fallback-danger-rgb: 255 48 48;
111
+ --y2k-fallback-danger-text-rgb: 0 0 0;
112
+ --y2k-fallback-link-rgb: 85 167 255;
113
+ --y2k-fallback-focus-rgb: 255 48 48;
114
+ --y2k-panel-alpha: 1;
115
+ --y2k-panel-strong-alpha: 1;
116
+ --y2k-panel-soft-alpha: 1;
117
+ --y2k-border-alpha: 1;
118
+ --y2k-glow-alpha: 0;
119
+ --y2k-shadow-alpha: 0.72;
120
+ --y2k-grid-alpha: 0;
121
+ --y2k-bevel-highlight: #879194;
122
+ --y2k-bevel-shadow: #000;
123
+ --y2k-reference-navy: #050f7b;
68
124
  }
69
125
 
70
126
  [data-ui="y2k"][data-mode="contrast"] {
71
127
  color-scheme: dark;
128
+ --y2k-fallback-bg-rgb: 0 0 0;
129
+ --y2k-fallback-surface-rgb: 5 8 12;
130
+ --y2k-fallback-surface-strong-rgb: 10 19 32;
131
+ --y2k-fallback-surface-soft-rgb: 0 0 0;
132
+ --y2k-fallback-text-rgb: 255 255 255;
133
+ --y2k-fallback-text-muted-rgb: 242 247 255;
134
+ --y2k-fallback-border-rgb: 255 255 255;
135
+ --y2k-fallback-primary-rgb: 156 197 240;
136
+ --y2k-fallback-primary-hover-rgb: 255 255 255;
137
+ --y2k-fallback-primary-text-rgb: 0 0 0;
138
+ --y2k-fallback-secondary-rgb: 0 230 255;
139
+ --y2k-fallback-secondary-hover-rgb: 255 255 255;
140
+ --y2k-fallback-secondary-text-rgb: 0 0 0;
141
+ --y2k-fallback-accent-rgb: 230 240 255;
142
+ --y2k-fallback-accent-text-rgb: 0 0 0;
143
+ --y2k-fallback-success-rgb: 0 255 144;
144
+ --y2k-fallback-success-text-rgb: 0 0 0;
145
+ --y2k-fallback-warning-rgb: 255 212 0;
146
+ --y2k-fallback-warning-text-rgb: 0 0 0;
147
+ --y2k-fallback-danger-rgb: 255 92 92;
148
+ --y2k-fallback-danger-text-rgb: 0 0 0;
149
+ --y2k-fallback-link-rgb: 156 197 240;
150
+ --y2k-fallback-focus-rgb: 255 255 255;
72
151
  --y2k-panel-alpha: 1;
73
152
  --y2k-panel-strong-alpha: 1;
74
153
  --y2k-panel-soft-alpha: 0.92;
@@ -78,8 +157,8 @@
78
157
  --y2k-grid-alpha: 0.18;
79
158
  }
80
159
 
160
+ /** Preserves direct aliases for static extraction when a scheme is selected. */
81
161
  [data-ui="y2k"][data-theme][data-mode] {
82
- /* Shared scheme aliases preserve the existing prefixed token API. */
83
162
  --y2k-bg-rgb: var(--usk-bg-rgb);
84
163
  --y2k-surface-rgb: var(--usk-surface-rgb);
85
164
  --y2k-surface-strong-rgb: var(--usk-surface-strong-rgb);
@@ -94,15 +173,43 @@
94
173
  --y2k-secondary-hover-rgb: var(--usk-secondary-hover-rgb);
95
174
  --y2k-secondary-text-rgb: var(--usk-secondary-text-rgb);
96
175
  --y2k-accent-rgb: var(--usk-accent-rgb);
97
- --y2k-success-rgb: var(--usk-success-rgb);
98
- --y2k-warning-rgb: var(--usk-warning-rgb);
99
- --y2k-danger-rgb: var(--usk-danger-rgb);
100
- --y2k-link-rgb: var(--usk-link-rgb);
101
176
  --y2k-accent-text-rgb: var(--usk-accent-text-rgb);
177
+ --y2k-success-rgb: var(--usk-success-rgb);
102
178
  --y2k-success-text-rgb: var(--usk-success-text-rgb);
179
+ --y2k-warning-rgb: var(--usk-warning-rgb);
103
180
  --y2k-warning-text-rgb: var(--usk-warning-text-rgb);
181
+ --y2k-danger-rgb: var(--usk-danger-rgb);
104
182
  --y2k-danger-text-rgb: var(--usk-danger-text-rgb);
183
+ --y2k-link-rgb: var(--usk-link-rgb);
105
184
  --y2k-focus-rgb: var(--usk-focus-rgb);
185
+ }
186
+
187
+ [data-ui="y2k"][data-mode] {
188
+ --usk-native-bg: var(--y2k-bg);
189
+ /* Explicit schemes win; reference colors are used only when no scheme exists. */
190
+ --y2k-bg-rgb: var(--usk-bg-rgb, var(--y2k-fallback-bg-rgb));
191
+ --y2k-surface-rgb: var(--usk-surface-rgb, var(--y2k-fallback-surface-rgb));
192
+ --y2k-surface-strong-rgb: var(--usk-surface-strong-rgb, var(--y2k-fallback-surface-strong-rgb));
193
+ --y2k-surface-soft-rgb: var(--usk-surface-soft-rgb, var(--y2k-fallback-surface-soft-rgb));
194
+ --y2k-text-rgb: var(--usk-text-rgb, var(--y2k-fallback-text-rgb));
195
+ --y2k-text-muted-rgb: var(--usk-text-muted-rgb, var(--y2k-fallback-text-muted-rgb));
196
+ --y2k-border-rgb: var(--usk-border-rgb, var(--y2k-fallback-border-rgb));
197
+ --y2k-primary-rgb: var(--usk-primary-rgb, var(--y2k-fallback-primary-rgb));
198
+ --y2k-primary-hover-rgb: var(--usk-primary-hover-rgb, var(--y2k-fallback-primary-hover-rgb));
199
+ --y2k-primary-text-rgb: var(--usk-primary-text-rgb, var(--y2k-fallback-primary-text-rgb));
200
+ --y2k-secondary-rgb: var(--usk-secondary-rgb, var(--y2k-fallback-secondary-rgb));
201
+ --y2k-secondary-hover-rgb: var(--usk-secondary-hover-rgb, var(--y2k-fallback-secondary-hover-rgb));
202
+ --y2k-secondary-text-rgb: var(--usk-secondary-text-rgb, var(--y2k-fallback-secondary-text-rgb));
203
+ --y2k-accent-rgb: var(--usk-accent-rgb, var(--y2k-fallback-accent-rgb));
204
+ --y2k-accent-text-rgb: var(--usk-accent-text-rgb, var(--y2k-fallback-accent-text-rgb));
205
+ --y2k-success-rgb: var(--usk-success-rgb, var(--y2k-fallback-success-rgb));
206
+ --y2k-success-text-rgb: var(--usk-success-text-rgb, var(--y2k-fallback-success-text-rgb));
207
+ --y2k-warning-rgb: var(--usk-warning-rgb, var(--y2k-fallback-warning-rgb));
208
+ --y2k-warning-text-rgb: var(--usk-warning-text-rgb, var(--y2k-fallback-warning-text-rgb));
209
+ --y2k-danger-rgb: var(--usk-danger-rgb, var(--y2k-fallback-danger-rgb));
210
+ --y2k-danger-text-rgb: var(--usk-danger-text-rgb, var(--y2k-fallback-danger-text-rgb));
211
+ --y2k-link-rgb: var(--usk-link-rgb, var(--y2k-fallback-link-rgb));
212
+ --y2k-focus-rgb: var(--usk-focus-rgb, var(--y2k-fallback-focus-rgb));
106
213
  /* Native fallback selectors inherit visual identity through shared tokens. */
107
214
  --usk-native-surface: var(--y2k-surface);
108
215
  --usk-native-surface-strong: var(--y2k-surface-strong);
@@ -133,6 +240,57 @@
133
240
  --usk-native-border-width: 1px;
134
241
  --usk-native-field-gap: .5rem;
135
242
  --usk-native-panel-padding: var(--y2k-space-5);
243
+ --usk-native-control-min-block-size: 3.125rem;
244
+ --usk-native-control-padding-block: .68rem;
245
+ --usk-native-control-padding-inline: 1rem;
246
+ --usk-native-subcontrol-padding-block: .5rem;
247
+ --usk-native-subcontrol-padding-inline: .8rem;
248
+ --usk-native-choice-size: 1.6rem;
249
+ --usk-native-choice-background: var(--y2k-control-bg);
250
+ --usk-native-choice-border: 1px solid var(--y2k-border);
251
+ --usk-native-checkbox-radius: .65rem;
252
+ --usk-native-radio-radius: 50%;
253
+ --usk-native-choice-shadow: inset 0 3px rgb(255 255 255 / .55);
254
+ --usk-native-choice-checked-background: var(--y2k-primary);
255
+ --usk-native-choice-mark-color: var(--y2k-on-primary);
256
+ --usk-native-select-indicator-image: linear-gradient(54deg, transparent 50%, var(--y2k-primary) 50%), linear-gradient(126deg, var(--y2k-primary) 50%, transparent 50%);
257
+ --usk-native-select-indicator-size: 0.5rem 0.5rem, 0.5rem 0.5rem;
258
+ --usk-native-select-indicator-position: calc(100% - 1.08rem) 50%, calc(100% - 0.78rem) 50%;
259
+ --usk-native-select-padding-inline-end: 2.4rem;
260
+ --usk-native-range-track-size: .66rem;
261
+ --usk-native-range-track-background: var(--y2k-surface-soft);
262
+ --usk-native-range-track-border: 1px solid var(--y2k-border);
263
+ --usk-native-range-track-radius: 999px;
264
+ --usk-native-range-track-shadow: inset 0 3px rgb(255 255 255 / .55);
265
+ --usk-native-range-progress-background: var(--y2k-primary);
266
+ --usk-native-range-thumb-size: 1.55rem;
267
+ --usk-native-range-thumb-background: var(--y2k-surface-strong);
268
+ --usk-native-range-thumb-border: 1px solid var(--y2k-border);
269
+ --usk-native-range-thumb-radius: 50%;
270
+ --usk-native-range-thumb-shadow: inset 0 3px rgb(255 255 255 / .55);
271
+ --usk-native-progress-size: .88rem;
272
+ --usk-native-progress-track-background: var(--y2k-surface-soft);
273
+ --usk-native-progress-track-border: 1px solid var(--y2k-border);
274
+ --usk-native-progress-track-radius: 999px;
275
+ --usk-native-progress-track-shadow: inset 0 3px rgb(255 255 255 / .55);
276
+ --usk-native-progress-value-background: var(--y2k-primary);
277
+ --usk-native-progress-value-radius: 999px;
278
+ --usk-native-progress-value-shadow: inset 0 3px rgb(255 255 255 / .55);
279
+ --usk-native-meter-optimum-background: var(--y2k-success);
280
+ --usk-native-meter-suboptimum-background: var(--y2k-warning);
281
+ --usk-native-meter-critical-background: var(--y2k-danger);
282
+ --usk-native-file-button-background: var(--y2k-primary);
283
+ --usk-native-file-button-border: 1px solid var(--y2k-border);
284
+ --usk-native-file-button-radius: .65rem;
285
+ --usk-native-file-button-shadow: inset 0 3px rgb(255 255 255 / .55);
286
+ --usk-native-color-swatch-border: 1px solid var(--y2k-border);
287
+ --usk-native-color-swatch-radius: .65rem;
288
+ --usk-native-indicator-opacity: 0.9199999999999999;
289
+ --usk-native-indicator-filter: none;
290
+ --usk-native-scrollbar-size: .82rem;
291
+ --usk-native-scrollbar-track: var(--y2k-surface-soft);
292
+ --usk-native-scrollbar-thumb: var(--y2k-primary);
293
+ --usk-native-scrollbar-radius: 999px;
136
294
  --y2k-bg: rgb(var(--y2k-bg-rgb));
137
295
  --y2k-surface: rgb(var(--y2k-surface-rgb) / var(--y2k-panel-alpha));
138
296
  --y2k-surface-strong: rgb(var(--y2k-surface-strong-rgb) / var(--y2k-panel-strong-alpha));
@@ -178,7 +336,7 @@
178
336
  }
179
337
 
180
338
  @supports (color: color-mix(in srgb, black, white)) {
181
- [data-ui="y2k"][data-theme][data-mode] { --y2k-border: color-mix(in srgb, rgb(var(--y2k-border-rgb) / max(var(--y2k-border-alpha), var(--usk-border-min-alpha))), var(--y2k-text) var(--usk-border-text-mix)); }
339
+ [data-ui="y2k"][data-mode] { --y2k-border: color-mix(in srgb, rgb(var(--y2k-border-rgb) / max(var(--y2k-border-alpha), var(--usk-border-min-alpha))), var(--y2k-text) var(--usk-border-text-mix)); }
182
340
  }
183
341
 
184
342
  /* =========================================================
@@ -266,16 +424,16 @@
266
424
  font-family: var(--y2k-font-body);
267
425
  }
268
426
  [data-ui="y2k"] *, [data-ui="y2k"] *::before, [data-ui="y2k"] *::after { box-sizing: border-box; }
269
- [data-ui="y2k"][data-theme][data-mode] { background: var(--y2k-theme-bg); background-size: var(--y2k-theme-bg-size); }
427
+ [data-ui="y2k"][data-mode] { background: var(--y2k-theme-bg); background-size: var(--y2k-theme-bg-size); }
270
428
  [data-ui="y2k"] a { color: var(--y2k-link); text-decoration-thickness: 0.11em; text-underline-offset: 0.18em; } [data-ui="y2k"] ::selection { background: var(--y2k-primary); color: var(--y2k-on-primary); }
271
429
 
272
430
  .y2k-page { min-height: 100vh; padding: clamp(1rem, 4vw, 3rem); background-image: radial-gradient(rgb(var(--y2k-border-rgb) / var(--y2k-grid-alpha)) 1px, transparent 1px); background-size: 22px 22px; }
273
431
  .y2k-container { width: min(100% - 2rem, 1200px); margin-inline: auto; } .y2k-stack { display: flex; flex-direction: column; gap: var(--y2k-space-4); } .y2k-cluster { display: flex; flex-wrap: wrap; align-items: center; gap: var(--y2k-space-3); } .y2k-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); gap: var(--y2k-space-5); } .y2k-section { padding: clamp(1.25rem, 4vw, 2.5rem); }
274
432
  .y2k-title, .y2k-heading, .y2k-kicker, .y2k-button, .y2k-badge, .y2k-nav-link { font-family: var(--y2k-font-heading); }
275
- .y2k-title { margin: 0; font-size: clamp(2.25rem, 6vw, 4.5rem); line-height: .95; letter-spacing: -0.05em; color: var(--y2k-text); text-shadow: 2px 2px 0 rgb(var(--y2k-accent-rgb) / .56), 0 0 24px var(--y2k-glow-accent); } .y2k-heading { margin: 0; font-size: clamp(1.25rem, 3vw, 2rem); letter-spacing: -0.03em; } .y2k-kicker { margin: 0; color: var(--y2k-primary); font-size: .82rem; font-weight: 900; letter-spacing: .16em; text-transform: uppercase; } .y2k-subtitle, .y2k-copy { margin: 0; color: var(--y2k-text-muted); line-height: 1.65; } .y2k-text-muted { color: var(--y2k-text-muted); }
433
+ .y2k-title { margin: 0; font-size: clamp(2.25rem, 6vw, 4.5rem); line-height: .95; letter-spacing: -0.05em; color: var(--y2k-text); text-shadow: 2px 2px 0 rgb(var(--y2k-accent-rgb) / .56), 0 0 24px var(--y2k-glow-accent); } .y2k-heading { margin: 0; font-size: clamp(1.25rem, 3vw, 2rem); letter-spacing: -0.03em; } .y2k-kicker { margin: 0; color: var(--usk-primary-ink, var(--y2k-primary)); font-size: .82rem; font-weight: 900; letter-spacing: .16em; text-transform: uppercase; } .y2k-subtitle, .y2k-copy { margin: 0; color: var(--y2k-text-muted); line-height: 1.65; } .y2k-text-muted { color: var(--y2k-text-muted); }
276
434
 
277
- .y2k-card, .y2k-panel, .y2k-bubble, .y2k-toolbar, .y2k-table-wrap { position: relative; background: linear-gradient(145deg, rgb(255 255 255 / .42), rgb(255 255 255 / .08)), var(--y2k-surface); color: var(--y2k-text); border: 1px solid rgb(255 255 255 / .38); border-bottom-color: rgb(var(--y2k-border-rgb) / .4); border-right-color: rgb(var(--y2k-border-rgb) / .35); border-radius: var(--y2k-radius-xl); box-shadow: var(--y2k-shadow-md), inset 0 1px 0 rgb(255 255 255 / .42), 0 0 28px var(--y2k-glow-accent); overflow: hidden; transition: transform var(--y2k-transition-base), box-shadow var(--y2k-transition-base); }
278
- .y2k-card::before, .y2k-panel::before, .y2k-bubble::before { content: ""; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(circle at 20% 0%, rgb(255 255 255 / .42), transparent 22%), linear-gradient(120deg, transparent 0 55%, rgb(var(--y2k-accent-rgb) / .12)); }
435
+ .y2k-card, .y2k-panel, .y2k-bubble, .y2k-toolbar, .y2k-table-wrap { position: relative; background: linear-gradient(145deg, rgb(255 255 255 / .42), rgb(255 255 255 / .08)), var(--y2k-surface); color: var(--y2k-text); border: 1px solid rgb(255 255 255 / .38); border-bottom-color: rgb(var(--y2k-border-rgb) / .4); border-right-color: rgb(var(--y2k-border-rgb) / .35); border-radius: var(--y2k-radius-xl); box-shadow: var(--y2k-shadow-md), inset 0 1px 0 rgb(255 255 255 / .42), 0 0 28px var(--y2k-glow-accent); transition: transform var(--y2k-transition-base), box-shadow var(--y2k-transition-base); }
436
+ .y2k-card::before, .y2k-panel::before, .y2k-bubble::before { content: ""; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(circle at 20% 0%, rgb(255 255 255 / .42), transparent 22%), linear-gradient(120deg, transparent 0 55%, rgb(var(--y2k-accent-rgb) / .12)); border-radius: inherit; }
279
437
  .y2k-card, .y2k-panel, .y2k-bubble { padding: var(--y2k-space-6); } .y2k-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--y2k-space-4); padding: var(--y2k-space-4); border-radius: var(--y2k-radius-pill); } .y2k-hover-lift:hover { transform: translateY(-3px) scale(1.005); box-shadow: var(--y2k-shadow-lg), 0 0 42px var(--y2k-glow-accent); } .y2k-inset, .y2k-well { background: linear-gradient(180deg, rgb(0 0 0 / .08), rgb(255 255 255 / .12)), var(--y2k-surface-soft); border: 1px solid rgb(var(--y2k-border-rgb) / .42); border-radius: var(--y2k-radius-lg); box-shadow: inset 0 8px 18px rgb(0 0 0 / .12); } .y2k-well { padding: var(--y2k-space-5); }
280
438
 
281
439
  .y2k-button, .y2k-icon-button { appearance: none; display: inline-flex; align-items: center; justify-content: center; gap: var(--y2k-space-2); min-height: 2.85rem; padding: .75rem 1.15rem; background: linear-gradient(180deg, rgb(255 255 255 / .42), rgb(255 255 255 / .08)), var(--y2k-surface-strong); color: var(--y2k-text); border: 1px solid rgb(255 255 255 / .42); border-radius: var(--y2k-radius-pill); box-shadow: var(--y2k-shadow-sm), inset 0 1px 0 rgb(255 255 255 / .5); font: inherit; font-family: var(--y2k-font-display); font-weight: 900; letter-spacing: .02em; cursor: pointer; text-decoration: none; transition: transform var(--y2k-transition-fast), box-shadow var(--y2k-transition-fast), background var(--y2k-transition-fast); }
@@ -292,7 +450,7 @@
292
450
  .y2k-progress { width: 100%; height: .9rem; background: var(--y2k-surface-soft); border-radius: var(--y2k-radius-pill); box-shadow: inset 0 6px 14px rgb(0 0 0 / .12); overflow: hidden; } .y2k-progress-bar { height: 100%; width: var(--y2k-progress-value, 50%); background: linear-gradient(90deg, var(--y2k-primary), var(--y2k-accent), var(--y2k-secondary)); border-radius: inherit; }
293
451
  .y2k-alert { padding: var(--y2k-space-4); background: var(--y2k-surface); border: 1px solid rgb(255 255 255 / .38); border-radius: var(--y2k-radius-xl); box-shadow: var(--y2k-shadow-md); } .y2k-alert-title { margin: 0; font-weight: 900; } .y2k-alert-body { margin: .5rem 0 0; color: var(--y2k-text-muted); } .y2k-alert-success { box-shadow: var(--y2k-shadow-md), 0 0 22px rgb(var(--y2k-success-rgb) / .2); } .y2k-alert-warning { box-shadow: var(--y2k-shadow-md), 0 0 22px rgb(var(--y2k-warning-rgb) / .2); } .y2k-alert-danger { box-shadow: var(--y2k-shadow-md), 0 0 22px rgb(var(--y2k-danger-rgb) / .2); }
294
452
  .y2k-table-wrap { overflow: auto; } .y2k-table { width: 100%; border-collapse: collapse; } .y2k-table th, .y2k-table td { padding: .9rem 1rem; border-bottom: 1px solid rgb(var(--y2k-border-rgb) / .34); text-align: left; } .y2k-table th { background: rgb(255 255 255 / .16); font-weight: 900; } .y2k-table td { color: var(--y2k-text-muted); }
295
- .y2k-text-primary { color: var(--y2k-primary); } .y2k-text-secondary { color: var(--y2k-secondary); } .y2k-text-accent { color: var(--y2k-accent); } .y2k-text-success { color: var(--y2k-success); } .y2k-text-warning { color: var(--y2k-warning); } .y2k-text-danger { color: var(--y2k-danger); }
453
+ .y2k-text-primary { color: var(--usk-primary-ink, var(--y2k-primary)); } .y2k-text-secondary { color: var(--y2k-secondary); } .y2k-text-accent { color: var(--usk-accent-ink, var(--y2k-accent)); } .y2k-text-success { color: var(--y2k-success); } .y2k-text-warning { color: var(--y2k-warning); } .y2k-text-danger { color: var(--y2k-danger); }
296
454
  [data-ui="y2k"] :focus-visible { outline: 3px solid var(--y2k-focus); outline-offset: 3px; }
297
455
  @media (prefers-reduced-motion: reduce) { [data-ui="y2k"] *, [data-ui="y2k"] *::before, [data-ui="y2k"] *::after { transition-duration: 1ms !important; animation-duration: 1ms !important; } }
298
456
 
@@ -300,7 +458,7 @@
300
458
  /* Theme-responsive component defaults */
301
459
  .y2k-card, .y2k-panel { background: var(--y2k-card-bg); }
302
460
  .y2k-toolbar, .y2k-table-wrap { background: var(--y2k-control-bg); }
303
- .y2k-button:not(.y2k-button-primary):not(.y2k-button-secondary):not(.y2k-button-danger):not(.y2k-button-ghost), .y2k-icon-button { background: var(--y2k-control-bg); }
461
+ .y2k-button:not(.y2k-button-primary):not(.y2k-button-secondary):not(.y2k-button-danger):not(.y2k-button-warning):not(.y2k-button-ghost), .y2k-icon-button { background: var(--y2k-control-bg); }
304
462
  .y2k-button, .y2k-icon-button, .y2k-badge, .y2k-nav-link { font-family: var(--y2k-font-control); }
305
463
 
306
464
  /* Spinner geometry follows the y2k preset's glossy plastic controls. */
@@ -401,7 +559,7 @@
401
559
  .y2k-button.y2k-button-outline-heavy,
402
560
  .y2k-button-outline-heavy {
403
561
  background: transparent;
404
- color: var(--y2k-primary);
562
+ color: var(--usk-primary-ink, var(--y2k-primary));
405
563
  border-style: solid;
406
564
  border-width: 2px;
407
565
  border-color: var(--y2k-primary);
@@ -437,7 +595,6 @@
437
595
  .y2k-feature-strip {
438
596
  display: grid;
439
597
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr));
440
- overflow: hidden;
441
598
  background: var(--y2k-card-bg);
442
599
  color: var(--y2k-text);
443
600
  border: 1px solid var(--y2k-border);
@@ -472,7 +629,7 @@
472
629
 
473
630
  .y2k-eyebrow {
474
631
  margin: 0;
475
- color: var(--y2k-primary);
632
+ color: var(--usk-primary-ink, var(--y2k-primary));
476
633
  font-family: var(--y2k-font-heading);
477
634
  font-size: .76rem;
478
635
  font-weight: 900;
@@ -525,9 +682,10 @@
525
682
  /* Filled and framed actions share a glossy gem profile with different reflections. */
526
683
  .y2k-button.y2k-button-cut, .y2k-button-cut {
527
684
  inline-size: min(100%, 14rem);
685
+ min-block-size: 2.75rem;
528
686
  min-inline-size: 6rem;
529
687
  max-inline-size: 100%;
530
- justify-self: center;
688
+ justify-self: start;
531
689
  justify-content: center;
532
690
  clip-path: polygon(8% 0, 92% 0, 100% 50%, 92% 100%, 8% 100%, 0 50%);
533
691
  }
@@ -546,12 +704,12 @@
546
704
  border-radius: var(--y2k-radius-xl);
547
705
  box-shadow: inset 0 2px 0 rgb(var(--y2k-surface-strong-rgb) / .82), 0 .75rem 1.5rem rgb(var(--y2k-secondary-rgb) / .2);
548
706
  }
549
- [data-ui="y2k"][data-theme][data-mode] :where(button:not([class]), input[type="button"]:not([class]), input[type="submit"]:not([class]), input[type="reset"]:not([class])) {
707
+ [data-ui="y2k"][data-mode] :where(button:not([class]), input[type="button"]:not([class]), input[type="submit"]:not([class]), input[type="reset"]:not([class])) {
550
708
  border: 2px solid var(--y2k-primary);
551
709
  border-radius: var(--y2k-radius-pill);
552
710
  box-shadow: inset 0 2px 0 rgb(var(--y2k-surface-strong-rgb) / .82), 0 .35rem .8rem rgb(var(--y2k-secondary-rgb) / .2);
553
711
  }
554
- [data-ui="y2k"][data-theme][data-mode] :where(dialog) {
712
+ [data-ui="y2k"][data-mode] :where(dialog) {
555
713
  background: linear-gradient(155deg, rgb(var(--y2k-surface-strong-rgb) / .82), rgb(var(--y2k-primary-rgb) / .08)), var(--y2k-surface);
556
714
  border: 1px solid var(--y2k-border);
557
715
  border-radius: var(--y2k-radius-xl);
@@ -563,6 +721,89 @@
563
721
  border: .09em solid rgb(255 255 255 / .58); border-block-start-color: currentColor; border-radius: 50%; background: radial-gradient(circle at 30% 24%, rgb(255 255 255 / .9), transparent 20%), conic-gradient(currentColor, transparent 48%, currentColor); box-shadow: 0 0 .45em currentColor, inset -.08em -.08em .16em rgb(0 0 0 / .18); clip-path: circle(50%); animation: y2k-spin .9s linear infinite;
564
722
  }
565
723
 
724
+ /**
725
+ * Final Y2K fidelity layer.
726
+ * Recreates dense portal panels with one-pixel operating-system bevels.
727
+ */
728
+ [data-ui="y2k"][data-mode] {
729
+ --y2k-card-bg: linear-gradient(135deg, rgb(var(--y2k-primary-rgb) / .18), rgb(var(--y2k-surface-strong-rgb) / .96) 48%, rgb(var(--y2k-secondary-rgb) / .12)), var(--y2k-surface);
730
+ --usk-native-card-bg: var(--y2k-card-bg);
731
+ --usk-native-font-control: Tahoma, Verdana, "Segoe UI", sans-serif;
732
+ --usk-native-control-min-block-size: 2.08rem;
733
+ --usk-native-control-padding-block: .34rem;
734
+ --usk-native-control-padding-inline: .68rem;
735
+ --usk-native-border-width: 1px;
736
+ --usk-native-radius-sm: 0;
737
+ --usk-native-radius: 0;
738
+ --usk-native-radius-lg: 0;
739
+ --usk-native-shadow: inset 1px 1px 0 var(--y2k-surface-strong), inset -1px -1px 0 var(--y2k-border);
740
+ --usk-native-shadow-md: inset 2px 2px 0 var(--y2k-surface-strong), inset -2px -2px 0 var(--y2k-border), 2px 2px 0 rgb(var(--y2k-text-rgb) / .18);
741
+ --usk-native-focus-ring: 0 0 0 1px var(--y2k-surface), 0 0 0 2px var(--y2k-focus);
742
+ --usk-native-subcontrol-padding-block: .24rem;
743
+ --usk-native-subcontrol-padding-inline: .44rem;
744
+ --usk-native-choice-size: 1rem;
745
+ --usk-native-choice-background: linear-gradient(135deg, var(--y2k-surface-strong), var(--y2k-control-bg));
746
+ --usk-native-choice-border: 1px solid var(--y2k-text);
747
+ --usk-native-checkbox-radius: 0;
748
+ --usk-native-radio-radius: 50%;
749
+ --usk-native-choice-shadow: inset 1px 1px 0 var(--y2k-border), inset -1px -1px 0 var(--y2k-surface-strong);
750
+ --usk-native-choice-checked-background: linear-gradient(180deg, var(--y2k-primary-hover), var(--y2k-primary));
751
+ --usk-native-choice-mark-color: var(--y2k-on-primary);
752
+ --usk-native-select-indicator-image: linear-gradient(45deg, transparent 45%, var(--y2k-text) 45% 55%, transparent 55%), linear-gradient(135deg, transparent 45%, var(--y2k-text) 45% 55%, transparent 55%);
753
+ --usk-native-select-indicator-size: .48rem .48rem, .48rem .48rem;
754
+ --usk-native-select-indicator-position: calc(100% - .84rem) 50%, calc(100% - .56rem) 50%;
755
+ --usk-native-select-padding-inline-end: 1.85rem;
756
+ --usk-native-range-track-size: .38rem;
757
+ --usk-native-range-track-background: repeating-linear-gradient(90deg, var(--y2k-primary) 0 .4rem, var(--y2k-surface-soft) .4rem .48rem);
758
+ --usk-native-range-track-border: 1px inset var(--y2k-border);
759
+ --usk-native-range-track-radius: 0;
760
+ --usk-native-range-track-shadow: inset 1px 1px 0 rgb(var(--y2k-text-rgb) / .28);
761
+ --usk-native-range-progress-background: repeating-linear-gradient(90deg, var(--y2k-primary) 0 .4rem, var(--y2k-surface) .4rem .48rem);
762
+ --usk-native-range-thumb-size: 1.12rem;
763
+ --usk-native-range-thumb-background: linear-gradient(135deg, var(--y2k-surface-strong), var(--y2k-surface-soft));
764
+ --usk-native-range-thumb-border: 1px outset var(--y2k-border);
765
+ --usk-native-range-thumb-radius: 0;
766
+ --usk-native-range-thumb-shadow: 1px 1px 0 rgb(var(--y2k-text-rgb) / .24);
767
+ --usk-native-progress-size: .66rem;
768
+ --usk-native-progress-track-background: var(--y2k-control-bg);
769
+ --usk-native-progress-track-border: 1px inset var(--y2k-border);
770
+ --usk-native-progress-track-radius: 0;
771
+ --usk-native-progress-track-shadow: inset 1px 1px 0 rgb(var(--y2k-text-rgb) / .28);
772
+ --usk-native-progress-value-background: repeating-linear-gradient(90deg, var(--y2k-primary) 0 .5rem, var(--y2k-surface-strong) .5rem .56rem);
773
+ --usk-native-progress-value-radius: 0;
774
+ --usk-native-progress-value-shadow: inset 1px 1px 0 rgb(var(--y2k-surface-strong-rgb) / .65);
775
+ --usk-native-scrollbar-size: .94rem;
776
+ --usk-native-scrollbar-track: linear-gradient(135deg, var(--y2k-surface-soft), var(--y2k-surface));
777
+ --usk-native-scrollbar-thumb: linear-gradient(135deg, var(--y2k-surface-strong), var(--y2k-primary));
778
+ --usk-native-scrollbar-radius: 0;
779
+ }
780
+
781
+ .y2k-title { margin-block: .75rem; font-family: Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif; font-weight: 900; letter-spacing: max(.024em, .5px); font-style: italic; }
782
+ .y2k-label { font-family: Tahoma, Verdana, sans-serif; font-size: .68rem; font-weight: 700; }
783
+ .y2k-card, .y2k-panel { padding: .66rem; background: linear-gradient(180deg, rgb(var(--y2k-primary-rgb) / .22) 0 1.2rem, transparent 1.2rem), var(--y2k-card-bg); border: 2px outset var(--y2k-border); border-radius: 0; box-shadow: inset 1px 1px 0 var(--y2k-surface-strong), inset -1px -1px 0 rgb(var(--y2k-text-rgb) / .34); }
784
+ .y2k-card::before, .y2k-panel::before { background: linear-gradient(135deg, rgb(var(--y2k-surface-strong-rgb) / .28), transparent 34%); }
785
+ .y2k-well, .y2k-inset { padding: .5rem; background: var(--y2k-control-bg); border: 1px inset var(--y2k-border); border-radius: 0; box-shadow: inset 1px 1px 0 rgb(var(--y2k-text-rgb) / .24); }
786
+ .y2k-button, .y2k-icon-button { min-height: 2.08rem; padding: .34rem .68rem; background: linear-gradient(180deg, var(--y2k-surface-strong), var(--y2k-surface-soft)); border: 1px outset var(--y2k-border); border-radius: 0; box-shadow: inset 1px 1px 0 var(--y2k-surface-strong), inset -1px -1px 0 rgb(var(--y2k-text-rgb) / .32); font-family: Tahoma, Verdana, sans-serif; font-weight: 700; }
787
+ .y2k-button:active, .y2k-button[aria-pressed="true"], .y2k-button.is-active { transform: none; border-style: inset; box-shadow: inset 1px 1px 0 rgb(var(--y2k-text-rgb) / .32); }
788
+ .y2k-input, .y2k-textarea, .y2k-select { min-height: 1.94rem; padding: .3rem .48rem; background: var(--y2k-control-bg); border: 1px inset var(--y2k-border); border-radius: 0; box-shadow: inset 1px 1px 0 rgb(var(--y2k-text-rgb) / .22); font-family: Tahoma, Verdana, sans-serif; }
789
+ .y2k-nav, .y2k-toolbar { gap: 1px; padding: 2px; border: 1px outset var(--y2k-border); border-radius: 0; box-shadow: inset 1px 1px 0 var(--y2k-surface-strong); }
790
+ .y2k-nav-link { min-height: 1.8rem; padding: .26rem .5rem; border: 1px outset var(--y2k-border); border-radius: 0; }
791
+ .y2k-badge { min-height: 1.2rem; padding: .14rem .32rem; border: 1px solid currentColor; border-radius: 0; box-shadow: 1px 1px 0 rgb(var(--y2k-text-rgb) / .24); }
792
+ .y2k-alert { padding: .44rem .52rem; background: var(--y2k-control-bg); border: 1px solid currentColor; border-radius: 0; box-shadow: inset 1px 1px 0 var(--y2k-surface-strong); }
793
+ .y2k-progress { height: .66rem; background: var(--y2k-control-bg); border: 1px inset var(--y2k-border); border-radius: 0; }
794
+ .y2k-progress-bar { background: repeating-linear-gradient(90deg, var(--y2k-primary) 0 .5rem, var(--y2k-surface-strong) .5rem .56rem); border-radius: 0; box-shadow: inset 1px 1px 0 rgb(var(--y2k-surface-strong-rgb) / .65); }
795
+ .y2k-table-wrap { background: var(--y2k-card-bg); border: 1px solid var(--y2k-border); border-radius: 0; box-shadow: inset 1px 1px 0 var(--y2k-surface-strong); }
796
+ .y2k-table { border-collapse: collapse; font-family: Tahoma, Verdana, sans-serif; }
797
+ .y2k-table th { padding: .32rem .42rem; background: linear-gradient(90deg, var(--y2k-primary), var(--y2k-primary-hover)); color: var(--y2k-on-primary); border: 1px solid var(--y2k-border); font-weight: 700; }
798
+ .y2k-table td { padding: .3rem .42rem; border: 1px solid var(--y2k-border); }
799
+ .y2k-tooltip, [data-ui="y2k"] :where(.ui-tooltip, [role="tooltip"], [data-tooltip]) { border: 1px outset var(--y2k-border); border-radius: 0; box-shadow: 2px 2px 0 rgb(var(--y2k-text-rgb) / .28); }
800
+ .y2k-card-service, .y2k-card-feature, .y2k-media-scrim, .y2k-feature-strip, .y2k-callout-bar { background: linear-gradient(180deg, rgb(var(--y2k-primary-rgb) / .18) 0 1rem, transparent 1rem), var(--y2k-card-bg); border: 2px outset var(--y2k-border); border-radius: 0; box-shadow: inset 1px 1px 0 var(--y2k-surface-strong), inset -1px -1px 0 rgb(var(--y2k-text-rgb) / .32); clip-path: none; }
801
+ .y2k-feature-item { border-inline-end: 1px solid var(--y2k-border); border-block-end: 1px solid var(--y2k-border); }
802
+ .y2k-button { border-radius: 1px; }
803
+ .y2k-input { border-radius: 1px; }
804
+ .y2k-card { border-radius: 1px; }
805
+ .y2k-alert { border-radius: 1px; }
806
+
566
807
  @media (prefers-reduced-motion: reduce) {
567
808
  [data-ui="y2k"] *, [data-ui="y2k"] *::before, [data-ui="y2k"] *::after { scroll-behavior: auto !important; transition-duration: 1ms !important; animation-duration: 1ms !important; animation-iteration-count: 1 !important; }
568
809
  }
@@ -579,3 +820,670 @@
579
820
  [data-ui="y2k"] a { color: #000 !important; text-decoration: underline; }
580
821
  }
581
822
  }
823
+
824
+ @layer ui-style-kit.y2k {
825
+ /* Keeps semantic field states above preset-specific material paint. */
826
+ .y2k-input[aria-invalid="true"], .y2k-textarea[aria-invalid="true"], .y2k-select[aria-invalid="true"] { border-color: var(--y2k-danger); box-shadow: 0 0 0 2px rgb(var(--y2k-danger-rgb) / .2); }
827
+ .y2k-input[readonly], .y2k-textarea[readonly] { border-style: dashed; filter: saturate(.72); opacity: .78; }
828
+ /* Restores semantic action paint after identity-specific geometry. */
829
+ .y2k-button-primary { background: linear-gradient(180deg, rgb(var(--y2k-surface-strong-rgb) / .46), transparent 52%), var(--y2k-primary); color: var(--y2k-on-primary); border-color: var(--y2k-primary); }
830
+ .y2k-button-secondary { background: linear-gradient(180deg, rgb(var(--y2k-surface-strong-rgb) / .42), transparent 52%), var(--y2k-secondary); color: var(--y2k-on-secondary); border-color: var(--y2k-secondary); }
831
+ .y2k-button-danger { background: linear-gradient(180deg, rgb(var(--y2k-surface-strong-rgb) / .38), transparent 52%), var(--y2k-danger); color: var(--y2k-on-danger); border-color: var(--y2k-danger); }
832
+ .y2k-button-ghost { background: transparent; color: var(--usk-primary-ink, var(--y2k-primary)); border-color: transparent; }
833
+ }
834
+
835
+ @layer ui-style-kit.y2k {
836
+ /* Shared annotation fidelity: readable display rhythm and appropriately scaled text icons. */
837
+ .y2k-feature-item > .y2k-icon-medallion { font-size: 1.5rem; line-height: 1; }
838
+ .y2k-callout-bar > .y2k-icon-medallion { min-inline-size: 4.5rem; min-block-size: 4.5rem; font-size: 2rem; font-weight: 800; line-height: 1; }
839
+ }
840
+
841
+ @layer ui-style-kit.y2k {
842
+ /**
843
+ * Applies the retained Dial-Up Portal reference material without replacing a
844
+ * selected library color scheme. Geometry, bevels, density, and typography
845
+ * remain stable while semantic paint continues to resolve through USK tokens.
846
+ */
847
+ [data-ui="y2k"][data-mode] {
848
+ --y2k-theme-bg: var(--y2k-bg);
849
+ --y2k-theme-bg-size: auto;
850
+ --y2k-card-bg: var(--y2k-surface);
851
+ --y2k-control-bg: var(--y2k-surface);
852
+ --y2k-focus-ring: 0 0 0 2px #d21212;
853
+ --y2k-titlebar-bg: linear-gradient(90deg, var(--y2k-reference-navy, var(--y2k-primary)), var(--y2k-primary) 56%, var(--y2k-reference-navy, var(--y2k-primary)));
854
+ --y2k-bevel-raised: inset 1px 1px 0 var(--y2k-bevel-highlight, var(--y2k-surface-strong)), inset -1px -1px 0 var(--y2k-bevel-shadow, var(--y2k-text));
855
+ --y2k-bevel-recessed: inset 1px 1px 0 var(--y2k-bevel-shadow, var(--y2k-text)), inset -1px -1px 0 var(--y2k-bevel-highlight, var(--y2k-surface-strong));
856
+ --usk-native-font-body: Tahoma, Verdana, Arial, sans-serif;
857
+ --usk-native-font-heading: Tahoma, Verdana, Arial, sans-serif;
858
+ --usk-native-font-control: Tahoma, Verdana, Arial, sans-serif;
859
+ --usk-native-font-mono: "Courier New", Courier, monospace;
860
+ --usk-native-panel-padding: .375rem;
861
+ --usk-native-field-gap: .25rem;
862
+ --usk-native-control-min-block-size: 1.375rem;
863
+ --usk-native-control-padding-block: .125rem;
864
+ --usk-native-control-padding-inline: .375rem;
865
+ --usk-native-subcontrol-padding-block: .125rem;
866
+ --usk-native-subcontrol-padding-inline: .375rem;
867
+ --usk-native-border-width: 1px;
868
+ --usk-native-radius-sm: 0;
869
+ --usk-native-radius: 0;
870
+ --usk-native-radius-lg: 0;
871
+ --usk-native-shadow: var(--y2k-bevel-raised);
872
+ --usk-native-shadow-md: var(--y2k-bevel-raised), 2px 2px 0 var(--y2k-bevel-shadow, var(--y2k-text));
873
+ --usk-native-focus-ring: var(--y2k-focus-ring);
874
+ --usk-native-choice-size: .875rem;
875
+ --usk-native-choice-background: var(--y2k-surface);
876
+ --usk-native-choice-border: 1px inset var(--y2k-border);
877
+ --usk-native-checkbox-radius: 0;
878
+ --usk-native-radio-radius: 50%;
879
+ --usk-native-choice-shadow: var(--y2k-bevel-recessed);
880
+ --usk-native-choice-checked-background: var(--y2k-primary);
881
+ --usk-native-choice-mark-color: var(--y2k-on-primary);
882
+ --usk-native-select-indicator-image: linear-gradient(45deg, transparent 46%, var(--y2k-text) 46% 56%, transparent 56%), linear-gradient(135deg, transparent 46%, var(--y2k-text) 46% 56%, transparent 56%);
883
+ --usk-native-select-indicator-size: .375rem .375rem, .375rem .375rem;
884
+ --usk-native-select-indicator-position: calc(100% - .75rem) 50%, calc(100% - .5rem) 50%;
885
+ --usk-native-select-padding-inline-end: 1.5rem;
886
+ --usk-native-range-track-size: .375rem;
887
+ --usk-native-range-track-background: repeating-linear-gradient(90deg, var(--y2k-primary) 0 .5rem, var(--y2k-surface-soft) .5rem .5625rem);
888
+ --usk-native-range-track-border: 1px inset var(--y2k-border);
889
+ --usk-native-range-track-radius: 0;
890
+ --usk-native-range-track-shadow: var(--y2k-bevel-recessed);
891
+ --usk-native-range-progress-background: repeating-linear-gradient(90deg, var(--y2k-primary) 0 .5rem, var(--y2k-surface) .5rem .5625rem);
892
+ --usk-native-range-thumb-size: .875rem;
893
+ --usk-native-range-thumb-background: var(--y2k-surface);
894
+ --usk-native-range-thumb-border: 1px outset var(--y2k-border);
895
+ --usk-native-range-thumb-radius: 0;
896
+ --usk-native-range-thumb-shadow: var(--y2k-bevel-raised);
897
+ --usk-native-progress-size: .875rem;
898
+ --usk-native-progress-track-background: var(--y2k-surface-soft);
899
+ --usk-native-progress-track-border: 1px inset var(--y2k-border);
900
+ --usk-native-progress-track-radius: 0;
901
+ --usk-native-progress-track-shadow: var(--y2k-bevel-recessed);
902
+ --usk-native-progress-value-background: repeating-linear-gradient(90deg, var(--y2k-primary) 0 .75rem, var(--y2k-surface-strong) .75rem .8125rem);
903
+ --usk-native-progress-value-radius: 0;
904
+ --usk-native-progress-value-shadow: inset 1px 1px 0 rgb(255 255 255 / .38);
905
+ --usk-native-file-button-background: var(--y2k-surface-soft);
906
+ --usk-native-file-button-border: 1px outset var(--y2k-border);
907
+ --usk-native-file-button-radius: 0;
908
+ --usk-native-file-button-shadow: var(--y2k-bevel-raised);
909
+ --usk-native-color-swatch-radius: 0;
910
+ --usk-native-scrollbar-size: 1rem;
911
+ --usk-native-scrollbar-track: var(--y2k-surface-soft);
912
+ --usk-native-scrollbar-thumb: var(--y2k-surface);
913
+ --usk-native-scrollbar-radius: 0;
914
+ min-height: 100vh;
915
+ background: var(--y2k-bg);
916
+ color: var(--y2k-text);
917
+ font: 400 11px/1.2 Tahoma, Verdana, Arial, sans-serif;
918
+ }
919
+
920
+ [data-ui="y2k"] a {
921
+ color: var(--y2k-link);
922
+ text-decoration: underline;
923
+ text-decoration-thickness: auto;
924
+ text-underline-offset: auto;
925
+ }
926
+
927
+ [data-ui="y2k"][data-mode] :focus-visible {
928
+ outline: 2px dotted #d21212;
929
+ outline-offset: 2px;
930
+ }
931
+
932
+ [data-ui="y2k"][data-mode] :is(h1, h2, h3, h4, h5, h6) {
933
+ margin: 0 0 .25rem;
934
+ color: var(--y2k-text);
935
+ font-family: Tahoma, Verdana, Arial, sans-serif;
936
+ line-height: 1.2;
937
+ }
938
+
939
+ [data-ui="y2k"][data-mode] :is(h1) { font-size: 1.25rem; }
940
+ [data-ui="y2k"][data-mode] :is(h2) { font-size: .875rem; }
941
+ [data-ui="y2k"][data-mode] :is(h3) { font-size: .75rem; }
942
+ [data-ui="y2k"][data-mode] :is(h4, h5, h6) { font-size: .6875rem; }
943
+
944
+ [data-ui="y2k"][data-mode] :is(p) {
945
+ margin: 0 0 .375rem;
946
+ color: var(--y2k-text-muted);
947
+ line-height: 1.3;
948
+ }
949
+
950
+ .y2k-page {
951
+ padding: .25rem;
952
+ background-image: none;
953
+ }
954
+
955
+ .y2k-container {
956
+ width: min(100%, 96rem);
957
+ }
958
+
959
+ .y2k-stack,
960
+ .y2k-cluster,
961
+ .y2k-grid {
962
+ gap: .25rem;
963
+ }
964
+
965
+ .y2k-grid {
966
+ grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr));
967
+ }
968
+
969
+ .y2k-section {
970
+ padding: .25rem;
971
+ }
972
+
973
+ [data-ui="y2k"][data-mode] .y2k-title {
974
+ margin: 0;
975
+ color: var(--y2k-text);
976
+ font: italic 900 clamp(2rem, 5vw, 4rem)/.9 Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif;
977
+ letter-spacing: .025em;
978
+ -webkit-text-stroke: 1px var(--y2k-text);
979
+ text-shadow: 1px 1px 0 var(--y2k-bevel-highlight, var(--y2k-surface-strong)), 2px 2px 0 var(--y2k-bevel-shadow, var(--y2k-text));
980
+ }
981
+
982
+ .y2k-heading,
983
+ .y2k-kicker,
984
+ .y2k-button,
985
+ .y2k-badge,
986
+ .y2k-nav-link {
987
+ font-family: Tahoma, Verdana, Arial, sans-serif;
988
+ }
989
+
990
+ [data-ui="y2k"][data-mode] .y2k-heading {
991
+ margin: 0;
992
+ font-size: .75rem;
993
+ line-height: 1.2;
994
+ letter-spacing: 0;
995
+ }
996
+
997
+ [data-ui="y2k"][data-mode] .y2k-kicker,
998
+ [data-ui="y2k"][data-mode] .y2k-eyebrow {
999
+ margin: 0;
1000
+ font-size: .625rem;
1001
+ font-weight: 700;
1002
+ line-height: 1.2;
1003
+ letter-spacing: .02em;
1004
+ text-transform: uppercase;
1005
+ text-shadow: none;
1006
+ }
1007
+
1008
+ [data-ui="y2k"][data-mode] .y2k-media-scrim > :where(figcaption, [data-media-caption]) * {
1009
+ color: inherit;
1010
+ }
1011
+
1012
+ [data-ui="y2k"][data-mode] .y2k-subtitle,
1013
+ [data-ui="y2k"][data-mode] .y2k-copy {
1014
+ margin: 0;
1015
+ color: var(--y2k-text-muted);
1016
+ line-height: 1.3;
1017
+ }
1018
+
1019
+ .y2k-card,
1020
+ .y2k-panel,
1021
+ .y2k-bubble,
1022
+ .y2k-toolbar,
1023
+ .y2k-table-wrap {
1024
+ position: relative;
1025
+ padding: .375rem;
1026
+ background: var(--y2k-surface);
1027
+ color: var(--y2k-text);
1028
+ border: 2px outset var(--y2k-border);
1029
+ border-radius: 0;
1030
+ box-shadow: var(--y2k-bevel-raised);
1031
+ transition: none;
1032
+ }
1033
+
1034
+ .y2k-card::before,
1035
+ .y2k-panel::before,
1036
+ .y2k-bubble::before {
1037
+ content: none;
1038
+ }
1039
+
1040
+ [data-ui="y2k"][data-mode] .y2k-card > :where(.y2k-kicker, .y2k-heading, h2, h3):first-child,
1041
+ [data-ui="y2k"][data-mode] .y2k-panel > :where(.y2k-kicker, .y2k-heading, h2, h3):first-child {
1042
+ display: block;
1043
+ min-height: 1.25rem;
1044
+ margin: -.375rem -.375rem .375rem;
1045
+ padding: .1875rem .375rem;
1046
+ overflow: hidden;
1047
+ background: var(--y2k-titlebar-bg);
1048
+ color: var(--y2k-on-primary);
1049
+ font: 700 .6875rem/1.2 Tahoma, Verdana, Arial, sans-serif;
1050
+ letter-spacing: .02em;
1051
+ text-overflow: ellipsis;
1052
+ text-shadow: 1px 1px 0 rgb(0 0 0 / .52);
1053
+ text-transform: uppercase;
1054
+ white-space: normal;
1055
+ overflow-wrap: break-word;
1056
+ }
1057
+
1058
+ .y2k-hover-lift:hover {
1059
+ transform: none;
1060
+ box-shadow: var(--y2k-bevel-raised);
1061
+ }
1062
+
1063
+ .y2k-well,
1064
+ .y2k-inset {
1065
+ padding: .375rem;
1066
+ background: var(--y2k-surface-soft);
1067
+ border: 1px inset var(--y2k-border);
1068
+ border-radius: 0;
1069
+ box-shadow: var(--y2k-bevel-recessed);
1070
+ }
1071
+
1072
+ .y2k-button,
1073
+ .y2k-icon-button {
1074
+ min-height: 1.375rem;
1075
+ padding: .125rem .75rem;
1076
+ background: var(--y2k-surface-soft);
1077
+ color: var(--y2k-text);
1078
+ border: 1px outset var(--y2k-border);
1079
+ border-radius: 0;
1080
+ box-shadow: var(--y2k-bevel-raised);
1081
+ font: 700 .625rem/1 Tahoma, Verdana, Arial, sans-serif;
1082
+ letter-spacing: 0;
1083
+ text-transform: uppercase;
1084
+ transition: none;
1085
+ }
1086
+
1087
+ .y2k-icon-button {
1088
+ width: 1.375rem;
1089
+ padding: 0;
1090
+ }
1091
+
1092
+ .y2k-button:hover,
1093
+ .y2k-icon-button:hover {
1094
+ background: var(--y2k-primary-hover);
1095
+ color: var(--y2k-on-primary);
1096
+ transform: none;
1097
+ box-shadow: var(--y2k-bevel-raised);
1098
+ }
1099
+
1100
+ .y2k-button:active,
1101
+ .y2k-icon-button:active,
1102
+ .y2k-button.is-active,
1103
+ .y2k-button[aria-pressed="true"] {
1104
+ translate: 1px 1px;
1105
+ background: var(--y2k-surface-soft);
1106
+ color: var(--y2k-text);
1107
+ border-style: inset;
1108
+ box-shadow: var(--y2k-bevel-recessed);
1109
+ }
1110
+
1111
+ .y2k-button-primary {
1112
+ background: linear-gradient(180deg, rgb(255 255 255 / .2), transparent 48%), var(--y2k-primary);
1113
+ color: var(--y2k-on-primary);
1114
+ border-color: var(--y2k-border);
1115
+ }
1116
+
1117
+ .y2k-button-secondary {
1118
+ background: var(--y2k-surface-soft);
1119
+ color: var(--y2k-text);
1120
+ border-color: var(--y2k-border);
1121
+ }
1122
+
1123
+ .y2k-button-danger {
1124
+ background: var(--y2k-surface-soft);
1125
+ color: var(--y2k-danger);
1126
+ border-color: var(--y2k-border);
1127
+ }
1128
+
1129
+ /**
1130
+ * Lets explicit runtime foreground edits win without changing the default
1131
+ * Y2K danger-outline treatment used by the reference specimen.
1132
+ */
1133
+ [data-ui="y2k"][data-mode][style*="--y2k-on-danger"] .y2k-button-danger {
1134
+ color: var(--y2k-on-danger);
1135
+ }
1136
+
1137
+ .y2k-button-ghost {
1138
+ background: transparent;
1139
+ color: var(--y2k-link);
1140
+ border-color: transparent;
1141
+ box-shadow: none;
1142
+ text-decoration: underline;
1143
+ }
1144
+
1145
+ .y2k-button-cut,
1146
+ .y2k-button.y2k-button-cut,
1147
+ .y2k-button-outline-heavy,
1148
+ .y2k-button.y2k-button-outline-heavy {
1149
+ min-inline-size: 0;
1150
+ min-block-size: 1.375rem;
1151
+ background: var(--y2k-surface-soft);
1152
+ border: 1px outset var(--y2k-border);
1153
+ border-radius: 0;
1154
+ box-shadow: var(--y2k-bevel-raised);
1155
+ clip-path: none;
1156
+ }
1157
+
1158
+ .y2k-field {
1159
+ gap: .125rem;
1160
+ }
1161
+
1162
+ .y2k-label {
1163
+ font: 700 .5625rem/1.2 Tahoma, Verdana, Arial, sans-serif;
1164
+ letter-spacing: 0;
1165
+ }
1166
+
1167
+ .y2k-input,
1168
+ .y2k-textarea,
1169
+ .y2k-select {
1170
+ min-height: 1.375rem;
1171
+ padding: .125rem .375rem;
1172
+ background: var(--y2k-surface);
1173
+ color: var(--y2k-text);
1174
+ border: 1px inset var(--y2k-border);
1175
+ border-radius: 0;
1176
+ box-shadow: var(--y2k-bevel-recessed);
1177
+ font: 400 .625rem/1.2 Tahoma, Verdana, Arial, sans-serif;
1178
+ }
1179
+
1180
+ .y2k-textarea {
1181
+ min-height: 2.75rem;
1182
+ }
1183
+
1184
+ .y2k-input:focus,
1185
+ .y2k-textarea:focus,
1186
+ .y2k-select:focus {
1187
+ border-color: var(--y2k-border);
1188
+ outline: 2px dotted #d21212;
1189
+ outline-offset: 2px;
1190
+ box-shadow: var(--y2k-bevel-recessed);
1191
+ }
1192
+
1193
+ .y2k-help-text {
1194
+ color: var(--y2k-text-muted);
1195
+ font-size: .5625rem;
1196
+ }
1197
+
1198
+ .y2k-tooltip-arrow {
1199
+ inline-size: .375rem;
1200
+ block-size: .375rem;
1201
+ flex: 0 0 auto;
1202
+ background: #ffffc7;
1203
+ border: 1px solid #777;
1204
+ border-radius: 0;
1205
+ box-shadow: none;
1206
+ transform: rotate(45deg);
1207
+ }
1208
+
1209
+ .y2k-nav,
1210
+ .y2k-toolbar {
1211
+ gap: 1px;
1212
+ padding: 2px;
1213
+ background: var(--y2k-surface-soft);
1214
+ border: 1px outset var(--y2k-border);
1215
+ border-radius: 0;
1216
+ box-shadow: var(--y2k-bevel-raised);
1217
+ }
1218
+
1219
+ .y2k-nav-link {
1220
+ min-height: 1.5625rem;
1221
+ padding: .25rem .75rem;
1222
+ background: var(--y2k-surface);
1223
+ color: var(--y2k-text);
1224
+ border: 1px outset var(--y2k-border);
1225
+ border-radius: 0;
1226
+ font-size: .625rem;
1227
+ font-weight: 700;
1228
+ text-decoration: none;
1229
+ text-transform: uppercase;
1230
+ }
1231
+
1232
+ .y2k-nav-link:hover,
1233
+ .y2k-nav-link[aria-current="page"] {
1234
+ background: var(--y2k-primary);
1235
+ color: var(--y2k-on-primary);
1236
+ }
1237
+
1238
+ .y2k-badge {
1239
+ min-height: 1.125rem;
1240
+ padding: .125rem .3125rem;
1241
+ background: var(--y2k-surface-soft);
1242
+ color: var(--y2k-text);
1243
+ border: 1px solid currentColor;
1244
+ border-radius: 0;
1245
+ box-shadow: 1px 1px 0 var(--y2k-bevel-shadow, var(--y2k-text));
1246
+ font-size: .5625rem;
1247
+ font-weight: 700;
1248
+ line-height: 1;
1249
+ text-transform: uppercase;
1250
+ }
1251
+
1252
+ .y2k-badge-primary { background: var(--y2k-primary); color: var(--y2k-on-primary); }
1253
+ .y2k-badge-secondary { background: var(--y2k-secondary); color: var(--y2k-on-secondary); }
1254
+ .y2k-badge-success { background: var(--y2k-success); color: var(--y2k-on-success); }
1255
+ .y2k-badge-warning { background: var(--y2k-warning); color: var(--y2k-on-warning); }
1256
+ .y2k-badge-danger { background: var(--y2k-danger); color: var(--y2k-on-danger); }
1257
+
1258
+ .y2k-alert {
1259
+ min-height: 1.5rem;
1260
+ padding: .25rem .375rem;
1261
+ background: #cfe8ff;
1262
+ color: #111;
1263
+ border: 1px solid #6083a5;
1264
+ border-radius: 0;
1265
+ box-shadow: inset 1px 1px 0 #fff;
1266
+ font-size: .625rem;
1267
+ }
1268
+
1269
+ .y2k-alert-warning { background: #fff2b2; color: #111; border-color: #9d8426; }
1270
+ .y2k-alert-danger { background: #ffd0d0; color: #111; border-color: #a05a5a; }
1271
+ .y2k-alert-success { background: #cef2ce; color: #111; border-color: #5f9665; }
1272
+
1273
+ .y2k-progress {
1274
+ height: .875rem;
1275
+ padding: 1px;
1276
+ background: var(--y2k-surface-soft);
1277
+ border: 1px inset var(--y2k-border);
1278
+ border-radius: 0;
1279
+ box-shadow: var(--y2k-bevel-recessed);
1280
+ }
1281
+
1282
+ .y2k-progress-bar {
1283
+ background: repeating-linear-gradient(90deg, var(--y2k-primary) 0 .75rem, var(--y2k-surface-strong) .75rem .8125rem);
1284
+ border-radius: 0;
1285
+ box-shadow: inset 1px 1px 0 rgb(255 255 255 / .4);
1286
+ }
1287
+
1288
+ .y2k-table-wrap {
1289
+ padding: 0;
1290
+ overflow: auto;
1291
+ background: var(--y2k-surface);
1292
+ border: 1px solid var(--y2k-border);
1293
+ border-radius: 0;
1294
+ box-shadow: none;
1295
+ }
1296
+
1297
+ .y2k-table {
1298
+ border-collapse: collapse;
1299
+ font: 400 .5625rem/1.2 Tahoma, Verdana, Arial, sans-serif;
1300
+ }
1301
+
1302
+ .y2k-table th {
1303
+ padding: .1875rem .3125rem;
1304
+ background: var(--y2k-titlebar-bg);
1305
+ color: var(--y2k-on-primary);
1306
+ border: 1px solid var(--y2k-border);
1307
+ font-weight: 700;
1308
+ text-align: start;
1309
+ }
1310
+
1311
+ .y2k-table td {
1312
+ padding: .1875rem .3125rem;
1313
+ border: 1px solid var(--y2k-border);
1314
+ }
1315
+
1316
+ .y2k-tooltip,
1317
+ [data-ui="y2k"] :where(.ui-tooltip, [role="tooltip"], [data-tooltip]) {
1318
+ padding: .25rem .375rem;
1319
+ background: #ffffc7;
1320
+ color: #111;
1321
+ border: 1px outset #777;
1322
+ border-radius: 0;
1323
+ box-shadow: 2px 2px 0 #3d3d3d;
1324
+ font: 400 .625rem/1.2 Tahoma, Verdana, Arial, sans-serif;
1325
+ }
1326
+
1327
+ .y2k-card-service,
1328
+ .y2k-card-feature,
1329
+ .y2k-media-scrim,
1330
+ .y2k-feature-strip,
1331
+ .y2k-callout-bar {
1332
+ background: var(--y2k-surface);
1333
+ border: 2px outset var(--y2k-border);
1334
+ border-radius: 0;
1335
+ box-shadow: var(--y2k-bevel-raised);
1336
+ clip-path: none;
1337
+ }
1338
+
1339
+ .y2k-card-service,
1340
+ .y2k-card-feature,
1341
+ .y2k-callout-bar {
1342
+ padding: .375rem;
1343
+ gap: .375rem;
1344
+ }
1345
+
1346
+ .y2k-feature-strip {
1347
+ grid-template-columns: repeat(auto-fit, minmax(min(100%, 10rem), 1fr));
1348
+ }
1349
+
1350
+ .y2k-feature-item {
1351
+ gap: .375rem;
1352
+ padding: .375rem;
1353
+ border-inline-end: 1px solid var(--y2k-border);
1354
+ border-block-end: 1px solid var(--y2k-border);
1355
+ }
1356
+
1357
+ .y2k-icon-medallion,
1358
+ .y2k-badge-seal {
1359
+ display: inline-grid;
1360
+ place-items: center;
1361
+ inline-size: 2.75rem;
1362
+ min-inline-size: 2.75rem;
1363
+ block-size: 2.75rem;
1364
+ padding: .25rem;
1365
+ background: var(--y2k-primary);
1366
+ color: var(--y2k-on-primary);
1367
+ border: 2px outset var(--y2k-border);
1368
+ border-radius: 0;
1369
+ box-shadow: var(--y2k-bevel-raised);
1370
+ font: 700 .75rem/1 Tahoma, Verdana, Arial, sans-serif;
1371
+ text-align: center;
1372
+ }
1373
+
1374
+ .y2k-feature-item > .y2k-icon-medallion,
1375
+ .y2k-callout-bar > .y2k-icon-medallion {
1376
+ min-inline-size: 2.75rem;
1377
+ min-block-size: 2.75rem;
1378
+ font-size: 1.25rem;
1379
+ }
1380
+
1381
+ .y2k-media-scrim {
1382
+ min-block-size: 8rem;
1383
+ }
1384
+
1385
+ [data-ui="y2k"][data-mode] :where(button:not([class]), input[type="button"]:not([class]), input[type="submit"]:not([class]), input[type="reset"]:not([class])) {
1386
+ min-height: 1.375rem;
1387
+ padding: .125rem .75rem;
1388
+ background: var(--y2k-surface-soft);
1389
+ color: var(--y2k-text);
1390
+ border: 1px outset var(--y2k-border);
1391
+ border-radius: 0;
1392
+ box-shadow: var(--y2k-bevel-raised);
1393
+ font: 700 .625rem/1 Tahoma, Verdana, Arial, sans-serif;
1394
+ text-transform: uppercase;
1395
+ }
1396
+
1397
+ [data-ui="y2k"][data-mode] :where(dialog) {
1398
+ padding: .5rem;
1399
+ background: var(--y2k-surface);
1400
+ color: var(--y2k-text);
1401
+ border: 3px outset var(--y2k-border);
1402
+ border-radius: 0;
1403
+ box-shadow: 5px 5px 0 var(--y2k-bevel-shadow, #000);
1404
+ }
1405
+
1406
+ [data-ui="y2k"][data-mode] :where(dialog)::backdrop {
1407
+ background: rgb(0 0 0 / .48);
1408
+ }
1409
+
1410
+ /** Keeps unclassed native fields on the compact Y2K bevel metrics. */
1411
+ [data-ui="y2k"][data-mode] :where(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="button"]):not([type="submit"]):not([type="reset"]), select) {
1412
+ box-sizing: border-box;
1413
+ min-block-size: 1.375rem;
1414
+ padding: .125rem .375rem;
1415
+ color: var(--y2k-text);
1416
+ background: var(--y2k-surface);
1417
+ border: 1px inset var(--y2k-border);
1418
+ border-radius: 0;
1419
+ box-shadow: var(--y2k-bevel-recessed);
1420
+ font: 400 .625rem/1.2 Tahoma, Verdana, Arial, sans-serif;
1421
+ }
1422
+
1423
+ /** Textareas share Y2K field material while retaining usable multiline height. */
1424
+ [data-ui="y2k"][data-mode] :where(textarea) {
1425
+ box-sizing: border-box;
1426
+ min-block-size: 2.75rem;
1427
+ padding: .125rem .375rem;
1428
+ color: var(--y2k-text);
1429
+ background: var(--y2k-surface);
1430
+ border: 1px inset var(--y2k-border);
1431
+ border-radius: 0;
1432
+ box-shadow: var(--y2k-bevel-recessed);
1433
+ font: 400 .625rem/1.2 Tahoma, Verdana, Arial, sans-serif;
1434
+ }
1435
+
1436
+ /** Keeps native progress tracks within the same 14px portal-era slot. */
1437
+ [data-ui="y2k"][data-mode] :where(progress, meter) {
1438
+ box-sizing: border-box;
1439
+ block-size: .875rem;
1440
+ min-block-size: .875rem;
1441
+ }
1442
+
1443
+ @media (pointer: coarse) {
1444
+ .y2k-button,
1445
+ .y2k-icon-button,
1446
+ .y2k-input,
1447
+ .y2k-select,
1448
+ .y2k-nav-link,
1449
+ [data-ui="y2k"][data-mode] :where(button, input, select) {
1450
+ min-block-size: 2.75rem;
1451
+ }
1452
+ }
1453
+ /** Warning actions inherit preset geometry and use the paired semantic warning colors. */
1454
+ [data-ui="y2k"][data-mode] .y2k-button.y2k-button-warning {
1455
+ background: var(--y2k-warning);
1456
+ color: var(--y2k-on-warning);
1457
+ border-color: var(--y2k-warning);
1458
+ text-shadow: none;
1459
+ }
1460
+
1461
+ }
1462
+
1463
+ /**
1464
+ * Preserves shared annotation fixture spacing and icon weight after reference
1465
+ * overrides append their compact source rules.
1466
+ */
1467
+ [data-ui="y2k"][data-mode] .y2k-title {
1468
+ margin-block: max(.75rem, 12px);
1469
+ letter-spacing: max(.025em, .5px);
1470
+ }
1471
+
1472
+ [data-ui="y2k"][data-mode] .y2k-feature-item > .y2k-icon-medallion {
1473
+ font-size: 1.5rem;
1474
+ line-height: 1;
1475
+ }
1476
+
1477
+ [data-ui="y2k"][data-mode] .y2k-callout-bar > .y2k-icon-medallion {
1478
+ min-inline-size: 4.5rem;
1479
+ min-block-size: 4.5rem;
1480
+ font-size: 2rem;
1481
+ font-weight: 800;
1482
+ line-height: 1;
1483
+ }
1484
+
1485
+ /** Keeps native Y2K fields on the compact portal-era dotted focus ring. */
1486
+ [data-ui="y2k"][data-mode] :is(input, select, textarea):focus-visible {
1487
+ outline: 2px dotted #d21212;
1488
+ outline-offset: 2px;
1489
+ }