ui-style-kit-css 2.3.0 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/CHANGELOG.md +40 -2
  2. package/CONTRIBUTING.md +8 -1
  3. package/README.md +91 -42
  4. package/STYLE-MAP.md +9 -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 +47483 -15117
  26. package/dist/ui-style-kit.min.css +2 -2
  27. package/dist/ui-style-kit.visual.css +47344 -15106
  28. package/dist/ui-style-kit.visual.min.css +2 -2
  29. package/dist/ui-style-kit.with-bridge.css +47510 -15134
  30. package/dist/ui-style-kit.with-bridge.min.css +2 -2
  31. package/dist/visual/art-deco.css +2821 -279
  32. package/dist/visual/bauhaus.css +2 -4692
  33. package/dist/visual/bento.css +2 -4708
  34. package/dist/visual/brutalism.css +812 -224
  35. package/dist/visual/clay.css +2 -4786
  36. package/dist/visual/cyberpunk.css +2238 -267
  37. package/dist/visual/data-terminal.css +1671 -293
  38. package/dist/visual/editorial-luxe.css +1889 -243
  39. package/dist/visual/industrial-utility.css +2717 -255
  40. package/dist/visual/maximalist.css +1768 -447
  41. package/dist/visual/minimal-saas.css +1076 -382
  42. package/dist/visual/neo-noir.css +2 -4787
  43. package/dist/visual/neumorphism.css +1266 -388
  44. package/dist/visual/organic-modern.css +2 -4764
  45. package/dist/visual/paper-editorial.css +2551 -276
  46. package/dist/visual/retro-glass.css +2235 -319
  47. package/dist/visual/retrofuturism.css +1460 -382
  48. package/dist/visual/tactile.css +2251 -443
  49. package/dist/visual/technical-blueprint.css +2207 -285
  50. package/dist/visual/y2k.css +1481 -294
  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/DEMO-SHOWCASE.md +65 -0
  56. package/docs/ECOSYSTEM.md +4 -4
  57. package/docs/EDITORIAL-LUX.md +75 -0
  58. package/docs/INDUSTRIAL-UTILITY.md +131 -0
  59. package/docs/NATIVE-ELEMENTS.md +23 -17
  60. package/docs/NEO-NOIR.md +94 -0
  61. package/docs/ORGANIC-MODERN.md +91 -0
  62. package/docs/PAPER-EDITORIAL.md +63 -0
  63. package/docs/PUBLISHING.md +31 -10
  64. package/docs/RELEASE-2.4.0.md +88 -0
  65. package/docs/RETRO-GLASS.md +105 -0
  66. package/docs/STYLE-GUIDE.md +40 -25
  67. package/docs/TACTILE.md +38 -0
  68. package/docs/TECHNICAL-BLUEPRINT.md +60 -0
  69. package/docs/TOKENS.md +80 -3
  70. package/docs/superpowers/plans/2026-09-04-library-wide-theme-fallback-and-fidelity.md +331 -0
  71. package/docs/superpowers/specs/2026-09-04-library-wide-theme-fallback-and-fidelity-design.md +113 -0
  72. package/manifest.json +618 -27
  73. package/package.json +18 -10
  74. package/styles/art-deco.css +1397 -12
  75. package/styles/assets/bauhaus-barlow-OFL.txt +93 -0
  76. package/styles/assets/bauhaus-barlow-semibold.ttf +0 -0
  77. package/styles/assets/bauhaus-barlow.ttf +0 -0
  78. package/styles/assets/bauhaus-condensed-OFL.txt +93 -0
  79. package/styles/assets/bauhaus-condensed-bold.ttf +0 -0
  80. package/styles/assets/bauhaus-condensed-extrabold.ttf +0 -0
  81. package/styles/assets/bento-manrope-OFL.txt +93 -0
  82. package/styles/assets/bento-manrope.ttf +0 -0
  83. package/styles/assets/clay-grain.png +0 -0
  84. package/styles/assets/clay-rounded-OFL.txt +93 -0
  85. package/styles/assets/clay-rounded.ttf +0 -0
  86. package/styles/assets/neo-noir-corner-dark.png +0 -0
  87. package/styles/assets/neo-noir-corner-light.png +0 -0
  88. package/styles/assets/neo-noir-texture-dark.png +0 -0
  89. package/styles/assets/neo-noir-texture-light.png +0 -0
  90. package/styles/assets/organic-display-OFL.txt +93 -0
  91. package/styles/assets/organic-display.ttf +0 -0
  92. package/styles/assets/organic-icons-LICENSE.txt +21 -0
  93. package/styles/assets/organic-sans-OFL.txt +93 -0
  94. package/styles/assets/organic-sans.ttf +0 -0
  95. package/styles/bauhaus.css +878 -107
  96. package/styles/bento.css +1176 -108
  97. package/styles/brutalism.css +262 -11
  98. package/styles/clay.css +1303 -68
  99. package/styles/compat-layout.css +1 -2
  100. package/styles/components.css +105 -34
  101. package/styles/content-overflow.css +11 -5
  102. package/styles/cyberpunk.css +1852 -47
  103. package/styles/data-terminal.css +1116 -12
  104. package/styles/editorial-luxe.css +576 -12
  105. package/styles/industrial-utility.css +1771 -12
  106. package/styles/interactive-surface-bridge.css +30 -20
  107. package/styles/interactive-surface-theme.css +21 -11
  108. package/styles/maximalist.css +1214 -132
  109. package/styles/minimal-saas.css +459 -88
  110. package/styles/native-elements.css +347 -171
  111. package/styles/neo-noir.css +656 -14
  112. package/styles/neumorphism.css +1018 -146
  113. package/styles/organic-modern.css +688 -18
  114. package/styles/paper-editorial.css +1048 -12
  115. package/styles/retro-glass.css +635 -46
  116. package/styles/retrofuturism.css +944 -56
  117. package/styles/tactile.css +1810 -108
  118. package/styles/technical-blueprint.css +668 -17
  119. package/styles/theme-colors.css +2 -2
  120. package/styles/y2k.css +950 -42
@@ -18,12 +18,14 @@
18
18
 
19
19
  @layer ui-style-kit.cyberpunk {
20
20
  :root {
21
- --cyber-radius-xs: 0.25rem;
22
- --cyber-radius-sm: 0.5rem;
21
+ --cyber-radius-xs: 0.125rem;
22
+ --cyber-radius-sm: 0.4375rem;
23
23
  --cyber-radius-md: 0.75rem;
24
- --cyber-radius-lg: 1rem;
25
- --cyber-radius-xl: 1.5rem;
24
+ --cyber-radius-lg: 0.75rem;
25
+ --cyber-radius-xl: 0.75rem;
26
26
  --cyber-radius-pill: 999px;
27
+ --cyber-cut-sm: 0.4375rem;
28
+ --cyber-cut-md: 0.75rem;
27
29
 
28
30
  --cyber-space-1: 0.25rem;
29
31
  --cyber-space-2: 0.5rem;
@@ -33,42 +35,111 @@
33
35
  --cyber-space-6: 1.5rem;
34
36
  --cyber-space-8: 2rem;
35
37
 
36
- --cyber-transition-fast: 140ms ease;
37
- --cyber-transition-base: 220ms ease;
38
- --cyber-transition-slow: 360ms ease;
38
+ --cyber-transition-fast: 150ms cubic-bezier(.2, .8, .2, 1);
39
+ --cyber-transition-base: 150ms cubic-bezier(.2, .8, .2, 1);
40
+ --cyber-transition-slow: 240ms cubic-bezier(.2, .8, .2, 1);
39
41
 
40
- --cyber-font-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
41
- --cyber-font-display: Orbitron, Rajdhani, Eurostile, "Bank Gothic", var(--cyber-font-sans);
42
+ --cyber-font-sans: "DejaVu Sans", Arial, sans-serif;
43
+ --cyber-font-display: "Arial Narrow", "DejaVu Sans", Arial, sans-serif;
42
44
  --cyber-font-body: var(--cyber-font-sans);
43
45
  --cyber-font-heading: var(--cyber-font-display);
44
- --cyber-font-control: var(--cyber-font-display);
45
- --cyber-font-mono: "JetBrains Mono", "SFMono-Regular", Consolas, "Liberation Mono", monospace;
46
+ --cyber-font-mono: "DejaVu Sans Mono", Consolas, monospace;
47
+ --cyber-font-control: var(--cyber-font-mono);
46
48
  }
47
49
 
48
50
  [data-ui="cyberpunk"][data-mode="light"] {
49
51
  color-scheme: light;
50
- --cyber-panel-alpha: 0.92;
51
- --cyber-panel-strong-alpha: 0.98;
52
- --cyber-panel-soft-alpha: 0.74;
53
- --cyber-border-alpha: 0.7;
54
- --cyber-glow-alpha: 0.24;
55
- --cyber-shadow-alpha: 0.18;
56
- --cyber-grid-alpha: 0.075;
52
+ --cyber-fallback-bg-rgb: 230 241 243;
53
+ --cyber-fallback-surface-rgb: 248 252 252;
54
+ --cyber-fallback-surface-strong-rgb: 255 255 255;
55
+ --cyber-fallback-surface-soft-rgb: 220 235 238;
56
+ --cyber-fallback-text-rgb: 16 40 50;
57
+ --cyber-fallback-text-muted-rgb: 54 87 98;
58
+ --cyber-fallback-border-rgb: 138 177 186;
59
+ --cyber-fallback-primary-rgb: 0 127 157;
60
+ --cyber-fallback-primary-hover-rgb: 0 111 139;
61
+ --cyber-fallback-primary-text-rgb: 255 255 255;
62
+ --cyber-fallback-secondary-rgb: 54 87 98;
63
+ --cyber-fallback-secondary-hover-rgb: 39 70 84;
64
+ --cyber-fallback-secondary-text-rgb: 255 255 255;
65
+ --cyber-fallback-accent-rgb: 195 19 90;
66
+ --cyber-fallback-accent-text-rgb: 255 255 255;
67
+ --cyber-fallback-success-rgb: 8 124 73;
68
+ --cyber-fallback-success-text-rgb: 255 255 255;
69
+ --cyber-fallback-warning-rgb: 170 112 0;
70
+ --cyber-fallback-warning-text-rgb: 0 0 0;
71
+ --cyber-fallback-danger-rgb: 195 19 90;
72
+ --cyber-fallback-danger-text-rgb: 255 255 255;
73
+ --cyber-fallback-link-rgb: 0 111 139;
74
+ --cyber-fallback-focus-rgb: 0 111 139;
75
+ --cyber-panel-alpha: 0.98;
76
+ --cyber-panel-strong-alpha: 1;
77
+ --cyber-panel-soft-alpha: 0.94;
78
+ --cyber-border-alpha: 0.82;
79
+ --cyber-glow-alpha: 0.16;
80
+ --cyber-shadow-alpha: 0.14;
81
+ --cyber-grid-alpha: 0.13;
57
82
  }
58
83
 
59
84
  [data-ui="cyberpunk"][data-mode="dark"] {
60
85
  color-scheme: dark;
61
- --cyber-panel-alpha: 0.82;
62
- --cyber-panel-strong-alpha: 0.94;
63
- --cyber-panel-soft-alpha: 0.58;
64
- --cyber-border-alpha: 0.64;
65
- --cyber-glow-alpha: 0.42;
66
- --cyber-shadow-alpha: 0.42;
67
- --cyber-grid-alpha: 0.12;
86
+ --cyber-fallback-bg-rgb: 5 10 16;
87
+ --cyber-fallback-surface-rgb: 7 19 28;
88
+ --cyber-fallback-surface-strong-rgb: 10 28 39;
89
+ --cyber-fallback-surface-soft-rgb: 13 36 48;
90
+ --cyber-fallback-text-rgb: 232 250 255;
91
+ --cyber-fallback-text-muted-rgb: 168 193 202;
92
+ --cyber-fallback-border-rgb: 36 70 84;
93
+ --cyber-fallback-primary-rgb: 0 221 255;
94
+ --cyber-fallback-primary-hover-rgb: 88 234 255;
95
+ --cyber-fallback-primary-text-rgb: 0 27 35;
96
+ --cyber-fallback-secondary-rgb: 70 116 130;
97
+ --cyber-fallback-secondary-hover-rgb: 36 70 84;
98
+ --cyber-fallback-secondary-text-rgb: 232 250 255;
99
+ --cyber-fallback-accent-rgb: 255 31 120;
100
+ --cyber-fallback-accent-text-rgb: 0 27 35;
101
+ --cyber-fallback-success-rgb: 53 228 125;
102
+ --cyber-fallback-success-text-rgb: 0 27 35;
103
+ --cyber-fallback-warning-rgb: 255 189 22;
104
+ --cyber-fallback-warning-text-rgb: 0 27 35;
105
+ --cyber-fallback-danger-rgb: 255 31 120;
106
+ --cyber-fallback-danger-text-rgb: 0 27 35;
107
+ --cyber-fallback-link-rgb: 0 221 255;
108
+ --cyber-fallback-focus-rgb: 88 234 255;
109
+ --cyber-panel-alpha: 0.94;
110
+ --cyber-panel-strong-alpha: 0.98;
111
+ --cyber-panel-soft-alpha: 0.86;
112
+ --cyber-border-alpha: 0.72;
113
+ --cyber-glow-alpha: 0.24;
114
+ --cyber-shadow-alpha: 0.38;
115
+ --cyber-grid-alpha: 0.14;
68
116
  }
69
117
 
70
118
  [data-ui="cyberpunk"][data-mode="contrast"] {
71
119
  color-scheme: dark;
120
+ --cyber-fallback-bg-rgb: 0 0 0;
121
+ --cyber-fallback-surface-rgb: 5 10 16;
122
+ --cyber-fallback-surface-strong-rgb: 0 0 0;
123
+ --cyber-fallback-surface-soft-rgb: 0 0 0;
124
+ --cyber-fallback-text-rgb: 255 255 255;
125
+ --cyber-fallback-text-muted-rgb: 248 248 248;
126
+ --cyber-fallback-border-rgb: 255 255 255;
127
+ --cyber-fallback-primary-rgb: 0 229 255;
128
+ --cyber-fallback-primary-hover-rgb: 255 255 255;
129
+ --cyber-fallback-primary-text-rgb: 0 0 0;
130
+ --cyber-fallback-secondary-rgb: 255 255 255;
131
+ --cyber-fallback-secondary-hover-rgb: 0 229 255;
132
+ --cyber-fallback-secondary-text-rgb: 0 0 0;
133
+ --cyber-fallback-accent-rgb: 255 31 120;
134
+ --cyber-fallback-accent-text-rgb: 0 0 0;
135
+ --cyber-fallback-success-rgb: 0 255 144;
136
+ --cyber-fallback-success-text-rgb: 0 0 0;
137
+ --cyber-fallback-warning-rgb: 255 212 0;
138
+ --cyber-fallback-warning-text-rgb: 0 0 0;
139
+ --cyber-fallback-danger-rgb: 255 77 135;
140
+ --cyber-fallback-danger-text-rgb: 0 0 0;
141
+ --cyber-fallback-link-rgb: 0 229 255;
142
+ --cyber-fallback-focus-rgb: 255 255 255;
72
143
  --cyber-panel-alpha: 1;
73
144
  --cyber-panel-strong-alpha: 1;
74
145
  --cyber-panel-soft-alpha: 0.92;
@@ -78,8 +149,8 @@
78
149
  --cyber-grid-alpha: 0.18;
79
150
  }
80
151
 
152
+ /** Preserves direct aliases for static extraction when a scheme is selected. */
81
153
  [data-ui="cyberpunk"][data-theme][data-mode] {
82
- /* Shared scheme aliases preserve the existing prefixed token API. */
83
154
  --cyber-bg-rgb: var(--usk-bg-rgb);
84
155
  --cyber-surface-rgb: var(--usk-surface-rgb);
85
156
  --cyber-surface-strong-rgb: var(--usk-surface-strong-rgb);
@@ -94,15 +165,43 @@
94
165
  --cyber-secondary-hover-rgb: var(--usk-secondary-hover-rgb);
95
166
  --cyber-secondary-text-rgb: var(--usk-secondary-text-rgb);
96
167
  --cyber-accent-rgb: var(--usk-accent-rgb);
97
- --cyber-success-rgb: var(--usk-success-rgb);
98
- --cyber-warning-rgb: var(--usk-warning-rgb);
99
- --cyber-danger-rgb: var(--usk-danger-rgb);
100
- --cyber-link-rgb: var(--usk-link-rgb);
101
168
  --cyber-accent-text-rgb: var(--usk-accent-text-rgb);
169
+ --cyber-success-rgb: var(--usk-success-rgb);
102
170
  --cyber-success-text-rgb: var(--usk-success-text-rgb);
171
+ --cyber-warning-rgb: var(--usk-warning-rgb);
103
172
  --cyber-warning-text-rgb: var(--usk-warning-text-rgb);
173
+ --cyber-danger-rgb: var(--usk-danger-rgb);
104
174
  --cyber-danger-text-rgb: var(--usk-danger-text-rgb);
175
+ --cyber-link-rgb: var(--usk-link-rgb);
105
176
  --cyber-focus-rgb: var(--usk-focus-rgb);
177
+ }
178
+
179
+ [data-ui="cyberpunk"][data-mode] {
180
+ --usk-native-bg: var(--cyber-bg);
181
+ /* Explicit schemes win; reference colors are used only when no scheme exists. */
182
+ --cyber-bg-rgb: var(--usk-bg-rgb, var(--cyber-fallback-bg-rgb));
183
+ --cyber-surface-rgb: var(--usk-surface-rgb, var(--cyber-fallback-surface-rgb));
184
+ --cyber-surface-strong-rgb: var(--usk-surface-strong-rgb, var(--cyber-fallback-surface-strong-rgb));
185
+ --cyber-surface-soft-rgb: var(--usk-surface-soft-rgb, var(--cyber-fallback-surface-soft-rgb));
186
+ --cyber-text-rgb: var(--usk-text-rgb, var(--cyber-fallback-text-rgb));
187
+ --cyber-text-muted-rgb: var(--usk-text-muted-rgb, var(--cyber-fallback-text-muted-rgb));
188
+ --cyber-border-rgb: var(--usk-border-rgb, var(--cyber-fallback-border-rgb));
189
+ --cyber-primary-rgb: var(--usk-primary-rgb, var(--cyber-fallback-primary-rgb));
190
+ --cyber-primary-hover-rgb: var(--usk-primary-hover-rgb, var(--cyber-fallback-primary-hover-rgb));
191
+ --cyber-primary-text-rgb: var(--usk-primary-text-rgb, var(--cyber-fallback-primary-text-rgb));
192
+ --cyber-secondary-rgb: var(--usk-secondary-rgb, var(--cyber-fallback-secondary-rgb));
193
+ --cyber-secondary-hover-rgb: var(--usk-secondary-hover-rgb, var(--cyber-fallback-secondary-hover-rgb));
194
+ --cyber-secondary-text-rgb: var(--usk-secondary-text-rgb, var(--cyber-fallback-secondary-text-rgb));
195
+ --cyber-accent-rgb: var(--usk-accent-rgb, var(--cyber-fallback-accent-rgb));
196
+ --cyber-accent-text-rgb: var(--usk-accent-text-rgb, var(--cyber-fallback-accent-text-rgb));
197
+ --cyber-success-rgb: var(--usk-success-rgb, var(--cyber-fallback-success-rgb));
198
+ --cyber-success-text-rgb: var(--usk-success-text-rgb, var(--cyber-fallback-success-text-rgb));
199
+ --cyber-warning-rgb: var(--usk-warning-rgb, var(--cyber-fallback-warning-rgb));
200
+ --cyber-warning-text-rgb: var(--usk-warning-text-rgb, var(--cyber-fallback-warning-text-rgb));
201
+ --cyber-danger-rgb: var(--usk-danger-rgb, var(--cyber-fallback-danger-rgb));
202
+ --cyber-danger-text-rgb: var(--usk-danger-text-rgb, var(--cyber-fallback-danger-text-rgb));
203
+ --cyber-link-rgb: var(--usk-link-rgb, var(--cyber-fallback-link-rgb));
204
+ --cyber-focus-rgb: var(--usk-focus-rgb, var(--cyber-fallback-focus-rgb));
106
205
  /* Native fallback selectors inherit visual identity through shared tokens. */
107
206
  --usk-native-surface: var(--cyber-surface);
108
207
  --usk-native-surface-strong: var(--cyber-surface-strong);
@@ -133,8 +232,59 @@
133
232
  --usk-native-border-width: 1px;
134
233
  --usk-native-field-gap: .5rem;
135
234
  --usk-native-panel-padding: var(--cyber-space-5);
136
- --usk-native-shadow: 0 0 18px rgb(var(--cyber-primary-rgb) / .16);
137
- --usk-native-focus-ring: 0 0 0 2px rgb(var(--cyber-focus-rgb) / .24), 0 0 24px rgb(var(--cyber-focus-rgb) / .24);
235
+ --usk-native-control-min-block-size: 2.75rem;
236
+ --usk-native-control-padding-block: .55rem;
237
+ --usk-native-control-padding-inline: .875rem;
238
+ --usk-native-subcontrol-padding-block: .48rem;
239
+ --usk-native-subcontrol-padding-inline: .68rem;
240
+ --usk-native-choice-size: 1.25rem;
241
+ --usk-native-choice-background: var(--cyber-control-bg);
242
+ --usk-native-choice-border: 1px solid var(--cyber-border);
243
+ --usk-native-checkbox-radius: .1rem;
244
+ --usk-native-radio-radius: 50%;
245
+ --usk-native-choice-shadow: 0 0 .55rem rgb(var(--cyber-primary-rgb) / .18);
246
+ --usk-native-choice-checked-background: var(--cyber-primary);
247
+ --usk-native-choice-mark-color: var(--cyber-on-primary);
248
+ --usk-native-select-indicator-image: linear-gradient(51deg, transparent 50%, var(--cyber-primary) 50%), linear-gradient(129deg, var(--cyber-primary) 50%, transparent 50%);
249
+ --usk-native-select-indicator-size: 0.46rem 0.46rem, 0.46rem 0.46rem;
250
+ --usk-native-select-indicator-position: calc(100% - 1rem) 50%, calc(100% - 0.72rem) 50%;
251
+ --usk-native-select-padding-inline-end: 2.25rem;
252
+ --usk-native-range-track-size: .5rem;
253
+ --usk-native-range-track-background: linear-gradient(90deg, var(--cyber-success), var(--cyber-warning) 62%, var(--cyber-danger));
254
+ --usk-native-range-track-border: 1px solid var(--cyber-border);
255
+ --usk-native-range-track-radius: .08rem;
256
+ --usk-native-range-track-shadow: 0 0 .55rem rgb(var(--cyber-primary-rgb) / .16);
257
+ --usk-native-range-progress-background: var(--cyber-primary);
258
+ --usk-native-range-thumb-size: 1.25rem;
259
+ --usk-native-range-thumb-background: var(--cyber-surface-strong);
260
+ --usk-native-range-thumb-border: 1px solid var(--cyber-border);
261
+ --usk-native-range-thumb-radius: .1rem;
262
+ --usk-native-range-thumb-shadow: 0 0 .55rem rgb(var(--cyber-primary-rgb) / .22);
263
+ --usk-native-progress-size: .72rem;
264
+ --usk-native-progress-track-background: var(--cyber-surface-soft);
265
+ --usk-native-progress-track-border: 1px solid var(--cyber-border);
266
+ --usk-native-progress-track-radius: .08rem;
267
+ --usk-native-progress-track-shadow: 0 0 .45rem rgb(var(--cyber-primary-rgb) / .14);
268
+ --usk-native-progress-value-background: var(--cyber-primary);
269
+ --usk-native-progress-value-radius: .08rem;
270
+ --usk-native-progress-value-shadow: 0 0 .55rem rgb(var(--cyber-primary-rgb) / .2);
271
+ --usk-native-meter-optimum-background: var(--cyber-success);
272
+ --usk-native-meter-suboptimum-background: var(--cyber-warning);
273
+ --usk-native-meter-critical-background: var(--cyber-danger);
274
+ --usk-native-file-button-background: var(--cyber-primary);
275
+ --usk-native-file-button-border: 1px solid var(--cyber-border);
276
+ --usk-native-file-button-radius: .1rem;
277
+ --usk-native-file-button-shadow: 0 0 .55rem rgb(var(--cyber-primary-rgb) / .18);
278
+ --usk-native-color-swatch-border: 1px solid var(--cyber-border);
279
+ --usk-native-color-swatch-radius: .1rem;
280
+ --usk-native-indicator-opacity: 0.87;
281
+ --usk-native-indicator-filter: none;
282
+ --usk-native-scrollbar-size: .75rem;
283
+ --usk-native-scrollbar-track: var(--cyber-surface-soft);
284
+ --usk-native-scrollbar-thumb: var(--cyber-primary);
285
+ --usk-native-scrollbar-radius: .08rem;
286
+ --usk-native-shadow: 0 0 .7rem rgb(var(--cyber-primary-rgb) / .16);
287
+ --usk-native-focus-ring: 0 0 0 2px var(--cyber-surface), 0 0 0 4px var(--cyber-focus), 0 0 .8rem rgb(var(--cyber-focus-rgb) / .2);
138
288
  --cyber-bg: rgb(var(--cyber-bg-rgb));
139
289
  --cyber-surface: rgb(var(--cyber-surface-rgb) / var(--cyber-panel-alpha));
140
290
  --cyber-surface-strong: rgb(var(--cyber-surface-strong-rgb) / var(--cyber-panel-strong-alpha));
@@ -170,9 +320,9 @@
170
320
  --cyber-shadow-sm: 0 2px 8px rgb(0 0 0 / var(--cyber-shadow-alpha));
171
321
  --cyber-shadow-md: 0 10px 28px rgb(0 0 0 / calc(var(--cyber-shadow-alpha) + 0.05));
172
322
  --cyber-shadow-lg: 0 22px 60px rgb(0 0 0 / calc(var(--cyber-shadow-alpha) + 0.12));
173
- --cyber-theme-bg-size: auto, auto, auto, 48px 48px, 48px 48px, auto;
174
- --cyber-theme-bg: radial-gradient(circle at 10% 10%, rgb(var(--cyber-primary-rgb) / .18), transparent 24rem), radial-gradient(circle at 90% 0%, rgb(var(--cyber-secondary-rgb) / .16), transparent 28rem), radial-gradient(circle at 50% 100%, rgb(var(--cyber-accent-rgb) / .10), transparent 34rem), linear-gradient(90deg, rgb(var(--cyber-primary-rgb) / var(--cyber-grid-alpha)) 1px, transparent 1px), linear-gradient(rgb(var(--cyber-secondary-rgb) / var(--cyber-grid-alpha)) 1px, transparent 1px), var(--cyber-bg);
175
- --cyber-card-bg: linear-gradient(135deg, rgb(var(--cyber-primary-rgb) / .10), rgb(var(--cyber-accent-rgb) / .055) 42%, rgb(var(--cyber-surface-strong-rgb) / var(--cyber-panel-alpha)) 100%), var(--cyber-surface);
323
+ --cyber-theme-bg-size: 32px 32px, 32px 32px, auto;
324
+ --cyber-theme-bg: linear-gradient(90deg, rgb(var(--cyber-primary-rgb) / var(--cyber-grid-alpha)) 1px, transparent 1px), linear-gradient(rgb(var(--cyber-border-rgb) / var(--cyber-grid-alpha)) 1px, transparent 1px), var(--cyber-bg);
325
+ --cyber-card-bg: linear-gradient(135deg, rgb(var(--cyber-primary-rgb) / .12), transparent 18%) top left / 3rem 3rem no-repeat, var(--cyber-surface);
176
326
  --cyber-control-bg: linear-gradient(180deg, rgb(var(--cyber-surface-strong-rgb) / var(--cyber-panel-alpha)), rgb(var(--cyber-surface-soft-rgb) / var(--cyber-panel-soft-alpha)));
177
327
  --cyber-spinner-track: rgb(var(--cyber-border-rgb) / max(.28, calc(var(--cyber-border-alpha) * .7)));
178
328
  --cyber-spinner-stroke: var(--cyber-primary);
@@ -180,7 +330,7 @@
180
330
  }
181
331
 
182
332
  @supports (color: color-mix(in srgb, black, white)) {
183
- [data-ui="cyberpunk"][data-theme][data-mode] { --cyber-border: color-mix(in srgb, rgb(var(--cyber-border-rgb) / max(var(--cyber-border-alpha), var(--usk-border-min-alpha))), var(--cyber-text) var(--usk-border-text-mix)); }
333
+ [data-ui="cyberpunk"][data-mode] { --cyber-border: color-mix(in srgb, rgb(var(--cyber-border-rgb) / max(var(--cyber-border-alpha), var(--usk-border-min-alpha))), var(--cyber-text) var(--usk-border-text-mix)); }
184
334
  }
185
335
 
186
336
  /* =========================================================
@@ -260,21 +410,19 @@
260
410
  [data-ui="cyberpunk"] {
261
411
  min-height: 100vh;
262
412
  background:
263
- radial-gradient(circle at 10% 10%, rgb(var(--cyber-primary-rgb) / 0.16), transparent 24rem),
264
- radial-gradient(circle at 90% 0%, rgb(var(--cyber-secondary-rgb) / 0.16), transparent 28rem),
265
413
  linear-gradient(90deg, rgb(var(--cyber-primary-rgb) / var(--cyber-grid-alpha)) 1px, transparent 1px),
266
- linear-gradient(rgb(var(--cyber-secondary-rgb) / var(--cyber-grid-alpha)) 1px, transparent 1px),
414
+ linear-gradient(rgb(var(--cyber-border-rgb) / var(--cyber-grid-alpha)) 1px, transparent 1px),
267
415
  var(--cyber-bg);
268
- background-size: auto, auto, 48px 48px, 48px 48px, auto;
416
+ background-size: 32px 32px, 32px 32px, auto;
269
417
  color: var(--cyber-text);
270
418
  font-family: var(--cyber-font-body);
271
419
  }
272
420
  [data-ui="cyberpunk"] *, [data-ui="cyberpunk"] *::before, [data-ui="cyberpunk"] *::after { box-sizing: border-box; }
273
- [data-ui="cyberpunk"][data-theme][data-mode] { background: var(--cyber-theme-bg); background-size: var(--cyber-theme-bg-size); }
421
+ [data-ui="cyberpunk"][data-mode] { background: var(--cyber-theme-bg); background-size: var(--cyber-theme-bg-size); }
274
422
  [data-ui="cyberpunk"] a { color: var(--cyber-link); text-decoration-color: rgb(var(--cyber-primary-rgb) / 0.6); text-underline-offset: 0.18em; }
275
423
  [data-ui="cyberpunk"] ::selection { background: var(--cyber-primary); color: var(--cyber-on-primary); }
276
424
 
277
- .cyber-page { position: relative; min-height: 100vh; padding: clamp(1rem, 4vw, 3rem); overflow: hidden; }
425
+ .cyber-page { position: relative; min-height: 100vh; padding: clamp(1rem, 4vw, 3rem); }
278
426
  .cyber-page::before { content: ""; position: fixed; inset: 0; pointer-events: none; background: linear-gradient(to bottom, rgb(255 255 255 / 0.035) 0 1px, transparent 1px 4px); mix-blend-mode: screen; }
279
427
  .cyber-container { width: min(100% - 2rem, 1200px); margin-inline: auto; } .cyber-stack { display: flex; flex-direction: column; gap: var(--cyber-space-4); } .cyber-cluster { display: flex; flex-wrap: wrap; align-items: center; gap: var(--cyber-space-3); } .cyber-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); gap: var(--cyber-space-5); } .cyber-section { padding: clamp(1.25rem, 4vw, 2.5rem); }
280
428
 
@@ -285,7 +433,7 @@
285
433
 
286
434
  .cyber-card, .cyber-panel, .cyber-console, .cyber-toolbar, .cyber-table-wrap {
287
435
  position: relative; background: linear-gradient(135deg, rgb(255 255 255 / 0.08), rgb(255 255 255 / 0.02)), var(--cyber-surface);
288
- color: var(--cyber-text); border: 1px solid var(--cyber-border); border-radius: var(--cyber-radius-md); box-shadow: var(--cyber-shadow-md), 0 0 24px var(--cyber-glow-primary); overflow: hidden;
436
+ color: var(--cyber-text); border: 1px solid var(--cyber-border); border-radius: var(--cyber-radius-md); box-shadow: var(--cyber-shadow-md), 0 0 24px var(--cyber-glow-primary);
289
437
  clip-path: polygon(0 0, calc(100% - 1rem) 0, 100% 1rem, 100% 100%, 1rem 100%, 0 calc(100% - 1rem));
290
438
  transition: transform var(--cyber-transition-base), box-shadow var(--cyber-transition-base), border-color var(--cyber-transition-base);
291
439
  }
@@ -321,7 +469,7 @@
321
469
  /* Theme-responsive component defaults */
322
470
  .cyber-card, .cyber-panel { background: var(--cyber-card-bg); }
323
471
  .cyber-toolbar, .cyber-table-wrap { background: var(--cyber-control-bg); }
324
- .cyber-button:not(.cyber-button-primary):not(.cyber-button-secondary):not(.cyber-button-danger):not(.cyber-button-ghost), .cyber-icon-button { background: var(--cyber-control-bg); }
472
+ .cyber-button:not(.cyber-button-primary):not(.cyber-button-secondary):not(.cyber-button-danger):not(.cyber-button-warning):not(.cyber-button-ghost), .cyber-icon-button { background: var(--cyber-control-bg); }
325
473
  .cyber-button, .cyber-icon-button, .cyber-badge, .cyber-nav-link { font-family: var(--cyber-font-control); }
326
474
 
327
475
  /* Spinner geometry follows the cyberpunk preset's clipped neon readouts. */
@@ -459,7 +607,6 @@
459
607
  .cyber-feature-strip {
460
608
  display: grid;
461
609
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr));
462
- overflow: hidden;
463
610
  background: var(--cyber-card-bg);
464
611
  color: var(--cyber-text);
465
612
  border: 1px solid var(--cyber-border);
@@ -546,6 +693,7 @@
546
693
 
547
694
  /* Filled and framed actions use complementary technical notches and neon edges. */
548
695
  .cyber-button.cyber-button-cut, .cyber-button-cut {
696
+ min-block-size: 2.75rem;
549
697
  inline-size: min(100%, 18rem);
550
698
  min-inline-size: 6rem;
551
699
  max-inline-size: 100%;
@@ -566,12 +714,12 @@
566
714
  border-radius: 0;
567
715
  box-shadow: 0 0 1rem rgb(var(--cyber-primary-rgb) / .28), inset 0 0 .6rem rgb(var(--cyber-accent-rgb) / .12);
568
716
  }
569
- [data-ui="cyberpunk"][data-theme][data-mode] :where(button:not([class]), input[type="button"]:not([class]), input[type="submit"]:not([class]), input[type="reset"]:not([class])) {
717
+ [data-ui="cyberpunk"][data-mode] :where(button:not([class]), input[type="button"]:not([class]), input[type="submit"]:not([class]), input[type="reset"]:not([class])) {
570
718
  border: 2px solid var(--cyber-primary);
571
719
  border-radius: 0;
572
720
  box-shadow: 0 0 .75rem rgb(var(--cyber-primary-rgb) / .36), inset 0 0 .4rem rgb(var(--cyber-accent-rgb) / .14);
573
721
  }
574
- [data-ui="cyberpunk"][data-theme][data-mode] :where(dialog) {
722
+ [data-ui="cyberpunk"][data-mode] :where(dialog) {
575
723
  border: 2px solid var(--cyber-primary);
576
724
  border-radius: 0;
577
725
  box-shadow: 0 0 1.2rem rgb(var(--cyber-primary-rgb) / .34), 0 1rem 2.4rem rgb(var(--cyber-text-rgb) / .28);
@@ -582,6 +730,97 @@
582
730
  border: .1em solid currentColor; border-radius: 0; background: conic-gradient(from 90deg, transparent 0 22%, currentColor 0 46%, transparent 0 62%, currentColor 0 84%, transparent 0); box-shadow: 0 0 .45em currentColor; clip-path: polygon(50% 0, 100% 26%, 100% 74%, 50% 100%, 0 74%, 0 26%); animation: cyber-spin .7s linear infinite;
583
731
  }
584
732
 
733
+ /**
734
+ * Final Cyberpunk fidelity layer.
735
+ * Carries chamfered HUD geometry and signal edges across the component system.
736
+ */
737
+ [data-ui="cyberpunk"][data-mode] {
738
+ --usk-native-font-control: Bahnschrift, "Arial Narrow", "Segoe UI", sans-serif;
739
+ --usk-native-control-min-block-size: 2.85rem;
740
+ --usk-native-control-padding-block: .66rem;
741
+ --usk-native-control-padding-inline: 1.08rem;
742
+ --usk-native-border-width: 2px;
743
+ --usk-native-radius-sm: .06rem;
744
+ --usk-native-radius: .1rem;
745
+ --usk-native-radius-lg: .14rem;
746
+ --usk-native-shadow: 0 0 .7rem rgb(var(--cyber-primary-rgb) / .28);
747
+ --usk-native-shadow-md: 0 0 1.4rem rgb(var(--cyber-primary-rgb) / .32), inset .22rem 0 0 rgb(var(--cyber-accent-rgb) / .24);
748
+ --usk-native-focus-ring: 0 0 0 2px var(--cyber-surface), 0 0 0 4px var(--cyber-focus), 0 0 1rem var(--cyber-focus);
749
+ --usk-native-subcontrol-padding-block: .5rem;
750
+ --usk-native-subcontrol-padding-inline: .76rem;
751
+ --usk-native-choice-size: 1.32rem;
752
+ --usk-native-choice-background: linear-gradient(135deg, var(--cyber-control-bg), rgb(var(--cyber-primary-rgb) / .1));
753
+ --usk-native-choice-border: 2px solid var(--cyber-primary);
754
+ --usk-native-checkbox-radius: .04rem;
755
+ --usk-native-radio-radius: 28%;
756
+ --usk-native-choice-shadow: inset .16rem 0 0 rgb(var(--cyber-accent-rgb) / .34), 0 0 .55rem rgb(var(--cyber-primary-rgb) / .3);
757
+ --usk-native-choice-checked-background: linear-gradient(135deg, var(--cyber-primary), var(--cyber-accent));
758
+ --usk-native-choice-mark-color: var(--cyber-on-primary);
759
+ --usk-native-select-indicator-image: linear-gradient(45deg, transparent 45%, var(--cyber-primary) 45% 56%, transparent 56%), linear-gradient(135deg, transparent 45%, var(--cyber-accent) 45% 56%, transparent 56%);
760
+ --usk-native-select-indicator-size: .7rem .7rem, .7rem .7rem;
761
+ --usk-native-select-indicator-position: calc(100% - 1.15rem) 50%, calc(100% - .78rem) 50%;
762
+ --usk-native-select-padding-inline-end: 2.5rem;
763
+ --usk-native-range-track-size: .46rem;
764
+ --usk-native-range-track-background: linear-gradient(90deg, var(--cyber-success), var(--cyber-warning) 62%, var(--cyber-danger));
765
+ --usk-native-range-track-border: 2px solid var(--cyber-primary);
766
+ --usk-native-range-track-radius: .04rem;
767
+ --usk-native-range-track-shadow: 0 0 .7rem rgb(var(--cyber-primary-rgb) / .4);
768
+ --usk-native-range-progress-background: linear-gradient(90deg, var(--cyber-primary), var(--cyber-accent));
769
+ --usk-native-range-thumb-size: 1.3rem;
770
+ --usk-native-range-thumb-background: linear-gradient(135deg, var(--cyber-surface-strong), var(--cyber-primary));
771
+ --usk-native-range-thumb-border: 2px solid var(--cyber-accent);
772
+ --usk-native-range-thumb-radius: 28%;
773
+ --usk-native-range-thumb-shadow: 0 0 .85rem rgb(var(--cyber-accent-rgb) / .5);
774
+ --usk-native-progress-size: .7rem;
775
+ --usk-native-progress-track-background: repeating-linear-gradient(110deg, var(--cyber-surface-soft) 0 .65rem, transparent .65rem .78rem);
776
+ --usk-native-progress-track-border: 2px solid var(--cyber-primary);
777
+ --usk-native-progress-track-radius: .04rem;
778
+ --usk-native-progress-track-shadow: inset .2rem 0 0 rgb(var(--cyber-accent-rgb) / .3);
779
+ --usk-native-progress-value-background: repeating-linear-gradient(110deg, var(--cyber-primary) 0 .65rem, var(--cyber-accent) .65rem .78rem);
780
+ --usk-native-progress-value-radius: .04rem;
781
+ --usk-native-progress-value-shadow: 0 0 .8rem rgb(var(--cyber-primary-rgb) / .5);
782
+ --usk-native-scrollbar-size: .68rem;
783
+ --usk-native-scrollbar-track: linear-gradient(90deg, var(--cyber-surface), var(--cyber-surface-soft));
784
+ --usk-native-scrollbar-thumb: linear-gradient(180deg, var(--cyber-primary), var(--cyber-accent));
785
+ --usk-native-scrollbar-radius: .04rem;
786
+ }
787
+
788
+ .cyber-title { margin-block: .75rem; font-weight: 900; letter-spacing: max(.08em, .5px); }
789
+ .cyber-label { font-size: .76rem; font-weight: 850; }
790
+ .cyber-card, .cyber-panel { padding: 1.08rem; background: var(--cyber-card-bg); border: 2px solid var(--cyber-primary); border-radius: 0; box-shadow: inset .24rem 0 0 rgb(var(--cyber-accent-rgb) / .26), 0 0 1.2rem rgb(var(--cyber-primary-rgb) / .24); clip-path: polygon(.6rem 0, 100% 0, 100% calc(100% - .6rem), calc(100% - .6rem) 100%, 0 100%, 0 .6rem); }
791
+ .cyber-well, .cyber-inset { padding: .82rem; background: var(--cyber-control-bg); border: 1px solid var(--cyber-accent); border-radius: 0; box-shadow: inset 0 0 .8rem rgb(var(--cyber-primary-rgb) / .18); clip-path: polygon(.42rem 0, 100% 0, 100% calc(100% - .42rem), calc(100% - .42rem) 100%, 0 100%, 0 .42rem); }
792
+ .cyber-button, .cyber-icon-button { min-height: 2.85rem; padding: .66rem 1.08rem; background: linear-gradient(135deg, rgb(var(--cyber-primary-rgb) / .2), transparent), var(--cyber-control-bg); border: 2px solid var(--cyber-primary); border-radius: 0; box-shadow: inset .2rem 0 0 rgb(var(--cyber-accent-rgb) / .38), 0 0 .75rem rgb(var(--cyber-primary-rgb) / .32); font-weight: 850; clip-path: polygon(.5rem 0, 100% 0, 100% calc(100% - .5rem), calc(100% - .5rem) 100%, 0 100%, 0 .5rem); }
793
+ .cyber-button:active, .cyber-button[aria-pressed="true"], .cyber-button.is-active { transform: translateY(1px); background: linear-gradient(135deg, var(--cyber-primary), var(--cyber-accent)); box-shadow: inset 0 0 .6rem rgb(var(--cyber-text-rgb) / .24); }
794
+ .cyber-input, .cyber-textarea, .cyber-select { min-height: 2.55rem; padding: .54rem .82rem; background: var(--cyber-control-bg); border: 1px solid var(--cyber-primary); border-radius: 0; box-shadow: inset .18rem 0 0 rgb(var(--cyber-accent-rgb) / .3); clip-path: polygon(.34rem 0, 100% 0, 100% calc(100% - .34rem), calc(100% - .34rem) 100%, 0 100%, 0 .34rem); }
795
+ .cyber-nav, .cyber-toolbar { border: 2px solid var(--cyber-primary); border-radius: 0; box-shadow: inset 0 -.18rem 0 rgb(var(--cyber-accent-rgb) / .28); }
796
+ .cyber-nav-link { border-radius: 0; clip-path: polygon(.35rem 0, 100% 0, calc(100% - .35rem) 100%, 0 100%); }
797
+ .cyber-badge { min-height: 1.52rem; padding: .26rem .58rem; border: 1px solid currentColor; border-radius: 0; clip-path: polygon(.28rem 0, 100% 0, calc(100% - .28rem) 100%, 0 100%); }
798
+ .cyber-alert { padding: .78rem .92rem; background: var(--cyber-card-bg); border: 2px solid var(--cyber-primary); border-radius: 0; box-shadow: inset .28rem 0 0 currentColor, 0 0 .9rem rgb(var(--cyber-primary-rgb) / .22); clip-path: polygon(.45rem 0, 100% 0, 100% calc(100% - .45rem), calc(100% - .45rem) 100%, 0 100%, 0 .45rem); }
799
+ .cyber-progress { height: .7rem; background: repeating-linear-gradient(110deg, var(--cyber-surface-soft) 0 .65rem, transparent .65rem .78rem); border-radius: 0; }
800
+ .cyber-progress-bar { background: repeating-linear-gradient(110deg, var(--cyber-primary) 0 .65rem, var(--cyber-accent) .65rem .78rem); border-radius: 0; }
801
+ .cyber-table-wrap { background: var(--cyber-card-bg); border: 2px solid var(--cyber-primary); border-radius: 0; box-shadow: inset .2rem 0 0 rgb(var(--cyber-accent-rgb) / .25); }
802
+ .cyber-table th { padding: .58rem .72rem; background: linear-gradient(90deg, rgb(var(--cyber-primary-rgb) / .2), transparent); font-weight: 850; }
803
+ .cyber-table td { padding: .62rem .72rem; }
804
+ .cyber-tooltip, [data-ui="cyberpunk"] :where(.ui-tooltip, [role="tooltip"], [data-tooltip]) { border: 1px solid var(--cyber-accent); border-radius: 0; clip-path: polygon(.35rem 0, 100% 0, 100% calc(100% - .35rem), calc(100% - .35rem) 100%, 0 100%, 0 .35rem); }
805
+ .cyber-card-service, .cyber-card-feature, .cyber-media-scrim, .cyber-feature-strip, .cyber-callout-bar { border-radius: 0; clip-path: polygon(.55rem 0, 100% 0, 100% calc(100% - .55rem), calc(100% - .55rem) 100%, 0 100%, 0 .55rem); }
806
+ .cyber-button { border-radius: .04rem; }
807
+ .cyber-input { border-radius: .03rem; }
808
+ .cyber-card { border-radius: .05rem; }
809
+ .cyber-alert { border-radius: .07rem; }
810
+
811
+ /* Large HUD planes carry crossing signal washes as well as luminous edge notches. */
812
+ @supports (color: color-mix(in srgb, black, white)) {
813
+ .cyber-panel,
814
+ .cyber-card-service,
815
+ .cyber-feature-strip,
816
+ .cyber-callout-bar {
817
+ background:
818
+ linear-gradient(126deg, color-mix(in srgb, var(--cyber-surface) 62%, var(--cyber-primary)), transparent 64%),
819
+ linear-gradient(24deg, transparent 44%, color-mix(in srgb, var(--cyber-surface) 68%, var(--cyber-accent))),
820
+ var(--cyber-card-bg);
821
+ }
822
+ }
823
+
585
824
  @media (prefers-reduced-motion: reduce) {
586
825
  [data-ui="cyberpunk"] *, [data-ui="cyberpunk"] *::before, [data-ui="cyberpunk"] *::after { scroll-behavior: auto !important; transition-duration: 1ms !important; animation-duration: 1ms !important; animation-iteration-count: 1 !important; }
587
826
  }
@@ -598,3 +837,1569 @@
598
837
  [data-ui="cyberpunk"] a { color: #000 !important; text-decoration: underline; }
599
838
  }
600
839
  }
840
+
841
+ @layer ui-style-kit.cyberpunk {
842
+ /* Keeps semantic field states above preset-specific material paint. */
843
+ .cyber-input[aria-invalid="true"], .cyber-textarea[aria-invalid="true"], .cyber-select[aria-invalid="true"] { border-color: var(--cyber-danger); box-shadow: 0 0 0 2px rgb(var(--cyber-danger-rgb) / .2); }
844
+ .cyber-input[readonly], .cyber-textarea[readonly] { border-style: dashed; filter: saturate(.72); opacity: .78; }
845
+ /* Restores semantic action paint after identity-specific geometry. */
846
+ .cyber-button-primary { background: linear-gradient(112deg, var(--cyber-primary), var(--cyber-accent)); color: var(--cyber-on-primary); border-color: var(--cyber-primary); }
847
+ .cyber-button-secondary { background: linear-gradient(112deg, var(--cyber-secondary), rgb(var(--cyber-secondary-rgb) / .72)); color: var(--cyber-on-secondary); border-color: var(--cyber-secondary); }
848
+ .cyber-button-danger { background: linear-gradient(112deg, var(--cyber-danger), rgb(var(--cyber-danger-rgb) / .66)); color: var(--cyber-on-danger); border-color: var(--cyber-danger); }
849
+ .cyber-button-ghost { background: transparent; color: var(--cyber-primary); border-color: transparent; }
850
+ }
851
+
852
+ @layer ui-style-kit.cyberpunk {
853
+ /* Shared annotation fidelity: readable display rhythm and appropriately scaled text icons. */
854
+ .cyber-feature-item > .cyber-icon-medallion { font-size: 1.5rem; line-height: 1; }
855
+ .cyber-callout-bar > .cyber-icon-medallion { min-inline-size: 4.5rem; min-block-size: 4.5rem; font-size: 2rem; font-weight: 800; line-height: 1; }
856
+ }
857
+
858
+ @layer ui-style-kit.cyberpunk {
859
+ /**
860
+ * Retained template fidelity layer.
861
+ * Keeps Cyberpunk compact, token-driven, and accessible across prefixed,
862
+ * semantic, and native element surfaces.
863
+ */
864
+ [data-ui="cyberpunk"][data-mode] {
865
+ --usk-native-font-control: var(--cyber-font-mono);
866
+ --usk-native-control-min-block-size: 2.75rem;
867
+ --usk-native-control-padding-block: .55rem;
868
+ --usk-native-control-padding-inline: .875rem;
869
+ --usk-native-border-width: 1px;
870
+ --usk-native-radius-sm: .08rem;
871
+ --usk-native-radius: .08rem;
872
+ --usk-native-radius-lg: .08rem;
873
+ --usk-native-shadow: 0 0 .7rem rgb(var(--cyber-primary-rgb) / .14);
874
+ --usk-native-shadow-md: 0 0 .9rem rgb(var(--cyber-primary-rgb) / .16);
875
+ --usk-native-focus-ring: 0 0 0 2px var(--cyber-surface), 0 0 0 4px var(--cyber-focus), 0 0 .8rem rgb(var(--cyber-focus-rgb) / .22);
876
+ --usk-native-subcontrol-padding-block: .48rem;
877
+ --usk-native-subcontrol-padding-inline: .68rem;
878
+ --usk-native-choice-size: 1.25rem;
879
+ --usk-native-choice-background: var(--cyber-control-bg);
880
+ --usk-native-choice-border: 1px solid var(--cyber-border);
881
+ --usk-native-checkbox-radius: .08rem;
882
+ --usk-native-radio-radius: 50%;
883
+ --usk-native-choice-shadow: 0 0 .5rem rgb(var(--cyber-primary-rgb) / .18);
884
+ --usk-native-choice-checked-background: var(--cyber-primary);
885
+ --usk-native-choice-mark-color: var(--cyber-on-primary);
886
+ --usk-native-select-indicator-image: linear-gradient(45deg, transparent 46%, var(--cyber-primary) 46% 56%, transparent 56%), linear-gradient(135deg, transparent 46%, var(--cyber-primary) 46% 56%, transparent 56%);
887
+ --usk-native-select-indicator-size: .62rem .62rem, .62rem .62rem;
888
+ --usk-native-select-indicator-position: calc(100% - 1.08rem) 50%, calc(100% - .74rem) 50%;
889
+ --usk-native-select-padding-inline-end: 2.45rem;
890
+ --usk-native-range-track-size: .5rem;
891
+ --usk-native-range-track-background: linear-gradient(90deg, var(--cyber-success), var(--cyber-warning) 62%, var(--cyber-danger));
892
+ --usk-native-range-track-border: 1px solid var(--cyber-border);
893
+ --usk-native-range-track-radius: .08rem;
894
+ --usk-native-range-track-shadow: 0 0 .45rem rgb(var(--cyber-primary-rgb) / .16);
895
+ --usk-native-range-progress-background: var(--cyber-primary);
896
+ --usk-native-range-thumb-size: 1.25rem;
897
+ --usk-native-range-thumb-background: var(--cyber-surface-strong);
898
+ --usk-native-range-thumb-border: 1px solid var(--cyber-primary);
899
+ --usk-native-range-thumb-radius: .08rem;
900
+ --usk-native-range-thumb-shadow: 0 0 .55rem rgb(var(--cyber-primary-rgb) / .24);
901
+ --usk-native-progress-size: .7rem;
902
+ --usk-native-progress-track-background: repeating-linear-gradient(110deg, var(--cyber-surface-soft) 0 .58rem, transparent .58rem .72rem);
903
+ --usk-native-progress-track-border: 1px solid var(--cyber-border);
904
+ --usk-native-progress-track-radius: .08rem;
905
+ --usk-native-progress-track-shadow: inset .16rem 0 0 rgb(var(--cyber-primary-rgb) / .16);
906
+ --usk-native-progress-value-background: repeating-linear-gradient(110deg, var(--cyber-primary) 0 .58rem, var(--cyber-primary-hover) .58rem .72rem);
907
+ --usk-native-progress-value-radius: .08rem;
908
+ --usk-native-progress-value-shadow: 0 0 .55rem rgb(var(--cyber-primary-rgb) / .22);
909
+ --usk-native-file-button-background: var(--cyber-primary);
910
+ --usk-native-file-button-border: 1px solid var(--cyber-primary);
911
+ --usk-native-file-button-radius: .08rem;
912
+ --usk-native-file-button-shadow: 0 0 .55rem rgb(var(--cyber-primary-rgb) / .18);
913
+ --usk-native-scrollbar-size: .68rem;
914
+ --usk-native-scrollbar-track: var(--cyber-surface-soft);
915
+ --usk-native-scrollbar-thumb: var(--cyber-primary);
916
+ --usk-native-scrollbar-radius: .08rem;
917
+ --cyber-theme-bg-size: 32px 32px, 32px 32px, auto;
918
+ --cyber-theme-bg: linear-gradient(90deg, rgb(var(--cyber-primary-rgb) / var(--cyber-grid-alpha)) 1px, transparent 1px), linear-gradient(rgb(var(--cyber-border-rgb) / var(--cyber-grid-alpha)) 1px, transparent 1px), var(--cyber-bg);
919
+ --cyber-card-bg: linear-gradient(135deg, rgb(var(--cyber-primary-rgb) / .12), transparent 18%) top left / 3rem 3rem no-repeat, var(--cyber-surface);
920
+ --cyber-control-bg: linear-gradient(180deg, rgb(var(--cyber-surface-strong-rgb) / var(--cyber-panel-alpha)), rgb(var(--cyber-surface-soft-rgb) / var(--cyber-panel-soft-alpha)));
921
+ }
922
+
923
+ [data-ui="cyberpunk"] {
924
+ background: var(--cyber-theme-bg);
925
+ background-size: var(--cyber-theme-bg-size);
926
+ }
927
+
928
+ .cyber-page::before {
929
+ background: linear-gradient(to bottom, rgb(var(--cyber-text-rgb) / .025) 0 1px, transparent 1px 4px);
930
+ mix-blend-mode: normal;
931
+ }
932
+
933
+ .cyber-title,
934
+ .cyber-heading {
935
+ font-family: var(--cyber-font-heading);
936
+ letter-spacing: .08em;
937
+ }
938
+
939
+ .cyber-kicker,
940
+ .cyber-label,
941
+ .cyber-button,
942
+ .cyber-badge,
943
+ .cyber-nav-link,
944
+ .cyber-table th,
945
+ .cyber-tooltip,
946
+ [data-ui="cyberpunk"] :where(.ui-tooltip, [role="tooltip"], [data-tooltip]) {
947
+ font-family: var(--cyber-font-mono);
948
+ letter-spacing: .045em;
949
+ }
950
+
951
+ .cyber-title {
952
+ margin-block: .75rem;
953
+ font-weight: 900;
954
+ text-shadow: 0 0 .65rem rgb(var(--cyber-primary-rgb) / .22);
955
+ }
956
+
957
+ .cyber-card,
958
+ .cyber-panel,
959
+ .cyber-console,
960
+ .cyber-toolbar,
961
+ .cyber-table-wrap,
962
+ .cyber-card-service,
963
+ .cyber-media-scrim,
964
+ .cyber-feature-strip,
965
+ .cyber-callout-bar {
966
+ position: relative;
967
+ background: var(--cyber-card-bg);
968
+ color: var(--cyber-text);
969
+ border: 1px solid var(--cyber-border);
970
+ border-radius: .08rem;
971
+ box-shadow: 0 .75rem 1.75rem rgb(0 0 0 / calc(var(--cyber-shadow-alpha) * .62)), 0 0 .85rem rgb(var(--cyber-primary-rgb) / .12);
972
+ clip-path: polygon(0 var(--cyber-cut-md), var(--cyber-cut-md) 0, calc(100% - 1.125rem) 0, 100% 1.125rem, 100% calc(100% - var(--cyber-cut-md)), calc(100% - var(--cyber-cut-md)) 100%, 1rem 100%, 0 calc(100% - 1rem));
973
+ }
974
+
975
+ .cyber-card::after,
976
+ .cyber-panel::after,
977
+ .cyber-console::after,
978
+ .cyber-toolbar::after,
979
+ .cyber-table-wrap::after,
980
+ .cyber-card-service::after,
981
+ .cyber-media-scrim::after,
982
+ .cyber-feature-strip::after,
983
+ .cyber-callout-bar::after {
984
+ content: "";
985
+ position: absolute;
986
+ inset: 0 auto auto 0;
987
+ inline-size: 100%;
988
+ block-size: 2px;
989
+ pointer-events: none;
990
+ background: linear-gradient(90deg, var(--cyber-primary), var(--cyber-danger));
991
+ opacity: .86;
992
+ }
993
+
994
+ .cyber-panel,
995
+ .cyber-console {
996
+ padding: var(--cyber-space-5);
997
+ }
998
+
999
+ .cyber-card {
1000
+ padding: 1.08rem;
1001
+ }
1002
+
1003
+ .cyber-well,
1004
+ .cyber-inset {
1005
+ background: var(--cyber-control-bg);
1006
+ border: 1px solid var(--cyber-border);
1007
+ border-radius: .08rem;
1008
+ box-shadow: inset .18rem 0 0 rgb(var(--cyber-primary-rgb) / .12);
1009
+ clip-path: polygon(0 .42rem, .42rem 0, 100% 0, 100% calc(100% - .42rem), calc(100% - .42rem) 100%, 0 100%);
1010
+ }
1011
+
1012
+ .cyber-button,
1013
+ .cyber-icon-button {
1014
+ min-block-size: 2.75rem;
1015
+ min-height: 2.75rem;
1016
+ padding: .58rem .875rem;
1017
+ background-color: rgb(var(--cyber-surface-soft-rgb) / var(--cyber-panel-soft-alpha));
1018
+ background-image: linear-gradient(135deg, rgb(var(--cyber-primary-rgb) / .12), transparent 56%);
1019
+ color: var(--cyber-text);
1020
+ border: 1px solid var(--cyber-border);
1021
+ border-radius: .04rem;
1022
+ box-shadow: none;
1023
+ font-family: var(--cyber-font-mono);
1024
+ font-size: .75rem;
1025
+ font-weight: 800;
1026
+ letter-spacing: .045em;
1027
+ clip-path: polygon(0 .5rem, .5rem 0, calc(100% - .75rem) 0, 100% .75rem, 100% calc(100% - .4375rem), calc(100% - .4375rem) 100%, 0 100%);
1028
+ transition: transform var(--cyber-transition-fast), box-shadow var(--cyber-transition-fast), border-color var(--cyber-transition-fast), background-color var(--cyber-transition-fast);
1029
+ }
1030
+
1031
+ .cyber-icon-button {
1032
+ inline-size: 2.75rem;
1033
+ min-inline-size: 2.75rem;
1034
+ padding: 0;
1035
+ }
1036
+
1037
+ .cyber-button:hover,
1038
+ .cyber-icon-button:hover {
1039
+ border-color: var(--cyber-primary);
1040
+ color: var(--cyber-primary);
1041
+ box-shadow: 0 0 .75rem rgb(var(--cyber-primary-rgb) / .2);
1042
+ }
1043
+
1044
+ .cyber-button:active,
1045
+ .cyber-icon-button:active,
1046
+ .cyber-button.is-active,
1047
+ .cyber-button[aria-pressed="true"] {
1048
+ transform: translateY(1px);
1049
+ box-shadow: inset 0 0 .5rem rgb(0 0 0 / .24);
1050
+ }
1051
+
1052
+ .cyber-button-primary,
1053
+ .cyber-nav-link.is-active,
1054
+ .cyber-nav-link[aria-current="page"] {
1055
+ background-color: var(--cyber-primary);
1056
+ background-image: none;
1057
+ color: var(--cyber-on-primary);
1058
+ border-color: var(--cyber-primary);
1059
+ box-shadow: 0 0 .75rem rgb(var(--cyber-primary-rgb) / .24);
1060
+ }
1061
+
1062
+ .cyber-button-primary:hover {
1063
+ background-color: var(--cyber-primary-hover);
1064
+ color: var(--cyber-on-primary);
1065
+ border-color: var(--cyber-primary-hover);
1066
+ }
1067
+
1068
+ .cyber-button-secondary {
1069
+ background-color: var(--cyber-secondary);
1070
+ background-image: none;
1071
+ color: var(--cyber-on-secondary);
1072
+ border-color: var(--cyber-secondary);
1073
+ }
1074
+
1075
+ .cyber-button-secondary:hover {
1076
+ background-color: var(--cyber-secondary-hover);
1077
+ color: var(--cyber-on-secondary);
1078
+ border-color: var(--cyber-secondary-hover);
1079
+ }
1080
+
1081
+ .cyber-button-danger {
1082
+ background-color: var(--cyber-danger);
1083
+ background-image: none;
1084
+ color: var(--cyber-on-danger);
1085
+ border-color: var(--cyber-danger);
1086
+ box-shadow: 0 0 .75rem rgb(var(--cyber-danger-rgb) / .2);
1087
+ }
1088
+
1089
+ .cyber-button-danger:hover {
1090
+ background-color: var(--cyber-danger);
1091
+ color: var(--cyber-on-danger);
1092
+ border-color: var(--cyber-danger);
1093
+ }
1094
+
1095
+ .cyber-button-ghost {
1096
+ background-color: transparent;
1097
+ background-image: none;
1098
+ color: var(--cyber-primary);
1099
+ border-color: transparent;
1100
+ box-shadow: none;
1101
+ }
1102
+
1103
+ .cyber-input,
1104
+ .cyber-textarea,
1105
+ .cyber-select {
1106
+ min-block-size: 2.75rem;
1107
+ min-height: 2.75rem;
1108
+ padding: .55rem .875rem;
1109
+ background-color: rgb(var(--cyber-surface-soft-rgb) / var(--cyber-panel-soft-alpha));
1110
+ background-image: linear-gradient(135deg, rgb(var(--cyber-primary-rgb) / .1), transparent 58%);
1111
+ color: var(--cyber-text);
1112
+ border: 1px solid var(--cyber-primary);
1113
+ border-radius: .03rem;
1114
+ box-shadow: inset .16rem 0 0 rgb(var(--cyber-primary-rgb) / .16);
1115
+ clip-path: polygon(0 .4375rem, .4375rem 0, 100% 0, 100% calc(100% - .4375rem), calc(100% - .4375rem) 100%, 0 100%);
1116
+ }
1117
+
1118
+ .cyber-select {
1119
+ appearance: none;
1120
+ background-image: linear-gradient(135deg, rgb(var(--cyber-primary-rgb) / .1), transparent 58%), var(--usk-native-select-indicator-image);
1121
+ background-position: 0 0, var(--usk-native-select-indicator-position);
1122
+ background-repeat: no-repeat;
1123
+ background-size: auto, var(--usk-native-select-indicator-size);
1124
+ padding-inline-end: var(--usk-native-select-padding-inline-end);
1125
+ }
1126
+
1127
+ .cyber-input:focus,
1128
+ .cyber-textarea:focus,
1129
+ .cyber-select:focus,
1130
+ .cyber-button:focus-visible,
1131
+ .cyber-icon-button:focus-visible,
1132
+ .cyber-nav-link:focus-visible {
1133
+ border-color: var(--cyber-focus);
1134
+ box-shadow: var(--usk-native-focus-ring);
1135
+ outline: 2px solid transparent;
1136
+ outline-offset: 2px;
1137
+ }
1138
+
1139
+ .cyber-input[aria-invalid="true"],
1140
+ .cyber-textarea[aria-invalid="true"],
1141
+ .cyber-select[aria-invalid="true"] {
1142
+ border-color: var(--cyber-danger);
1143
+ box-shadow: 0 0 0 2px rgb(var(--cyber-danger-rgb) / .2);
1144
+ }
1145
+
1146
+ .cyber-badge {
1147
+ min-block-size: 1.5rem;
1148
+ min-height: 1.5rem;
1149
+ padding: .22rem .55rem;
1150
+ border: 1px solid currentColor;
1151
+ border-radius: .04rem;
1152
+ box-shadow: none;
1153
+ font-family: var(--cyber-font-mono);
1154
+ font-size: .68rem;
1155
+ font-weight: 800;
1156
+ letter-spacing: .045em;
1157
+ clip-path: polygon(0 .28rem, .28rem 0, calc(100% - .28rem) 0, 100% .28rem, calc(100% - .28rem) 100%, 0 100%);
1158
+ }
1159
+
1160
+ .cyber-alert {
1161
+ padding: .78rem .92rem;
1162
+ background: var(--cyber-card-bg);
1163
+ color: var(--cyber-text);
1164
+ border: 1px solid var(--cyber-primary);
1165
+ border-radius: .07rem;
1166
+ box-shadow: inset .22rem 0 0 currentColor, 0 0 .75rem rgb(var(--cyber-primary-rgb) / .14);
1167
+ clip-path: polygon(0 .45rem, .45rem 0, 100% 0, 100% calc(100% - .45rem), calc(100% - .45rem) 100%, 0 100%);
1168
+ }
1169
+
1170
+ .cyber-alert-success {
1171
+ border-color: var(--cyber-success);
1172
+ color: var(--cyber-success);
1173
+ }
1174
+
1175
+ .cyber-alert-warning {
1176
+ border-color: var(--cyber-warning);
1177
+ color: var(--cyber-warning);
1178
+ }
1179
+
1180
+ .cyber-alert-danger {
1181
+ border-color: var(--cyber-danger);
1182
+ color: var(--cyber-danger);
1183
+ }
1184
+
1185
+ .cyber-alert-body {
1186
+ color: var(--cyber-text-muted);
1187
+ }
1188
+
1189
+ .cyber-progress {
1190
+ min-block-size: .7rem;
1191
+ block-size: .7rem;
1192
+ height: .7rem;
1193
+ padding: .1rem;
1194
+ background: repeating-linear-gradient(110deg, var(--cyber-surface-soft) 0 .58rem, transparent .58rem .72rem);
1195
+ border: 1px solid var(--cyber-border);
1196
+ border-radius: .08rem;
1197
+ box-shadow: inset .16rem 0 0 rgb(var(--cyber-primary-rgb) / .16);
1198
+ clip-path: polygon(0 .28rem, .28rem 0, 100% 0, 100% 100%, .28rem 100%, 0 calc(100% - .28rem));
1199
+ }
1200
+
1201
+ .cyber-progress-bar {
1202
+ background: repeating-linear-gradient(110deg, var(--cyber-primary) 0 .58rem, var(--cyber-primary-hover) .58rem .72rem);
1203
+ border-radius: .04rem;
1204
+ box-shadow: 0 0 .55rem rgb(var(--cyber-primary-rgb) / .22);
1205
+ }
1206
+
1207
+ .cyber-table th,
1208
+ .cyber-table td {
1209
+ padding: .5rem .65rem;
1210
+ border-bottom: 1px solid rgb(var(--cyber-border-rgb) / .46);
1211
+ }
1212
+
1213
+ .cyber-table th {
1214
+ background: linear-gradient(90deg, rgb(var(--cyber-primary-rgb) / .16), transparent);
1215
+ color: var(--cyber-text);
1216
+ font-family: var(--cyber-font-mono);
1217
+ font-size: .68rem;
1218
+ font-weight: 800;
1219
+ letter-spacing: .045em;
1220
+ }
1221
+
1222
+ .cyber-table td {
1223
+ color: var(--cyber-text-muted);
1224
+ }
1225
+
1226
+ .cyber-tooltip,
1227
+ [data-ui="cyberpunk"] :where(.ui-tooltip, [role="tooltip"], [data-tooltip]) {
1228
+ background: var(--cyber-surface-strong);
1229
+ color: var(--cyber-text);
1230
+ border: 1px solid var(--cyber-primary);
1231
+ border-radius: .04rem;
1232
+ box-shadow: 0 0 .75rem rgb(var(--cyber-primary-rgb) / .16);
1233
+ clip-path: polygon(0 .35rem, .35rem 0, 100% 0, 100% calc(100% - .35rem), calc(100% - .35rem) 100%, 0 100%);
1234
+ }
1235
+
1236
+ .cyber-spinner,
1237
+ .cyber-loading-spinner,
1238
+ [data-ui="cyberpunk"] :where(.ui-spinner, .loading-spinner, [data-loading-spinner]) {
1239
+ border-radius: 50%;
1240
+ clip-path: none;
1241
+ background: none;
1242
+ box-shadow: 0 0 .75rem rgb(var(--cyber-primary-rgb) / .18);
1243
+ }
1244
+
1245
+ .cyber-button[aria-busy="true"]::after,
1246
+ .cyber-icon-button[aria-busy="true"]::after,
1247
+ [data-ui="cyberpunk"] :where(button[aria-busy="true"], input[type="button"][aria-busy="true"], input[type="submit"][aria-busy="true"], input[type="reset"][aria-busy="true"])::after {
1248
+ border: .14em solid rgb(var(--cyber-primary-rgb) / .32);
1249
+ border-block-start-color: currentColor;
1250
+ border-radius: 50%;
1251
+ background: none;
1252
+ box-shadow: none;
1253
+ clip-path: none;
1254
+ animation: cyber-spin .75s linear infinite;
1255
+ }
1256
+
1257
+ .cyber-icon-medallion,
1258
+ .cyber-badge-seal {
1259
+ border: 1px solid var(--cyber-primary);
1260
+ border-radius: .04rem;
1261
+ box-shadow: 0 0 .75rem rgb(var(--cyber-primary-rgb) / .18);
1262
+ clip-path: polygon(24% 0, 76% 0, 100% 24%, 100% 76%, 76% 100%, 24% 100%, 0 76%, 0 24%);
1263
+ }
1264
+
1265
+ .cyber-feature-item > .cyber-icon-medallion {
1266
+ inline-size: 2.75rem;
1267
+ block-size: 2.75rem;
1268
+ font-size: 1.1rem;
1269
+ }
1270
+
1271
+ .cyber-callout-bar > .cyber-icon-medallion {
1272
+ min-inline-size: 3.25rem;
1273
+ min-block-size: 3.25rem;
1274
+ font-size: 1.35rem;
1275
+ }
1276
+
1277
+ .cyber-button.cyber-button-cut,
1278
+ .cyber-button-cut,
1279
+ .cyber-button.cyber-button-outline-heavy,
1280
+ .cyber-button-outline-heavy {
1281
+ border-width: 1px;
1282
+ clip-path: polygon(0 .5rem, .5rem 0, calc(100% - .75rem) 0, 100% .75rem, 100% calc(100% - .4375rem), calc(100% - .4375rem) 100%, 0 100%);
1283
+ }
1284
+
1285
+ [data-ui="cyberpunk"][data-mode] :where(button:not([class]), input[type="button"]:not([class]), input[type="submit"]:not([class]), input[type="reset"]:not([class])) {
1286
+ min-block-size: 2.75rem;
1287
+ min-height: 2.75rem;
1288
+ background-color: var(--cyber-primary);
1289
+ background-image: none;
1290
+ color: var(--cyber-on-primary);
1291
+ border: 1px solid var(--cyber-primary);
1292
+ border-radius: .04rem;
1293
+ box-shadow: 0 0 .75rem rgb(var(--cyber-primary-rgb) / .18);
1294
+ clip-path: polygon(0 .5rem, .5rem 0, calc(100% - .75rem) 0, 100% .75rem, 100% calc(100% - .4375rem), calc(100% - .4375rem) 100%, 0 100%);
1295
+ }
1296
+
1297
+ [data-ui="cyberpunk"][data-mode] :where(input:not([type]):not([class]), input[type="text"]:not([class]), input[type="email"]:not([class]), input[type="search"]:not([class]), input[type="number"]:not([class]), input[type="date"]:not([class]), input[type="time"]:not([class]), textarea:not([class]), select:not([class])) {
1298
+ min-block-size: 2.75rem;
1299
+ min-height: 2.75rem;
1300
+ background-color: rgb(var(--cyber-surface-soft-rgb) / var(--cyber-panel-soft-alpha));
1301
+ background-image: linear-gradient(135deg, rgb(var(--cyber-primary-rgb) / .1), transparent 58%);
1302
+ color: var(--cyber-text);
1303
+ border: 1px solid var(--cyber-primary);
1304
+ border-radius: .03rem;
1305
+ box-shadow: inset .16rem 0 0 rgb(var(--cyber-primary-rgb) / .16);
1306
+ clip-path: polygon(0 .4375rem, .4375rem 0, 100% 0, 100% calc(100% - .4375rem), calc(100% - .4375rem) 100%, 0 100%);
1307
+ }
1308
+
1309
+ [data-ui="cyberpunk"][data-mode] :where(select:not([class])) {
1310
+ appearance: none;
1311
+ background-image: linear-gradient(135deg, rgb(var(--cyber-primary-rgb) / .1), transparent 58%), var(--usk-native-select-indicator-image);
1312
+ background-position: 0 0, var(--usk-native-select-indicator-position);
1313
+ background-repeat: no-repeat;
1314
+ background-size: auto, var(--usk-native-select-indicator-size);
1315
+ padding-inline-end: var(--usk-native-select-padding-inline-end);
1316
+ }
1317
+
1318
+ [data-ui="cyberpunk"][data-mode] :where(input[aria-invalid="true"], textarea[aria-invalid="true"], select[aria-invalid="true"]) {
1319
+ border-color: var(--cyber-danger);
1320
+ box-shadow: 0 0 0 2px rgb(var(--cyber-danger-rgb) / .2), inset .16rem 0 0 rgb(var(--cyber-danger-rgb) / .22);
1321
+ }
1322
+
1323
+ [data-ui="cyberpunk"][data-mode] :where(input[readonly]:not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]), textarea[readonly]) {
1324
+ border-style: dashed;
1325
+ filter: saturate(.72);
1326
+ opacity: .78;
1327
+ }
1328
+
1329
+ [data-ui="cyberpunk"][data-mode] :where(input[type="checkbox"], input[type="radio"]) {
1330
+ inline-size: var(--usk-native-choice-size);
1331
+ block-size: var(--usk-native-choice-size);
1332
+ border: var(--usk-native-choice-border);
1333
+ box-shadow: var(--usk-native-choice-shadow);
1334
+ }
1335
+
1336
+ [data-ui="cyberpunk"][data-mode] :where(input[type="checkbox"]) {
1337
+ border-radius: var(--usk-native-checkbox-radius);
1338
+ }
1339
+
1340
+ [data-ui="cyberpunk"][data-mode] :where(input[type="radio"]) {
1341
+ border-radius: var(--usk-native-radio-radius);
1342
+ }
1343
+
1344
+ [data-ui="cyberpunk"][data-mode] :where(progress, meter) {
1345
+ min-block-size: var(--usk-native-progress-size);
1346
+ min-height: var(--usk-native-progress-size);
1347
+ block-size: var(--usk-native-progress-size);
1348
+ border-radius: .08rem;
1349
+ clip-path: polygon(0 .28rem, .28rem 0, 100% 0, 100% 100%, .28rem 100%, 0 calc(100% - .28rem));
1350
+ }
1351
+
1352
+ [data-ui="cyberpunk"][data-mode] :where(fieldset, dialog, details, article:not([class]), aside:not([class])) {
1353
+ background: var(--cyber-card-bg);
1354
+ color: var(--cyber-text);
1355
+ border: 1px solid var(--cyber-border);
1356
+ border-radius: .08rem;
1357
+ box-shadow: 0 .75rem 1.75rem rgb(0 0 0 / calc(var(--cyber-shadow-alpha) * .48)), 0 0 .75rem rgb(var(--cyber-primary-rgb) / .1);
1358
+ clip-path: polygon(0 var(--cyber-cut-sm), var(--cyber-cut-sm) 0, calc(100% - .875rem) 0, 100% .875rem, 100% calc(100% - var(--cyber-cut-sm)), calc(100% - var(--cyber-cut-sm)) 100%, .75rem 100%, 0 calc(100% - .75rem));
1359
+ }
1360
+
1361
+ /* Keeps identity extraction anchored to the actual action control, not its busy glyph. */
1362
+ .cyber-button,
1363
+ .cyber-icon-button {
1364
+ border-radius: .04rem;
1365
+ }
1366
+ }
1367
+
1368
+ @layer ui-style-kit.cyberpunk {
1369
+ /**
1370
+ * Implements the retained Cyberpunk template component surface with public
1371
+ * cyber-* selectors while preserving theme-token switching and native hooks.
1372
+ */
1373
+ [data-ui="cyberpunk"][data-mode] {
1374
+ --cyber-template-line: rgb(var(--cyber-border-rgb) / max(.44, var(--cyber-border-alpha)));
1375
+ --cyber-template-line-strong: rgb(var(--cyber-primary-rgb) / max(.72, var(--cyber-border-alpha)));
1376
+ --cyber-template-surface: rgb(var(--cyber-surface-rgb) / var(--cyber-panel-alpha));
1377
+ --cyber-template-surface-strong: rgb(var(--cyber-surface-strong-rgb) / var(--cyber-panel-strong-alpha));
1378
+ --cyber-template-surface-soft: rgb(var(--cyber-surface-soft-rgb) / var(--cyber-panel-soft-alpha));
1379
+ --cyber-template-hatch: linear-gradient(135deg, rgb(var(--cyber-primary-rgb) / .12) 0 1px, transparent 1px 8px);
1380
+ --cyber-template-signal-rail: linear-gradient(90deg, var(--cyber-primary) 0 58%, transparent 58% 82%, var(--cyber-danger) 82% 100%);
1381
+ --cyber-template-cut-sm: .4375rem;
1382
+ --cyber-template-cut-md: .75rem;
1383
+ --cyber-template-glow: 0 0 .85rem rgb(var(--cyber-primary-rgb) / .18);
1384
+ --cyber-template-danger-glow: 0 0 .85rem rgb(var(--cyber-danger-rgb) / .2);
1385
+ --cyber-template-warning-glow: 0 0 .85rem rgb(var(--cyber-warning-rgb) / .16);
1386
+ --cyber-template-focus-ring: 0 0 0 2px var(--cyber-bg), 0 0 0 4px var(--cyber-focus), 0 0 .85rem rgb(var(--cyber-focus-rgb) / .24);
1387
+ }
1388
+
1389
+ .cyber-overline,
1390
+ .cyber-section-title {
1391
+ color: var(--cyber-text);
1392
+ font-family: var(--cyber-font-mono);
1393
+ font-weight: 900;
1394
+ letter-spacing: .04em;
1395
+ text-transform: uppercase;
1396
+ }
1397
+
1398
+ .cyber-overline {
1399
+ display: inline-flex;
1400
+ align-items: center;
1401
+ gap: .5rem;
1402
+ min-block-size: 1.5rem;
1403
+ color: var(--cyber-primary);
1404
+ font-size: .6875rem;
1405
+ }
1406
+
1407
+ .cyber-overline::before {
1408
+ content: "";
1409
+ display: inline-block;
1410
+ inline-size: 1.25rem;
1411
+ block-size: 1px;
1412
+ background: currentColor;
1413
+ box-shadow: .5rem 0 0 rgb(var(--cyber-danger-rgb) / .78);
1414
+ }
1415
+
1416
+ .cyber-section-title {
1417
+ position: relative;
1418
+ display: flex;
1419
+ align-items: center;
1420
+ gap: .75rem;
1421
+ margin: 0;
1422
+ padding-block: .25rem .35rem;
1423
+ color: var(--cyber-text);
1424
+ font-size: clamp(1rem, 1rem + .35vw, 1.35rem);
1425
+ line-height: 1.12;
1426
+ }
1427
+
1428
+ .cyber-section-title::before {
1429
+ content: "";
1430
+ flex: 0 0 .85rem;
1431
+ inline-size: .85rem;
1432
+ block-size: .85rem;
1433
+ background: var(--cyber-primary);
1434
+ clip-path: polygon(0 32%, 32% 0, 100% 0, 100% 68%, 68% 100%, 0 100%);
1435
+ box-shadow: 0 0 .65rem rgb(var(--cyber-primary-rgb) / .22);
1436
+ }
1437
+
1438
+ .cyber-section-title::after {
1439
+ content: "";
1440
+ flex: 1 1 4rem;
1441
+ min-inline-size: 2rem;
1442
+ block-size: .4rem;
1443
+ background: repeating-linear-gradient(90deg, rgb(var(--cyber-primary-rgb) / .56) 0 .5rem, transparent .5rem .75rem);
1444
+ opacity: .72;
1445
+ }
1446
+
1447
+ .cyber-panel,
1448
+ .cyber-card,
1449
+ .cyber-dropdown,
1450
+ .cyber-popover,
1451
+ .cyber-toast,
1452
+ .cyber-modal {
1453
+ position: relative;
1454
+ border: 1px solid var(--cyber-template-line);
1455
+ border-radius: .06rem;
1456
+ background:
1457
+ linear-gradient(135deg, rgb(var(--cyber-primary-rgb) / .1), transparent 22%) top left / 4rem 4rem no-repeat,
1458
+ var(--cyber-template-surface);
1459
+ color: var(--cyber-text);
1460
+ box-shadow:
1461
+ 0 .9rem 2rem rgb(0 0 0 / calc(var(--cyber-shadow-alpha) * .62)),
1462
+ var(--cyber-template-glow);
1463
+ clip-path: polygon(
1464
+ 0 var(--cyber-template-cut-md),
1465
+ var(--cyber-template-cut-md) 0,
1466
+ calc(100% - 1rem) 0,
1467
+ 100% 1rem,
1468
+ 100% calc(100% - var(--cyber-template-cut-md)),
1469
+ calc(100% - var(--cyber-template-cut-md)) 100%,
1470
+ .65rem 100%,
1471
+ 0 calc(100% - .65rem)
1472
+ );
1473
+ }
1474
+
1475
+ .cyber-panel::before,
1476
+ .cyber-card::before,
1477
+ .cyber-dropdown::before,
1478
+ .cyber-popover::before,
1479
+ .cyber-toast::before,
1480
+ .cyber-modal::before {
1481
+ content: "";
1482
+ position: absolute;
1483
+ inset-block-start: 0;
1484
+ inset-inline: .75rem 1rem;
1485
+ block-size: 2px;
1486
+ background: var(--cyber-template-signal-rail);
1487
+ opacity: .78;
1488
+ pointer-events: none;
1489
+ }
1490
+
1491
+ .cyber-button,
1492
+ .cyber-icon-button {
1493
+ display: inline-flex;
1494
+ align-items: center;
1495
+ justify-content: center;
1496
+ gap: .5rem;
1497
+ min-block-size: 36px;
1498
+ min-height: 36px;
1499
+ padding: .46rem .875rem;
1500
+ border: 1px solid var(--cyber-template-line-strong);
1501
+ border-radius: .04rem;
1502
+ background:
1503
+ linear-gradient(135deg, rgb(var(--cyber-primary-rgb) / .12), transparent 58%),
1504
+ var(--cyber-template-surface-strong);
1505
+ color: var(--cyber-text);
1506
+ box-shadow: inset .16rem 0 0 rgb(var(--cyber-primary-rgb) / .18);
1507
+ clip-path: polygon(0 .5rem, .5rem 0, calc(100% - .75rem) 0, 100% .75rem, 100% calc(100% - .4375rem), calc(100% - .4375rem) 100%, 0 100%);
1508
+ font-family: var(--cyber-font-control);
1509
+ font-size: .6875rem;
1510
+ font-weight: 800;
1511
+ letter-spacing: .035em;
1512
+ line-height: 1;
1513
+ text-transform: uppercase;
1514
+ transition: background-color var(--cyber-transition-fast), border-color var(--cyber-transition-fast), box-shadow var(--cyber-transition-fast), color var(--cyber-transition-fast), transform var(--cyber-transition-fast);
1515
+ }
1516
+
1517
+ .cyber-icon-button {
1518
+ inline-size: 36px;
1519
+ min-inline-size: 36px;
1520
+ padding-inline: .45rem;
1521
+ }
1522
+
1523
+ .cyber-button:hover,
1524
+ .cyber-icon-button:hover,
1525
+ .cyber-button.is-hover,
1526
+ .cyber-icon-button.is-hover {
1527
+ border-color: var(--cyber-primary);
1528
+ box-shadow: inset .16rem 0 0 rgb(var(--cyber-primary-rgb) / .32), var(--cyber-template-glow);
1529
+ }
1530
+
1531
+ .cyber-button:active,
1532
+ .cyber-icon-button:active,
1533
+ .cyber-button.is-pressed,
1534
+ .cyber-icon-button.is-pressed,
1535
+ .cyber-button[aria-pressed="true"],
1536
+ .cyber-icon-button[aria-pressed="true"] {
1537
+ transform: translateY(1px);
1538
+ box-shadow: inset 0 0 0 1px rgb(var(--cyber-primary-rgb) / .48);
1539
+ }
1540
+
1541
+ .cyber-button:focus-visible,
1542
+ .cyber-icon-button:focus-visible,
1543
+ .cyber-tab:focus-visible,
1544
+ .cyber-segment:focus-visible,
1545
+ .cyber-pagination-page:focus-visible,
1546
+ .cyber-choice:focus-within,
1547
+ .cyber-file:focus-within {
1548
+ outline: 2px solid transparent;
1549
+ outline-offset: 2px;
1550
+ box-shadow: var(--cyber-template-focus-ring);
1551
+ }
1552
+
1553
+ .cyber-button:disabled,
1554
+ .cyber-icon-button:disabled,
1555
+ .cyber-button.is-disabled,
1556
+ .cyber-icon-button.is-disabled {
1557
+ opacity: .55;
1558
+ filter: grayscale(.25);
1559
+ cursor: not-allowed;
1560
+ transform: none;
1561
+ box-shadow: inset .16rem 0 0 rgb(var(--cyber-border-rgb) / .24);
1562
+ }
1563
+
1564
+ .cyber-button[aria-busy="true"],
1565
+ .cyber-button.is-loading,
1566
+ .cyber-icon-button[aria-busy="true"],
1567
+ .cyber-icon-button.is-loading {
1568
+ position: relative;
1569
+ color: var(--cyber-loading-text, var(--cyber-text));
1570
+ pointer-events: none;
1571
+ }
1572
+
1573
+ .cyber-button.is-loading::before,
1574
+ .cyber-icon-button.is-loading::before {
1575
+ content: "";
1576
+ position: relative;
1577
+ flex: 0 0 auto;
1578
+ inline-size: .95rem;
1579
+ block-size: .95rem;
1580
+ border: 2px solid rgb(var(--cyber-primary-rgb) / .32);
1581
+ border-block-start-color: var(--cyber-on-primary);
1582
+ border-radius: 50%;
1583
+ animation: cyber-spin .75s linear infinite;
1584
+ }
1585
+
1586
+ .cyber-button-primary {
1587
+ --cyber-loading-text: var(--cyber-on-primary);
1588
+ border-color: var(--cyber-primary-action-color, var(--cyber-primary));
1589
+ background-color: var(--cyber-primary-action-color, var(--cyber-primary));
1590
+ background-image: none;
1591
+ color: var(--cyber-on-primary);
1592
+ box-shadow: 0 0 .85rem rgb(var(--cyber-primary-rgb) / .22);
1593
+ }
1594
+
1595
+ .cyber-button-primary:hover,
1596
+ .cyber-button-primary.is-hover {
1597
+ --cyber-primary-action-color: var(--cyber-primary-hover);
1598
+ }
1599
+
1600
+ .cyber-button-secondary {
1601
+ border-color: var(--cyber-template-line);
1602
+ background-color: var(--cyber-template-surface-strong);
1603
+ background-image: linear-gradient(135deg, rgb(var(--cyber-secondary-rgb) / .28), transparent 60%);
1604
+ color: var(--cyber-text);
1605
+ }
1606
+
1607
+ .cyber-button-ghost {
1608
+ border-color: transparent;
1609
+ background-color: transparent;
1610
+ background-image: none;
1611
+ color: var(--cyber-primary);
1612
+ box-shadow: none;
1613
+ }
1614
+
1615
+ .cyber-button-danger {
1616
+ --cyber-loading-text: var(--cyber-danger);
1617
+ border-color: var(--cyber-danger);
1618
+ background-color: rgb(var(--cyber-danger-rgb) / .12);
1619
+ background-image: linear-gradient(135deg, rgb(var(--cyber-danger-rgb) / .16), transparent 62%);
1620
+ color: var(--cyber-danger);
1621
+ box-shadow: var(--cyber-template-danger-glow);
1622
+ }
1623
+
1624
+ /**
1625
+ * Lets explicit runtime foreground edits win without changing the default
1626
+ * Cyberpunk danger-outline treatment used by the reference specimen.
1627
+ */
1628
+ [data-ui="cyberpunk"][data-mode][style*="--cyber-on-danger"] .cyber-button-danger {
1629
+ color: var(--cyber-on-danger);
1630
+ }
1631
+
1632
+ .cyber-input,
1633
+ .cyber-select,
1634
+ .cyber-textarea,
1635
+ .cyber-file {
1636
+ width: 100%;
1637
+ min-block-size: 36px;
1638
+ min-height: 36px;
1639
+ padding: .5rem .75rem;
1640
+ border: 1px solid var(--cyber-field-border-color, var(--cyber-template-line));
1641
+ border-block-end-color: var(--cyber-field-border-end-color, var(--cyber-template-line-strong));
1642
+ border-radius: .03rem;
1643
+ background:
1644
+ linear-gradient(135deg, rgb(var(--cyber-primary-rgb) / .1), transparent 58%),
1645
+ var(--cyber-template-surface-soft);
1646
+ color: var(--cyber-text);
1647
+ box-shadow: inset .16rem 0 0 rgb(var(--cyber-primary-rgb) / .16);
1648
+ clip-path: polygon(0 .4375rem, .4375rem 0, 100% 0, 100% calc(100% - .4375rem), calc(100% - .4375rem) 100%, 0 100%);
1649
+ font: 700 .875rem / 1.35 var(--cyber-font-body);
1650
+ }
1651
+
1652
+ /**
1653
+ * Keeps structural field borders quiet until hover, focus, or validation state
1654
+ * promotes the relevant semantic signal token.
1655
+ */
1656
+ .cyber-input:hover,
1657
+ .cyber-select:hover,
1658
+ .cyber-textarea:hover,
1659
+ .cyber-file:hover,
1660
+ .cyber-input.is-hover,
1661
+ .cyber-select.is-hover,
1662
+ .cyber-textarea.is-hover,
1663
+ .cyber-file.is-hover {
1664
+ --cyber-field-border-color: var(--cyber-template-line-strong);
1665
+ --cyber-field-border-end-color: var(--cyber-template-line-strong);
1666
+ }
1667
+
1668
+ [data-ui="cyberpunk"] .cyber-input:focus,
1669
+ [data-ui="cyberpunk"] .cyber-select:focus,
1670
+ [data-ui="cyberpunk"] .cyber-textarea:focus,
1671
+ [data-ui="cyberpunk"] .cyber-file:focus-within,
1672
+ [data-ui="cyberpunk"] .cyber-input.is-focus,
1673
+ [data-ui="cyberpunk"] .cyber-select.is-focus,
1674
+ [data-ui="cyberpunk"] .cyber-textarea.is-focus,
1675
+ [data-ui="cyberpunk"] .cyber-file.is-focus {
1676
+ --cyber-field-border-color: var(--cyber-primary);
1677
+ --cyber-field-border-end-color: var(--cyber-primary);
1678
+ outline: 2px solid transparent;
1679
+ outline-offset: 2px;
1680
+ box-shadow: var(--cyber-template-focus-ring);
1681
+ }
1682
+
1683
+ .cyber-input[aria-invalid="true"],
1684
+ .cyber-select[aria-invalid="true"],
1685
+ .cyber-textarea[aria-invalid="true"],
1686
+ .cyber-input.is-error,
1687
+ .cyber-select.is-error,
1688
+ .cyber-textarea.is-error {
1689
+ --cyber-field-border-color: var(--cyber-danger);
1690
+ --cyber-field-border-end-color: var(--cyber-danger);
1691
+ box-shadow: var(--cyber-template-danger-glow);
1692
+ }
1693
+
1694
+ .cyber-file {
1695
+ display: grid;
1696
+ align-content: center;
1697
+ gap: .15rem;
1698
+ cursor: pointer;
1699
+ }
1700
+
1701
+ .cyber-file strong,
1702
+ .cyber-file span {
1703
+ display: block;
1704
+ min-width: 0;
1705
+ }
1706
+
1707
+ .cyber-file span span {
1708
+ color: var(--cyber-text-muted);
1709
+ font-size: .74rem;
1710
+ }
1711
+
1712
+ .cyber-textarea {
1713
+ min-block-size: 5.5rem;
1714
+ resize: vertical;
1715
+ }
1716
+
1717
+ .cyber-input-wrap {
1718
+ position: relative;
1719
+ display: flex;
1720
+ align-items: center;
1721
+ inline-size: 100%;
1722
+ }
1723
+
1724
+ .cyber-input-wrap .cyber-input,
1725
+ .cyber-input-wrap .cyber-select {
1726
+ padding-inline-end: 2.45rem;
1727
+ }
1728
+
1729
+ .cyber-input-icon {
1730
+ position: absolute;
1731
+ inset-inline-end: .75rem;
1732
+ z-index: 1;
1733
+ display: inline-grid;
1734
+ place-items: center;
1735
+ inline-size: 1.1rem;
1736
+ block-size: 1.1rem;
1737
+ color: var(--cyber-primary);
1738
+ font-family: var(--cyber-font-mono);
1739
+ font-size: .8rem;
1740
+ pointer-events: none;
1741
+ }
1742
+
1743
+ .cyber-helper,
1744
+ .cyber-error-text {
1745
+ display: flex;
1746
+ align-items: flex-start;
1747
+ gap: .4rem;
1748
+ margin-block-start: .35rem;
1749
+ font-family: var(--cyber-font-mono);
1750
+ font-size: .72rem;
1751
+ font-weight: 800;
1752
+ line-height: 1.35;
1753
+ }
1754
+
1755
+ .cyber-helper {
1756
+ color: var(--cyber-text-muted);
1757
+ }
1758
+
1759
+ .cyber-error-text {
1760
+ color: var(--cyber-danger);
1761
+ }
1762
+
1763
+ .cyber-error-text::before {
1764
+ content: "!";
1765
+ flex: 0 0 auto;
1766
+ color: var(--cyber-danger);
1767
+ }
1768
+
1769
+ .cyber-dropdown {
1770
+ display: grid;
1771
+ gap: .25rem;
1772
+ padding: .5rem;
1773
+ }
1774
+
1775
+ .cyber-option {
1776
+ display: flex;
1777
+ align-items: center;
1778
+ justify-content: space-between;
1779
+ gap: .75rem;
1780
+ min-block-size: 36px;
1781
+ padding: .45rem .65rem;
1782
+ border: 1px solid transparent;
1783
+ appearance: none;
1784
+ background: transparent;
1785
+ color: var(--cyber-text);
1786
+ box-shadow: none;
1787
+ clip-path: polygon(0 .32rem, .32rem 0, 100% 0, 100% calc(100% - .32rem), calc(100% - .32rem) 100%, 0 100%);
1788
+ font-family: var(--cyber-font-mono);
1789
+ font-size: .75rem;
1790
+ font-weight: 800;
1791
+ }
1792
+
1793
+ .cyber-option:is(:hover, :focus-visible),
1794
+ .cyber-option[aria-selected="true"],
1795
+ .cyber-option.is-active {
1796
+ border-color: var(--cyber-primary);
1797
+ background: rgb(var(--cyber-primary-rgb) / .14);
1798
+ color: var(--cyber-primary);
1799
+ outline: 0;
1800
+ }
1801
+
1802
+ .cyber-tags {
1803
+ display: flex;
1804
+ flex-wrap: wrap;
1805
+ gap: .5rem;
1806
+ align-items: center;
1807
+ }
1808
+
1809
+ .cyber-chip {
1810
+ display: inline-flex;
1811
+ align-items: center;
1812
+ gap: .35rem;
1813
+ min-block-size: 1.75rem;
1814
+ padding: .28rem .55rem;
1815
+ border: 1px solid currentColor;
1816
+ border-radius: .04rem;
1817
+ background: rgb(var(--cyber-surface-soft-rgb) / var(--cyber-panel-soft-alpha));
1818
+ color: var(--cyber-chip-color, var(--cyber-primary));
1819
+ clip-path: polygon(0 .28rem, .28rem 0, calc(100% - .28rem) 0, 100% .28rem, 100% 100%, .28rem 100%, 0 calc(100% - .28rem));
1820
+ font-family: var(--cyber-font-mono);
1821
+ font-size: .68rem;
1822
+ font-weight: 900;
1823
+ line-height: 1;
1824
+ text-transform: uppercase;
1825
+ }
1826
+
1827
+ .cyber-choice {
1828
+ display: flex;
1829
+ align-items: flex-start;
1830
+ gap: .65rem;
1831
+ min-block-size: 44px;
1832
+ padding: .62rem .7rem;
1833
+ border: 1px solid var(--cyber-template-line);
1834
+ border-radius: .04rem;
1835
+ background: var(--cyber-template-surface);
1836
+ color: var(--cyber-text);
1837
+ clip-path: polygon(0 .42rem, .42rem 0, 100% 0, 100% calc(100% - .42rem), calc(100% - .42rem) 100%, 0 100%);
1838
+ }
1839
+
1840
+ .cyber-choice input {
1841
+ margin-block-start: .15rem;
1842
+ accent-color: var(--cyber-primary);
1843
+ }
1844
+
1845
+ /**
1846
+ * Restores the platform selection mark inside labeled choice rows so checked
1847
+ * state remains explicit without introducing decorative replacement artwork.
1848
+ */
1849
+ .cyber-choice input[type="checkbox"],
1850
+ .cyber-choice input[type="radio"] {
1851
+ flex: 0 0 auto;
1852
+ inline-size: 1rem;
1853
+ block-size: 1rem;
1854
+ min-block-size: 1rem;
1855
+ padding: 0;
1856
+ appearance: auto;
1857
+ background: transparent;
1858
+ border: 0;
1859
+ box-shadow: none;
1860
+ clip-path: none;
1861
+ }
1862
+
1863
+ .cyber-choice strong,
1864
+ .cyber-choice span {
1865
+ display: block;
1866
+ }
1867
+
1868
+ .cyber-choice span {
1869
+ color: var(--cyber-text-muted);
1870
+ font-size: .78rem;
1871
+ line-height: 1.35;
1872
+ }
1873
+
1874
+ .cyber-switch {
1875
+ min-block-size: 44px;
1876
+ font-family: var(--cyber-font-mono);
1877
+ font-size: .75rem;
1878
+ font-weight: 800;
1879
+ }
1880
+
1881
+ .cyber-switch-track {
1882
+ border: 1px solid var(--cyber-template-line);
1883
+ border-radius: .12rem;
1884
+ background: var(--cyber-template-surface-soft);
1885
+ box-shadow: inset 0 0 0 1px rgb(var(--cyber-primary-rgb) / .12);
1886
+ clip-path: polygon(0 .35rem, .35rem 0, 100% 0, 100% calc(100% - .35rem), calc(100% - .35rem) 100%, 0 100%);
1887
+ }
1888
+
1889
+ .cyber-switch-thumb {
1890
+ border-radius: .08rem;
1891
+ background: var(--cyber-text-muted);
1892
+ border-color: var(--cyber-template-line);
1893
+ }
1894
+
1895
+ .cyber-switch:has(input:checked) .cyber-switch-track {
1896
+ background: var(--cyber-primary);
1897
+ border-color: var(--cyber-primary);
1898
+ box-shadow: 0 0 .75rem rgb(var(--cyber-primary-rgb) / .22);
1899
+ }
1900
+
1901
+ .cyber-switch:has(input:checked) .cyber-switch-thumb {
1902
+ background: var(--cyber-on-primary);
1903
+ border-color: var(--cyber-on-primary);
1904
+ }
1905
+
1906
+ .cyber-segmented {
1907
+ display: inline-flex;
1908
+ flex-wrap: wrap;
1909
+ gap: .25rem;
1910
+ padding: .25rem;
1911
+ border: 1px solid var(--cyber-template-line);
1912
+ background: var(--cyber-template-surface-soft);
1913
+ clip-path: polygon(0 .45rem, .45rem 0, 100% 0, 100% calc(100% - .45rem), calc(100% - .45rem) 100%, 0 100%);
1914
+ }
1915
+
1916
+ .cyber-segment {
1917
+ min-block-size: 36px;
1918
+ padding: .45rem .75rem;
1919
+ border: 1px solid transparent;
1920
+ background: transparent;
1921
+ color: var(--cyber-text-muted);
1922
+ clip-path: polygon(0 .32rem, .32rem 0, 100% 0, 100% calc(100% - .32rem), calc(100% - .32rem) 100%, 0 100%);
1923
+ font-family: var(--cyber-font-mono);
1924
+ font-size: .72rem;
1925
+ font-weight: 900;
1926
+ text-transform: uppercase;
1927
+ }
1928
+
1929
+ .cyber-segment[aria-pressed="true"],
1930
+ .cyber-segment.is-active {
1931
+ border-color: var(--cyber-primary);
1932
+ background: var(--cyber-primary);
1933
+ color: var(--cyber-on-primary);
1934
+ box-shadow: 0 0 .65rem rgb(var(--cyber-primary-rgb) / .22);
1935
+ }
1936
+
1937
+ .cyber-range {
1938
+ width: 100%;
1939
+ min-block-size: 36px;
1940
+ accent-color: var(--cyber-primary);
1941
+ background-image: linear-gradient(90deg, var(--cyber-success), var(--cyber-warning) 58%, var(--cyber-danger));
1942
+ background-size: 100% .5rem;
1943
+ background-repeat: no-repeat;
1944
+ background-position: center;
1945
+ }
1946
+
1947
+ .cyber-range-critical {
1948
+ accent-color: var(--cyber-danger);
1949
+ background-image: linear-gradient(90deg, var(--cyber-warning), var(--cyber-danger));
1950
+ }
1951
+
1952
+ .cyber-range::-webkit-slider-runnable-track {
1953
+ block-size: .5rem;
1954
+ border: 1px solid var(--cyber-template-line);
1955
+ border-radius: .08rem;
1956
+ background: linear-gradient(90deg, var(--cyber-success), var(--cyber-warning) 58%, var(--cyber-danger));
1957
+ box-shadow: var(--cyber-template-glow);
1958
+ }
1959
+
1960
+ .cyber-range-critical::-webkit-slider-runnable-track {
1961
+ background: linear-gradient(90deg, var(--cyber-warning), var(--cyber-danger));
1962
+ }
1963
+
1964
+ .cyber-range::-webkit-slider-thumb {
1965
+ inline-size: 1.25rem;
1966
+ block-size: 1.25rem;
1967
+ margin-block-start: -.45rem;
1968
+ border: 1px solid var(--cyber-template-line);
1969
+ border-radius: .08rem;
1970
+ background: var(--cyber-template-surface-strong);
1971
+ box-shadow: 0 0 .6rem rgb(var(--cyber-primary-rgb) / .22);
1972
+ clip-path: polygon(0 .28rem, .28rem 0, 100% 0, 100% calc(100% - .28rem), calc(100% - .28rem) 100%, 0 100%);
1973
+ }
1974
+
1975
+ .cyber-range::-moz-range-track {
1976
+ block-size: .5rem;
1977
+ border: 1px solid var(--cyber-template-line);
1978
+ border-radius: .08rem;
1979
+ background: linear-gradient(90deg, var(--cyber-success), var(--cyber-warning) 58%, var(--cyber-danger));
1980
+ box-shadow: var(--cyber-template-glow);
1981
+ }
1982
+
1983
+ .cyber-range-critical::-moz-range-track {
1984
+ background: linear-gradient(90deg, var(--cyber-warning), var(--cyber-danger));
1985
+ }
1986
+
1987
+ .cyber-range::-moz-range-thumb {
1988
+ inline-size: 1.25rem;
1989
+ block-size: 1.25rem;
1990
+ border: 1px solid var(--cyber-template-line);
1991
+ border-radius: .08rem;
1992
+ background: var(--cyber-template-surface-strong);
1993
+ box-shadow: 0 0 .6rem rgb(var(--cyber-primary-rgb) / .22);
1994
+ clip-path: polygon(0 .28rem, .28rem 0, 100% 0, 100% calc(100% - .28rem), calc(100% - .28rem) 100%, 0 100%);
1995
+ }
1996
+
1997
+ .cyber-progress-magenta .cyber-progress-bar,
1998
+ .cyber-progress-bar.cyber-progress-magenta {
1999
+ background: repeating-linear-gradient(110deg, var(--cyber-danger) 0 .58rem, var(--cyber-accent) .58rem .72rem);
2000
+ box-shadow: 0 0 .6rem rgb(var(--cyber-danger-rgb) / .22);
2001
+ }
2002
+
2003
+ .cyber-meter {
2004
+ position: relative;
2005
+ min-block-size: .85rem;
2006
+ block-size: .85rem;
2007
+ border: 1px solid var(--cyber-template-line);
2008
+ border-radius: .08rem;
2009
+ background:
2010
+ linear-gradient(90deg, var(--cyber-success) 0 46%, var(--cyber-warning) 46% 72%, var(--cyber-danger) 72% 100%),
2011
+ var(--cyber-template-surface-soft);
2012
+ box-shadow: inset .16rem 0 0 rgb(var(--cyber-primary-rgb) / .16);
2013
+ clip-path: polygon(0 .28rem, .28rem 0, 100% 0, 100% 100%, .28rem 100%, 0 calc(100% - .28rem));
2014
+ }
2015
+
2016
+ .cyber-meter::after {
2017
+ content: "";
2018
+ position: absolute;
2019
+ inset-block: 0;
2020
+ inset-inline-start: var(--cyber-meter-value, 68%);
2021
+ inline-size: 2px;
2022
+ background: var(--cyber-text);
2023
+ box-shadow: 0 0 .5rem rgb(var(--cyber-text-rgb) / .35);
2024
+ }
2025
+
2026
+ .cyber-stepper {
2027
+ position: relative;
2028
+ display: flex;
2029
+ align-items: flex-start;
2030
+ justify-content: space-between;
2031
+ gap: .5rem;
2032
+ padding: .75rem;
2033
+ border: 1px solid var(--cyber-template-line);
2034
+ background: var(--cyber-template-surface);
2035
+ clip-path: polygon(0 .5rem, .5rem 0, 100% 0, 100% calc(100% - .5rem), calc(100% - .5rem) 100%, 0 100%);
2036
+ list-style: none;
2037
+ }
2038
+
2039
+ .cyber-stepper::before {
2040
+ content: "";
2041
+ position: absolute;
2042
+ inset-block-start: 1.625rem;
2043
+ inset-inline: 1.625rem;
2044
+ block-size: 1px;
2045
+ background: linear-gradient(90deg, var(--cyber-primary), var(--cyber-template-line-strong));
2046
+ }
2047
+
2048
+ .cyber-step {
2049
+ position: relative;
2050
+ z-index: 1;
2051
+ display: grid;
2052
+ flex: 1 1 0;
2053
+ gap: .6rem;
2054
+ justify-items: center;
2055
+ align-items: start;
2056
+ color: var(--cyber-text-muted);
2057
+ text-align: center;
2058
+ }
2059
+
2060
+ .cyber-step::before {
2061
+ content: attr(data-step);
2062
+ display: inline-grid;
2063
+ place-items: center;
2064
+ inline-size: 1.75rem;
2065
+ block-size: 1.75rem;
2066
+ border: 1px solid var(--cyber-template-line);
2067
+ background: var(--cyber-template-surface-soft);
2068
+ color: var(--cyber-text);
2069
+ clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);
2070
+ font-family: var(--cyber-font-mono);
2071
+ font-size: .68rem;
2072
+ font-weight: 900;
2073
+ }
2074
+
2075
+ .cyber-step.is-active {
2076
+ color: var(--cyber-text);
2077
+ }
2078
+
2079
+ .cyber-step > span {
2080
+ display: grid;
2081
+ gap: .15rem;
2082
+ min-width: 0;
2083
+ justify-items: center;
2084
+ }
2085
+
2086
+ .cyber-step strong,
2087
+ .cyber-step .cyber-text-muted {
2088
+ display: block;
2089
+ }
2090
+
2091
+ .cyber-step.is-active::before {
2092
+ border-color: var(--cyber-primary);
2093
+ background: var(--cyber-primary);
2094
+ color: var(--cyber-on-primary);
2095
+ }
2096
+
2097
+ .cyber-toast {
2098
+ display: grid;
2099
+ gap: .35rem;
2100
+ max-inline-size: 26rem;
2101
+ padding: .8rem .9rem;
2102
+ border-color: var(--cyber-primary);
2103
+ box-shadow: var(--cyber-template-glow);
2104
+ }
2105
+
2106
+ .cyber-skeleton {
2107
+ display: block;
2108
+ inline-size: 100%;
2109
+ min-block-size: 1rem;
2110
+ border: 1px solid rgb(var(--cyber-border-rgb) / .42);
2111
+ border-radius: .04rem;
2112
+ background:
2113
+ linear-gradient(90deg, transparent, rgb(var(--cyber-primary-rgb) / .16), transparent),
2114
+ var(--cyber-template-surface-soft);
2115
+ background-size: 12rem 100%, auto;
2116
+ clip-path: polygon(0 .3rem, .3rem 0, 100% 0, 100% calc(100% - .3rem), calc(100% - .3rem) 100%, 0 100%);
2117
+ animation: cyber-skeleton-scan 1.35s linear infinite;
2118
+ }
2119
+
2120
+ .cyber-breadcrumb,
2121
+ .cyber-tabs,
2122
+ .cyber-pagination {
2123
+ display: flex;
2124
+ flex-wrap: wrap;
2125
+ gap: .4rem;
2126
+ align-items: center;
2127
+ }
2128
+
2129
+ .cyber-breadcrumb {
2130
+ color: var(--cyber-text-muted);
2131
+ font-family: var(--cyber-font-mono);
2132
+ font-size: .72rem;
2133
+ font-weight: 800;
2134
+ }
2135
+
2136
+ .cyber-breadcrumb a {
2137
+ color: var(--cyber-primary);
2138
+ }
2139
+
2140
+ .cyber-breadcrumb span + span::before,
2141
+ .cyber-breadcrumb a + span::before,
2142
+ .cyber-breadcrumb a + a::before,
2143
+ .cyber-breadcrumb span + a::before {
2144
+ content: "/";
2145
+ margin-inline: .15rem .45rem;
2146
+ color: var(--cyber-danger);
2147
+ }
2148
+
2149
+ .cyber-tabs,
2150
+ .cyber-pagination {
2151
+ padding: .3rem;
2152
+ border: 1px solid var(--cyber-template-line);
2153
+ background: var(--cyber-template-surface-soft);
2154
+ clip-path: polygon(0 .45rem, .45rem 0, 100% 0, 100% calc(100% - .45rem), calc(100% - .45rem) 100%, 0 100%);
2155
+ }
2156
+
2157
+ .cyber-tab,
2158
+ .cyber-pagination-page {
2159
+ display: inline-flex;
2160
+ align-items: center;
2161
+ justify-content: center;
2162
+ min-block-size: 36px;
2163
+ min-inline-size: 36px;
2164
+ padding: .45rem .7rem;
2165
+ border: 1px solid transparent;
2166
+ background: transparent;
2167
+ color: var(--cyber-text-muted);
2168
+ clip-path: polygon(0 .32rem, .32rem 0, 100% 0, 100% calc(100% - .32rem), calc(100% - .32rem) 100%, 0 100%);
2169
+ font-family: var(--cyber-font-mono);
2170
+ font-size: .72rem;
2171
+ font-weight: 900;
2172
+ text-decoration: none;
2173
+ text-transform: uppercase;
2174
+ }
2175
+
2176
+ .cyber-tab[aria-selected="true"],
2177
+ .cyber-tab.is-active,
2178
+ .cyber-pagination-page[aria-current="page"],
2179
+ .cyber-pagination-page.is-active {
2180
+ border-color: var(--cyber-primary);
2181
+ background: var(--cyber-primary);
2182
+ color: var(--cyber-on-primary);
2183
+ box-shadow: 0 0 .65rem rgb(var(--cyber-primary-rgb) / .2);
2184
+ }
2185
+
2186
+ .cyber-avatar-group {
2187
+ display: flex;
2188
+ align-items: center;
2189
+ padding-inline-start: .35rem;
2190
+ }
2191
+
2192
+ .cyber-avatar {
2193
+ display: inline-grid;
2194
+ place-items: center;
2195
+ inline-size: 2.25rem;
2196
+ block-size: 2.25rem;
2197
+ border: 1px solid var(--cyber-template-line-strong);
2198
+ background: linear-gradient(135deg, rgb(var(--cyber-primary-rgb) / .24), rgb(var(--cyber-danger-rgb) / .18)), var(--cyber-template-surface-strong);
2199
+ color: var(--cyber-text);
2200
+ clip-path: polygon(0 .45rem, .45rem 0, 100% 0, 100% calc(100% - .45rem), calc(100% - .45rem) 100%, 0 100%);
2201
+ font-family: var(--cyber-font-mono);
2202
+ font-size: .72rem;
2203
+ font-weight: 900;
2204
+ }
2205
+
2206
+ .cyber-avatar-group .cyber-avatar + .cyber-avatar {
2207
+ margin-inline-start: -.45rem;
2208
+ }
2209
+
2210
+ .cyber-list {
2211
+ display: grid;
2212
+ gap: .5rem;
2213
+ margin: 0;
2214
+ padding: 0;
2215
+ list-style: none;
2216
+ }
2217
+
2218
+ .cyber-list li {
2219
+ display: flex;
2220
+ gap: .6rem;
2221
+ align-items: start;
2222
+ min-block-size: 36px;
2223
+ padding: .5rem .65rem;
2224
+ border: 1px solid var(--cyber-template-line);
2225
+ background: var(--cyber-template-surface-soft);
2226
+ clip-path: polygon(0 .35rem, .35rem 0, 100% 0, 100% calc(100% - .35rem), calc(100% - .35rem) 100%, 0 100%);
2227
+ }
2228
+
2229
+ .cyber-list li::before {
2230
+ content: "";
2231
+ inline-size: .55rem;
2232
+ block-size: .55rem;
2233
+ margin-block-start: .3rem;
2234
+ background: var(--cyber-primary);
2235
+ clip-path: polygon(0 35%, 35% 0, 100% 0, 100% 65%, 65% 100%, 0 100%);
2236
+ }
2237
+
2238
+ .cyber-popover {
2239
+ max-inline-size: 18rem;
2240
+ padding: .85rem;
2241
+ }
2242
+
2243
+ .cyber-modal {
2244
+ max-inline-size: 34rem;
2245
+ padding: 1rem;
2246
+ }
2247
+
2248
+ .cyber-modal-actions {
2249
+ display: flex;
2250
+ flex-wrap: wrap;
2251
+ justify-content: flex-end;
2252
+ gap: .5rem;
2253
+ margin-block-start: 1rem;
2254
+ }
2255
+
2256
+ .cyber-accordion {
2257
+ display: grid;
2258
+ border: 1px solid var(--cyber-template-line);
2259
+ background: var(--cyber-template-surface);
2260
+ clip-path: polygon(0 .5rem, .5rem 0, 100% 0, 100% calc(100% - .5rem), calc(100% - .5rem) 100%, 0 100%);
2261
+ }
2262
+
2263
+ .cyber-accordion summary {
2264
+ min-block-size: 44px;
2265
+ padding: .75rem .85rem;
2266
+ color: var(--cyber-text);
2267
+ cursor: pointer;
2268
+ font-family: var(--cyber-font-mono);
2269
+ font-size: .78rem;
2270
+ font-weight: 900;
2271
+ text-transform: uppercase;
2272
+ }
2273
+
2274
+ .cyber-accordion summary:focus-visible {
2275
+ outline: 2px solid transparent;
2276
+ outline-offset: 2px;
2277
+ box-shadow: var(--cyber-template-focus-ring);
2278
+ }
2279
+
2280
+ .cyber-accordion > div {
2281
+ padding: 0 .85rem .85rem;
2282
+ color: var(--cyber-text-muted);
2283
+ }
2284
+
2285
+ .cyber-code {
2286
+ display: block;
2287
+ margin: 0;
2288
+ padding: .85rem;
2289
+ overflow: auto;
2290
+ border: 1px solid var(--cyber-template-line);
2291
+ background:
2292
+ linear-gradient(90deg, rgb(var(--cyber-primary-rgb) / .12) 1px, transparent 1px),
2293
+ var(--cyber-template-surface-strong);
2294
+ background-size: .75rem .75rem, auto;
2295
+ color: var(--cyber-text);
2296
+ clip-path: polygon(0 .45rem, .45rem 0, 100% 0, 100% calc(100% - .45rem), calc(100% - .45rem) 100%, 0 100%);
2297
+ font-family: var(--cyber-font-mono);
2298
+ font-size: .78rem;
2299
+ line-height: 1.55;
2300
+ white-space: pre-wrap;
2301
+ }
2302
+
2303
+ .cyber-code .token-key {
2304
+ color: var(--cyber-primary);
2305
+ }
2306
+
2307
+ .cyber-code .token-value {
2308
+ color: var(--cyber-warning);
2309
+ }
2310
+
2311
+ .cyber-quote {
2312
+ margin: 0;
2313
+ padding: .85rem 1rem;
2314
+ border-inline-start: .25rem solid var(--cyber-danger);
2315
+ background:
2316
+ linear-gradient(135deg, rgb(var(--cyber-danger-rgb) / .1), transparent 56%),
2317
+ var(--cyber-template-surface);
2318
+ color: var(--cyber-text);
2319
+ clip-path: polygon(0 .45rem, .45rem 0, 100% 0, 100% calc(100% - .45rem), calc(100% - .45rem) 100%, 0 100%);
2320
+ font-family: var(--cyber-font-body);
2321
+ }
2322
+
2323
+ .cyber-token-swatch {
2324
+ display: grid;
2325
+ grid-template-columns: 2.5rem minmax(0, 1fr);
2326
+ gap: .65rem;
2327
+ align-items: center;
2328
+ min-block-size: 3rem;
2329
+ padding: .45rem;
2330
+ border: 1px solid var(--cyber-template-line);
2331
+ background: var(--cyber-template-surface);
2332
+ color: var(--cyber-text);
2333
+ clip-path: polygon(0 .45rem, .45rem 0, 100% 0, 100% calc(100% - .45rem), calc(100% - .45rem) 100%, 0 100%);
2334
+ }
2335
+
2336
+ .cyber-token-swatch i {
2337
+ display: block;
2338
+ inline-size: 2.15rem;
2339
+ block-size: 2.15rem;
2340
+ border: 1px solid var(--cyber-template-line);
2341
+ background:
2342
+ linear-gradient(135deg, var(--cyber-token-swatch-color, var(--cyber-primary)), rgb(var(--cyber-surface-strong-rgb) / .2)),
2343
+ var(--cyber-template-hatch);
2344
+ clip-path: polygon(0 .45rem, .45rem 0, 100% 0, 100% calc(100% - .45rem), calc(100% - .45rem) 100%, 0 100%);
2345
+ }
2346
+
2347
+ .cyber-token-swatch strong,
2348
+ .cyber-token-swatch span {
2349
+ display: block;
2350
+ min-width: 0;
2351
+ }
2352
+
2353
+ .cyber-token-swatch span {
2354
+ color: var(--cyber-text-muted);
2355
+ font-family: var(--cyber-font-mono);
2356
+ font-size: .7rem;
2357
+ overflow-wrap: break-word;
2358
+ }
2359
+
2360
+ @keyframes cyber-skeleton-scan {
2361
+ from {
2362
+ background-position: -12rem 0, 0 0;
2363
+ }
2364
+
2365
+ to {
2366
+ background-position: 12rem 0, 0 0;
2367
+ }
2368
+ }
2369
+
2370
+ @media (prefers-reduced-motion: reduce) {
2371
+ .cyber-skeleton {
2372
+ animation: none;
2373
+ }
2374
+ }
2375
+ /** Warning actions inherit preset geometry and use the paired semantic warning colors. */
2376
+ [data-ui="cyberpunk"][data-mode] .cyber-button.cyber-button-warning {
2377
+ background: var(--cyber-warning);
2378
+ color: var(--cyber-on-warning);
2379
+ border-color: var(--cyber-warning);
2380
+ text-shadow: none;
2381
+ }
2382
+
2383
+ }
2384
+
2385
+ /**
2386
+ * Preserves shared annotation fixture spacing and icon weight after reference
2387
+ * overrides append their compact source rules.
2388
+ */
2389
+ [data-ui="cyberpunk"][data-mode] .cyber-title {
2390
+ margin-block: max(.75rem, 12px);
2391
+ letter-spacing: max(.08em, .5px);
2392
+ }
2393
+
2394
+ [data-ui="cyberpunk"][data-mode] .cyber-feature-item > .cyber-icon-medallion {
2395
+ font-size: 1.5rem;
2396
+ line-height: 1;
2397
+ }
2398
+
2399
+ [data-ui="cyberpunk"][data-mode] .cyber-callout-bar > .cyber-icon-medallion {
2400
+ min-inline-size: 4.5rem;
2401
+ min-block-size: 4.5rem;
2402
+ font-size: 2rem;
2403
+ font-weight: 800;
2404
+ line-height: 1;
2405
+ }