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
@@ -37,16 +37,39 @@
37
37
  --rg-transition-base: 220ms ease;
38
38
  --rg-transition-slow: 360ms ease;
39
39
 
40
- --rg-font-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
41
- --rg-font-display: Orbitron, Rajdhani, Eurostile, "Bank Gothic", var(--rg-font-sans);
40
+ --rg-font-sans: "DejaVu Sans", Arial, sans-serif;
41
+ --rg-font-display: var(--rg-font-sans);
42
42
  --rg-font-body: var(--rg-font-sans);
43
43
  --rg-font-heading: var(--rg-font-display);
44
44
  --rg-font-control: var(--rg-font-display);
45
- --rg-font-mono: "JetBrains Mono", "SFMono-Regular", Consolas, "Liberation Mono", monospace;
45
+ --rg-font-mono: "DejaVu Sans Mono", Consolas, monospace;
46
46
  }
47
47
 
48
48
  [data-ui="retro-glass"][data-mode="light"] {
49
49
  color-scheme: light;
50
+ --rg-fallback-bg-rgb: 216 222 229;
51
+ --rg-fallback-surface-rgb: 246 249 252;
52
+ --rg-fallback-surface-strong-rgb: 255 255 255;
53
+ --rg-fallback-surface-soft-rgb: 223 229 235;
54
+ --rg-fallback-text-rgb: 28 39 49;
55
+ --rg-fallback-text-muted-rgb: 68 81 94;
56
+ --rg-fallback-border-rgb: 110 120 130;
57
+ --rg-fallback-primary-rgb: 11 99 216;
58
+ --rg-fallback-primary-hover-rgb: 8 85 190;
59
+ --rg-fallback-primary-text-rgb: 255 255 255;
60
+ --rg-fallback-secondary-rgb: 223 229 235;
61
+ --rg-fallback-secondary-hover-rgb: 207 216 224;
62
+ --rg-fallback-secondary-text-rgb: 28 39 49;
63
+ --rg-fallback-accent-rgb: 216 137 0;
64
+ --rg-fallback-accent-text-rgb: 0 0 0;
65
+ --rg-fallback-success-rgb: 76 147 0;
66
+ --rg-fallback-success-text-rgb: 0 0 0;
67
+ --rg-fallback-warning-rgb: 216 137 0;
68
+ --rg-fallback-warning-text-rgb: 0 0 0;
69
+ --rg-fallback-danger-rgb: 216 61 50;
70
+ --rg-fallback-danger-text-rgb: 0 0 0;
71
+ --rg-fallback-link-rgb: 8 75 158;
72
+ --rg-fallback-focus-rgb: 20 120 233;
50
73
  --rg-panel-alpha: 0.92;
51
74
  --rg-panel-strong-alpha: 0.98;
52
75
  --rg-panel-soft-alpha: 0.74;
@@ -54,10 +77,41 @@
54
77
  --rg-glow-alpha: 0.24;
55
78
  --rg-shadow-alpha: 0.18;
56
79
  --rg-grid-alpha: 0.075;
80
+ --rg-brush-line: rgb(var(--rg-text-rgb) / .035);
81
+ --rg-glass-highlight: rgb(255 255 255 / .88);
82
+ --rg-glass-midlight: rgb(255 255 255 / .36);
83
+ --rg-material-shadow: rgb(var(--rg-text-rgb) / .2);
84
+ --rg-control-text-shadow: 0 1px 0 rgb(255 255 255 / .92);
85
+ --rg-dock-top: rgb(var(--rg-text-rgb) / .88);
86
+ --rg-dock-bottom: rgb(var(--rg-text-rgb) / .98);
87
+ --rg-dock-text: rgb(248 250 252);
57
88
  }
58
89
 
59
90
  [data-ui="retro-glass"][data-mode="dark"] {
60
91
  color-scheme: dark;
92
+ --rg-fallback-bg-rgb: 6 16 23;
93
+ --rg-fallback-surface-rgb: 8 23 31;
94
+ --rg-fallback-surface-strong-rgb: 18 38 48;
95
+ --rg-fallback-surface-soft-rgb: 39 52 60;
96
+ --rg-fallback-text-rgb: 240 244 246;
97
+ --rg-fallback-text-muted-rgb: 192 203 209;
98
+ --rg-fallback-border-rgb: 110 126 135;
99
+ --rg-fallback-primary-rgb: 22 119 232;
100
+ --rg-fallback-primary-hover-rgb: 39 136 243;
101
+ --rg-fallback-primary-text-rgb: 0 0 0;
102
+ --rg-fallback-secondary-rgb: 39 52 60;
103
+ --rg-fallback-secondary-hover-rgb: 53 67 77;
104
+ --rg-fallback-secondary-text-rgb: 240 244 246;
105
+ --rg-fallback-accent-rgb: 255 173 0;
106
+ --rg-fallback-accent-text-rgb: 0 0 0;
107
+ --rg-fallback-success-rgb: 114 201 15;
108
+ --rg-fallback-success-text-rgb: 0 0 0;
109
+ --rg-fallback-warning-rgb: 255 173 0;
110
+ --rg-fallback-warning-text-rgb: 0 0 0;
111
+ --rg-fallback-danger-rgb: 239 69 57;
112
+ --rg-fallback-danger-text-rgb: 0 0 0;
113
+ --rg-fallback-link-rgb: 133 194 255;
114
+ --rg-fallback-focus-rgb: 59 156 255;
61
115
  --rg-panel-alpha: 0.82;
62
116
  --rg-panel-strong-alpha: 0.94;
63
117
  --rg-panel-soft-alpha: 0.58;
@@ -65,10 +119,41 @@
65
119
  --rg-glow-alpha: 0.42;
66
120
  --rg-shadow-alpha: 0.42;
67
121
  --rg-grid-alpha: 0.12;
122
+ --rg-brush-line: rgb(255 255 255 / .028);
123
+ --rg-glass-highlight: rgb(255 255 255 / .22);
124
+ --rg-glass-midlight: rgb(255 255 255 / .08);
125
+ --rg-material-shadow: rgb(0 0 0 / .62);
126
+ --rg-control-text-shadow: 0 -1px 0 rgb(0 0 0 / .86);
127
+ --rg-dock-top: rgb(var(--rg-bg-rgb) / .88);
128
+ --rg-dock-bottom: rgb(0 0 0 / .96);
129
+ --rg-dock-text: rgb(229 235 241);
68
130
  }
69
131
 
70
132
  [data-ui="retro-glass"][data-mode="contrast"] {
71
133
  color-scheme: dark;
134
+ --rg-fallback-bg-rgb: 0 0 0;
135
+ --rg-fallback-surface-rgb: 5 8 12;
136
+ --rg-fallback-surface-strong-rgb: 10 19 32;
137
+ --rg-fallback-surface-soft-rgb: 0 0 0;
138
+ --rg-fallback-text-rgb: 255 255 255;
139
+ --rg-fallback-text-muted-rgb: 242 247 255;
140
+ --rg-fallback-border-rgb: 255 255 255;
141
+ --rg-fallback-primary-rgb: 156 197 240;
142
+ --rg-fallback-primary-hover-rgb: 255 255 255;
143
+ --rg-fallback-primary-text-rgb: 0 0 0;
144
+ --rg-fallback-secondary-rgb: 0 230 255;
145
+ --rg-fallback-secondary-hover-rgb: 255 255 255;
146
+ --rg-fallback-secondary-text-rgb: 0 0 0;
147
+ --rg-fallback-accent-rgb: 230 240 255;
148
+ --rg-fallback-accent-text-rgb: 0 0 0;
149
+ --rg-fallback-success-rgb: 0 255 144;
150
+ --rg-fallback-success-text-rgb: 0 0 0;
151
+ --rg-fallback-warning-rgb: 255 212 0;
152
+ --rg-fallback-warning-text-rgb: 0 0 0;
153
+ --rg-fallback-danger-rgb: 255 92 92;
154
+ --rg-fallback-danger-text-rgb: 0 0 0;
155
+ --rg-fallback-link-rgb: 156 197 240;
156
+ --rg-fallback-focus-rgb: 255 255 255;
72
157
  --rg-panel-alpha: 1;
73
158
  --rg-panel-strong-alpha: 1;
74
159
  --rg-panel-soft-alpha: 0.92;
@@ -76,10 +161,18 @@
76
161
  --rg-glow-alpha: 0.68;
77
162
  --rg-shadow-alpha: 0.56;
78
163
  --rg-grid-alpha: 0.18;
164
+ --rg-brush-line: rgb(255 255 255 / .08);
165
+ --rg-glass-highlight: rgb(255 255 255 / .3);
166
+ --rg-glass-midlight: rgb(255 255 255 / .12);
167
+ --rg-material-shadow: rgb(0 0 0 / .82);
168
+ --rg-control-text-shadow: 0 -1px 0 #000;
169
+ --rg-dock-top: #111;
170
+ --rg-dock-bottom: #000;
171
+ --rg-dock-text: #fff;
79
172
  }
80
173
 
174
+ /** Preserves direct aliases for static extraction when a scheme is selected. */
81
175
  [data-ui="retro-glass"][data-theme][data-mode] {
82
- /* Shared scheme aliases preserve the existing prefixed token API. */
83
176
  --rg-bg-rgb: var(--usk-bg-rgb);
84
177
  --rg-surface-rgb: var(--usk-surface-rgb);
85
178
  --rg-surface-strong-rgb: var(--usk-surface-strong-rgb);
@@ -94,15 +187,43 @@
94
187
  --rg-secondary-hover-rgb: var(--usk-secondary-hover-rgb);
95
188
  --rg-secondary-text-rgb: var(--usk-secondary-text-rgb);
96
189
  --rg-accent-rgb: var(--usk-accent-rgb);
97
- --rg-success-rgb: var(--usk-success-rgb);
98
- --rg-warning-rgb: var(--usk-warning-rgb);
99
- --rg-danger-rgb: var(--usk-danger-rgb);
100
- --rg-link-rgb: var(--usk-link-rgb);
101
190
  --rg-accent-text-rgb: var(--usk-accent-text-rgb);
191
+ --rg-success-rgb: var(--usk-success-rgb);
102
192
  --rg-success-text-rgb: var(--usk-success-text-rgb);
193
+ --rg-warning-rgb: var(--usk-warning-rgb);
103
194
  --rg-warning-text-rgb: var(--usk-warning-text-rgb);
195
+ --rg-danger-rgb: var(--usk-danger-rgb);
104
196
  --rg-danger-text-rgb: var(--usk-danger-text-rgb);
197
+ --rg-link-rgb: var(--usk-link-rgb);
105
198
  --rg-focus-rgb: var(--usk-focus-rgb);
199
+ }
200
+
201
+ [data-ui="retro-glass"][data-mode] {
202
+ --usk-native-bg: var(--rg-bg);
203
+ /* Explicit schemes win; reference colors are used only when no scheme exists. */
204
+ --rg-bg-rgb: var(--usk-bg-rgb, var(--rg-fallback-bg-rgb));
205
+ --rg-surface-rgb: var(--usk-surface-rgb, var(--rg-fallback-surface-rgb));
206
+ --rg-surface-strong-rgb: var(--usk-surface-strong-rgb, var(--rg-fallback-surface-strong-rgb));
207
+ --rg-surface-soft-rgb: var(--usk-surface-soft-rgb, var(--rg-fallback-surface-soft-rgb));
208
+ --rg-text-rgb: var(--usk-text-rgb, var(--rg-fallback-text-rgb));
209
+ --rg-text-muted-rgb: var(--usk-text-muted-rgb, var(--rg-fallback-text-muted-rgb));
210
+ --rg-border-rgb: var(--usk-border-rgb, var(--rg-fallback-border-rgb));
211
+ --rg-primary-rgb: var(--usk-primary-rgb, var(--rg-fallback-primary-rgb));
212
+ --rg-primary-hover-rgb: var(--usk-primary-hover-rgb, var(--rg-fallback-primary-hover-rgb));
213
+ --rg-primary-text-rgb: var(--usk-primary-text-rgb, var(--rg-fallback-primary-text-rgb));
214
+ --rg-secondary-rgb: var(--usk-secondary-rgb, var(--rg-fallback-secondary-rgb));
215
+ --rg-secondary-hover-rgb: var(--usk-secondary-hover-rgb, var(--rg-fallback-secondary-hover-rgb));
216
+ --rg-secondary-text-rgb: var(--usk-secondary-text-rgb, var(--rg-fallback-secondary-text-rgb));
217
+ --rg-accent-rgb: var(--usk-accent-rgb, var(--rg-fallback-accent-rgb));
218
+ --rg-accent-text-rgb: var(--usk-accent-text-rgb, var(--rg-fallback-accent-text-rgb));
219
+ --rg-success-rgb: var(--usk-success-rgb, var(--rg-fallback-success-rgb));
220
+ --rg-success-text-rgb: var(--usk-success-text-rgb, var(--rg-fallback-success-text-rgb));
221
+ --rg-warning-rgb: var(--usk-warning-rgb, var(--rg-fallback-warning-rgb));
222
+ --rg-warning-text-rgb: var(--usk-warning-text-rgb, var(--rg-fallback-warning-text-rgb));
223
+ --rg-danger-rgb: var(--usk-danger-rgb, var(--rg-fallback-danger-rgb));
224
+ --rg-danger-text-rgb: var(--usk-danger-text-rgb, var(--rg-fallback-danger-text-rgb));
225
+ --rg-link-rgb: var(--usk-link-rgb, var(--rg-fallback-link-rgb));
226
+ --rg-focus-rgb: var(--usk-focus-rgb, var(--rg-fallback-focus-rgb));
106
227
  /* Native fallback selectors inherit visual identity through shared tokens. */
107
228
  --usk-native-surface: var(--rg-surface);
108
229
  --usk-native-surface-strong: var(--rg-surface-strong);
@@ -133,6 +254,61 @@
133
254
  --usk-native-border-width: 1px;
134
255
  --usk-native-field-gap: .5rem;
135
256
  --usk-native-panel-padding: var(--rg-space-5);
257
+ --usk-native-control-min-block-size: 3rem;
258
+ --usk-native-control-padding-block: .74rem;
259
+ --usk-native-control-padding-inline: .95rem;
260
+ --usk-native-subcontrol-padding-block: .58rem;
261
+ --usk-native-subcontrol-padding-inline: .72rem;
262
+ --usk-native-choice-size: 1.5rem;
263
+ --usk-native-choice-background: var(--rg-control-bg);
264
+ --usk-native-choice-border: 1px solid var(--rg-border);
265
+ --usk-native-checkbox-radius: .28rem;
266
+ --usk-native-radio-radius: 50%;
267
+ --usk-native-choice-shadow: inset 0 1px rgb(255 255 255 / .55);
268
+ --usk-native-choice-checked-background: var(--rg-primary);
269
+ --usk-native-choice-mark-color: var(--rg-on-primary);
270
+ --usk-native-track: var(--rg-glass-inset);
271
+ --usk-native-track-fill: linear-gradient(180deg, var(--rg-primary-hover), var(--rg-primary));
272
+ --usk-native-thumb: radial-gradient(circle at 42% 30%, var(--rg-glass-highlight), transparent 32%), var(--rg-control-material);
273
+ --usk-native-thumb-border: var(--rg-border);
274
+ --usk-native-select-indicator-image: linear-gradient(57deg, transparent 50%, var(--rg-primary) 50%), linear-gradient(123deg, var(--rg-primary) 50%, transparent 50%);
275
+ --usk-native-select-indicator-size: 0.34rem 0.34rem, 0.34rem 0.34rem;
276
+ --usk-native-select-indicator-position: calc(100% - 1.16rem) 50%, calc(100% - 0.84rem) 50%;
277
+ --usk-native-select-padding-inline-end: 2.55rem;
278
+ --usk-native-range-track-size: .54rem;
279
+ --usk-native-range-track-background: var(--rg-surface-soft);
280
+ --usk-native-range-track-border: 1px solid var(--rg-border);
281
+ --usk-native-range-track-radius: .2rem;
282
+ --usk-native-range-track-shadow: inset 0 1px rgb(255 255 255 / .55);
283
+ --usk-native-range-progress-background: var(--rg-primary);
284
+ --usk-native-range-thumb-size: 1.35rem;
285
+ --usk-native-range-thumb-background: var(--rg-surface-strong);
286
+ --usk-native-range-thumb-border: 1px solid var(--rg-border);
287
+ --usk-native-range-thumb-radius: 50%;
288
+ --usk-native-range-thumb-shadow: inset 0 1px rgb(255 255 255 / .55);
289
+ --usk-native-progress-size: .72rem;
290
+ --usk-native-progress-track-background: var(--rg-surface-soft);
291
+ --usk-native-progress-track-border: 1px solid var(--rg-border);
292
+ --usk-native-progress-track-radius: .2rem;
293
+ --usk-native-progress-track-shadow: inset 0 1px rgb(255 255 255 / .55);
294
+ --usk-native-progress-value-background: var(--rg-primary);
295
+ --usk-native-progress-value-radius: .2rem;
296
+ --usk-native-progress-value-shadow: inset 0 1px rgb(255 255 255 / .55);
297
+ --usk-native-meter-optimum-background: var(--rg-success);
298
+ --usk-native-meter-suboptimum-background: var(--rg-warning);
299
+ --usk-native-meter-critical-background: var(--rg-danger);
300
+ --usk-native-file-button-background: var(--rg-primary);
301
+ --usk-native-file-button-border: 1px solid var(--rg-border);
302
+ --usk-native-file-button-radius: .28rem;
303
+ --usk-native-file-button-shadow: inset 0 1px rgb(255 255 255 / .55);
304
+ --usk-native-color-swatch-border: 1px solid var(--rg-border);
305
+ --usk-native-color-swatch-radius: .28rem;
306
+ --usk-native-indicator-opacity: 0.72;
307
+ --usk-native-indicator-filter: none;
308
+ --usk-native-scrollbar-size: .72rem;
309
+ --usk-native-scrollbar-track: var(--rg-surface-soft);
310
+ --usk-native-scrollbar-thumb: var(--rg-primary);
311
+ --usk-native-scrollbar-radius: .2rem;
136
312
  --usk-native-shadow: 0 10px 30px rgb(0 0 0 / calc(var(--rg-shadow-alpha) * .72));
137
313
  --rg-bg: rgb(var(--rg-bg-rgb));
138
314
  --rg-surface: rgb(var(--rg-surface-rgb) / var(--rg-panel-alpha));
@@ -169,17 +345,21 @@
169
345
  --rg-shadow-sm: 0 2px 8px rgb(0 0 0 / var(--rg-shadow-alpha));
170
346
  --rg-shadow-md: 0 10px 28px rgb(0 0 0 / calc(var(--rg-shadow-alpha) + 0.05));
171
347
  --rg-shadow-lg: 0 22px 60px rgb(0 0 0 / calc(var(--rg-shadow-alpha) + 0.12));
172
- --rg-theme-bg-size: auto, auto, auto, 52px 52px, 52px 52px, auto;
173
- --rg-theme-bg: radial-gradient(circle at 15% 15%, rgb(var(--rg-primary-rgb) / .18), transparent 28rem), radial-gradient(circle at 85% 10%, rgb(var(--rg-secondary-rgb) / .16), transparent 26rem), radial-gradient(circle at 50% 110%, rgb(var(--rg-accent-rgb) / .14), transparent 34rem), linear-gradient(90deg, rgb(var(--rg-border-rgb) / var(--rg-grid-alpha)) 1px, transparent 1px), linear-gradient(rgb(var(--rg-border-rgb) / var(--rg-grid-alpha)) 1px, transparent 1px), var(--rg-bg);
174
- --rg-card-bg: linear-gradient(135deg, rgb(var(--rg-primary-rgb) / .10), rgb(var(--rg-accent-rgb) / .055) 42%, rgb(var(--rg-surface-strong-rgb) / var(--rg-panel-alpha)) 100%), var(--rg-surface);
175
- --rg-control-bg: linear-gradient(180deg, rgb(var(--rg-surface-strong-rgb) / var(--rg-panel-alpha)), rgb(var(--rg-surface-soft-rgb) / var(--rg-panel-soft-alpha)));
348
+ --rg-theme-bg-size: auto;
349
+ --rg-theme-bg: repeating-linear-gradient(0deg, transparent 0 1px, var(--rg-brush-line) 1px 2px), linear-gradient(90deg, rgb(var(--rg-primary-rgb) / .025), transparent 18%, transparent 82%, rgb(var(--rg-secondary-rgb) / .025)), var(--rg-bg);
350
+ --rg-brushed-chrome: repeating-linear-gradient(0deg, transparent 0 1px, var(--rg-brush-line) 1px 2px), linear-gradient(180deg, var(--rg-glass-highlight), var(--rg-glass-midlight) 46%, rgb(var(--rg-surface-soft-rgb) / .54) 52%, rgb(var(--rg-surface-rgb) / .88));
351
+ --rg-glass-pane: linear-gradient(180deg, var(--rg-glass-highlight), rgb(var(--rg-surface-strong-rgb) / .28) 10%, rgb(var(--rg-surface-rgb) / .82) 100%);
352
+ --rg-glass-inset: linear-gradient(180deg, rgb(var(--rg-text-rgb) / .075), rgb(var(--rg-surface-rgb) / .7) 22%, rgb(var(--rg-surface-strong-rgb) / .68));
353
+ --rg-control-material: linear-gradient(180deg, var(--rg-glass-highlight), rgb(var(--rg-surface-strong-rgb) / .9) 12%, rgb(var(--rg-surface-rgb) / .72) 52%, rgb(var(--rg-surface-soft-rgb) / .9));
354
+ --rg-card-bg: var(--rg-glass-pane);
355
+ --rg-control-bg: var(--rg-control-material);
176
356
  --rg-spinner-track: rgb(var(--rg-border-rgb) / max(.28, calc(var(--rg-border-alpha) * .7)));
177
357
  --rg-spinner-stroke: var(--rg-primary);
178
358
  --rg-spinner-accent: var(--rg-accent);
179
359
  }
180
360
 
181
361
  @supports (color: color-mix(in srgb, black, white)) {
182
- [data-ui="retro-glass"][data-theme][data-mode] { --rg-border: color-mix(in srgb, rgb(var(--rg-border-rgb) / max(var(--rg-border-alpha), var(--usk-border-min-alpha))), var(--rg-text) var(--usk-border-text-mix)); }
362
+ [data-ui="retro-glass"][data-mode] { --rg-border: color-mix(in srgb, rgb(var(--rg-border-rgb) / max(var(--rg-border-alpha), var(--usk-border-min-alpha))), var(--rg-text) var(--usk-border-text-mix)); }
183
363
  }
184
364
 
185
365
  /* =========================================================
@@ -258,26 +438,20 @@
258
438
 
259
439
  [data-ui="retro-glass"] {
260
440
  min-height: 100vh;
261
- background:
262
- radial-gradient(circle at 15% 15%, rgb(var(--rg-primary-rgb) / 0.18), transparent 28rem),
263
- radial-gradient(circle at 85% 10%, rgb(var(--rg-secondary-rgb) / 0.16), transparent 26rem),
264
- radial-gradient(circle at 50% 110%, rgb(var(--rg-accent-rgb) / 0.14), transparent 34rem),
265
- linear-gradient(90deg, rgb(var(--rg-border-rgb) / var(--rg-grid-alpha)) 1px, transparent 1px),
266
- linear-gradient(rgb(var(--rg-border-rgb) / var(--rg-grid-alpha)) 1px, transparent 1px),
267
- var(--rg-bg);
268
- background-size: auto, auto, auto, 52px 52px, 52px 52px, auto;
441
+ background: var(--rg-theme-bg, var(--rg-bg));
442
+ background-size: var(--rg-theme-bg-size, auto);
269
443
  color: var(--rg-text);
270
444
  font-family: var(--rg-font-body);
271
445
  }
272
446
  [data-ui="retro-glass"] *, [data-ui="retro-glass"] *::before, [data-ui="retro-glass"] *::after { box-sizing: border-box; }
273
- [data-ui="retro-glass"][data-theme][data-mode] { background: var(--rg-theme-bg); background-size: var(--rg-theme-bg-size); }
274
- [data-ui="retro-glass"] a { color: var(--rg-link); text-underline-offset: 0.18em; } [data-ui="retro-glass"] ::selection { background: var(--rg-primary); color: var(--rg-on-primary); }
447
+ [data-ui="retro-glass"][data-mode] { background: var(--rg-theme-bg); background-size: var(--rg-theme-bg-size); }
448
+ [data-ui="retro-glass"] :where(a) { color: var(--rg-link); text-underline-offset: 0.18em; } [data-ui="retro-glass"] ::selection { background: var(--rg-primary); color: var(--rg-on-primary); }
275
449
 
276
450
  .rg-page { min-height: 100vh; padding: clamp(1rem, 4vw, 3rem); } .rg-container { width: min(100% - 2rem, 1200px); margin-inline: auto; } .rg-stack { display: flex; flex-direction: column; gap: var(--rg-space-4); } .rg-cluster { display: flex; flex-wrap: wrap; align-items: center; gap: var(--rg-space-3); } .rg-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); gap: var(--rg-space-5); } .rg-section { padding: clamp(1.25rem, 4vw, 2.5rem); }
277
451
  .rg-title, .rg-heading, .rg-kicker, .rg-button, .rg-badge, .rg-nav-link { font-family: var(--rg-font-heading); text-transform: uppercase; } .rg-title { margin: 0; font-size: clamp(2rem, 5vw, 3.8rem); line-height: 1.02; letter-spacing: .06em; text-shadow: 0 0 14px var(--rg-glow-primary), 0 0 34px var(--rg-glow-accent); } .rg-heading { margin: 0; font-size: clamp(1.25rem, 3vw, 2rem); letter-spacing: .06em; } .rg-kicker { margin: 0; color: var(--rg-primary); font-size: .8rem; font-weight: 900; letter-spacing: .18em; } .rg-subtitle, .rg-copy { margin: 0; color: var(--rg-text-muted); line-height: 1.65; } .rg-text-muted { color: var(--rg-text-muted); }
278
452
 
279
- .rg-card, .rg-panel, .rg-console, .rg-toolbar, .rg-table-wrap { position: relative; background: linear-gradient(135deg, rgb(255 255 255 / .18), rgb(255 255 255 / .04)), linear-gradient(135deg, rgb(var(--rg-primary-rgb) / .06), transparent 52%), var(--rg-surface); color: var(--rg-text); border: 1px solid var(--rg-border); border-top-color: rgb(255 255 255 / .28); border-left-color: rgb(255 255 255 / .2); border-radius: var(--rg-radius-xl); box-shadow: var(--rg-shadow-md), 0 0 28px var(--rg-glow-primary); -webkit-backdrop-filter: blur(18px) saturate(150%); backdrop-filter: blur(18px) saturate(150%); overflow: hidden; transition: transform var(--rg-transition-base), box-shadow var(--rg-transition-base), border-color var(--rg-transition-base); }
280
- .rg-card::before, .rg-panel::before, .rg-console::before { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, rgb(255 255 255 / .1), transparent 30%), linear-gradient(90deg, transparent, rgb(var(--rg-accent-rgb) / .08), transparent); } .rg-card, .rg-panel, .rg-console { padding: var(--rg-space-6); } .rg-console { border-radius: var(--rg-radius-lg); box-shadow: var(--rg-shadow-lg), inset 0 0 28px rgb(var(--rg-primary-rgb) / .08), 0 0 32px var(--rg-glow-primary); } .rg-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--rg-space-4); padding: var(--rg-space-4); } .rg-hover-lift:hover { transform: translateY(-3px); border-color: rgb(var(--rg-primary-rgb) / .68); box-shadow: var(--rg-shadow-lg), 0 0 44px var(--rg-glow-primary), 0 0 60px var(--rg-glow-secondary); }
453
+ .rg-card, .rg-panel, .rg-console, .rg-toolbar, .rg-table-wrap { position: relative; background: linear-gradient(135deg, rgb(255 255 255 / .18), rgb(255 255 255 / .04)), linear-gradient(135deg, rgb(var(--rg-primary-rgb) / .06), transparent 52%), var(--rg-surface); color: var(--rg-text); border: 1px solid var(--rg-border); border-top-color: rgb(255 255 255 / .28); border-left-color: rgb(255 255 255 / .2); border-radius: var(--rg-radius-xl); box-shadow: var(--rg-shadow-md), 0 0 28px var(--rg-glow-primary); -webkit-backdrop-filter: blur(18px) saturate(150%); backdrop-filter: blur(18px) saturate(150%); transition: transform var(--rg-transition-base), box-shadow var(--rg-transition-base), border-color var(--rg-transition-base); }
454
+ .rg-card::before, .rg-panel::before, .rg-console::before { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, rgb(255 255 255 / .1), transparent 30%), linear-gradient(90deg, transparent, rgb(var(--rg-accent-rgb) / .08), transparent); border-radius: inherit; } .rg-card, .rg-panel, .rg-console { padding: var(--rg-space-6); } .rg-console { border-radius: var(--rg-radius-lg); box-shadow: var(--rg-shadow-lg), inset 0 0 28px rgb(var(--rg-primary-rgb) / .08), 0 0 32px var(--rg-glow-primary); } .rg-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--rg-space-4); padding: var(--rg-space-4); } .rg-hover-lift:hover { transform: translateY(-3px); border-color: rgb(var(--rg-primary-rgb) / .68); box-shadow: var(--rg-shadow-lg), 0 0 44px var(--rg-glow-primary), 0 0 60px var(--rg-glow-secondary); }
281
455
  .rg-inset, .rg-well { background: linear-gradient(180deg, rgb(0 0 0 / .08), rgb(255 255 255 / .04)), var(--rg-surface-soft); border: 1px solid rgb(var(--rg-border-rgb) / .36); border-radius: var(--rg-radius-lg); box-shadow: inset 0 8px 22px rgb(0 0 0 / .16); -webkit-backdrop-filter: blur(12px) saturate(140%); backdrop-filter: blur(12px) saturate(140%); } .rg-well { padding: var(--rg-space-5); }
282
456
 
283
457
  .rg-button, .rg-icon-button { appearance: none; display: inline-flex; align-items: center; justify-content: center; gap: var(--rg-space-2); min-height: 2.85rem; padding: .75rem 1.1rem; background: linear-gradient(135deg, rgb(255 255 255 / .24), rgb(255 255 255 / .04)), var(--rg-surface); color: var(--rg-text); border: 1px solid rgb(var(--rg-border-rgb) / .56); border-top-color: rgb(255 255 255 / .32); border-radius: var(--rg-radius-md); box-shadow: var(--rg-shadow-sm); -webkit-backdrop-filter: blur(14px) saturate(150%); backdrop-filter: blur(14px) saturate(150%); font: inherit; font-family: var(--rg-font-display); font-weight: 900; letter-spacing: .08em; cursor: pointer; text-decoration: none; transition: transform var(--rg-transition-fast), box-shadow var(--rg-transition-fast), background var(--rg-transition-fast), border-color var(--rg-transition-fast); }
@@ -302,37 +476,56 @@
302
476
  /* Theme-responsive component defaults */
303
477
  .rg-card, .rg-panel { background: var(--rg-card-bg); }
304
478
  .rg-toolbar, .rg-table-wrap { background: var(--rg-control-bg); }
305
- .rg-button:not(.rg-button-primary):not(.rg-button-secondary):not(.rg-button-danger):not(.rg-button-ghost), .rg-icon-button { background: var(--rg-control-bg); }
479
+ .rg-button:not(.rg-button-primary):not(.rg-button-secondary):not(.rg-button-danger):not(.rg-button-warning):not(.rg-button-ghost), .rg-icon-button { background: var(--rg-control-bg); }
306
480
  .rg-button, .rg-icon-button, .rg-badge, .rg-nav-link { font-family: var(--rg-font-control); }
307
481
 
308
- /* Spinner geometry follows the retro glass preset's translucent lens shape. */
482
+ /** All loader APIs share a complete circular track with one rotating accent. */
309
483
  .rg-spinner, .rg-loading-spinner, [data-ui="retro-glass"] :where(.ui-spinner, .loading-spinner, [data-loading-spinner]) {
484
+ box-sizing: border-box;
310
485
  display: inline-block;
311
486
  inline-size: 2rem;
312
487
  block-size: 2rem;
313
- border: .12rem solid rgb(255 255 255 / .32);
314
- border-block-start-color: var(--rg-spinner-stroke);
315
- border-inline-end-color: var(--rg-spinner-accent);
316
- border-radius: 38% 62% 48% 52%;
317
- background: linear-gradient(135deg, rgb(255 255 255 / .32), transparent 46%), conic-gradient(from 35deg, var(--rg-spinner-stroke), transparent 40%, var(--rg-spinner-accent), var(--rg-spinner-track));
318
- box-shadow: 0 0 1.35rem var(--rg-glow-primary), inset 0 0 .85rem rgb(255 255 255 / .18);
319
- -webkit-backdrop-filter: blur(.4rem);
320
- backdrop-filter: blur(.4rem);
488
+ flex-shrink: 0;
489
+ padding: 0;
490
+ color: var(--rg-spinner-stroke);
491
+ border: 2px solid var(--rg-spinner-track);
492
+ border-block-start-color: currentColor;
493
+ border-radius: 50%;
494
+ background: none;
495
+ box-shadow: none;
496
+ -webkit-backdrop-filter: none;
497
+ backdrop-filter: none;
321
498
  vertical-align: -.2em;
322
- animation: rg-spin .95s linear infinite;
499
+ animation: rg-spin .85s linear infinite;
323
500
  }
324
501
  .rg-spinner-sm { inline-size: 1rem; block-size: 1rem; border-width: .08rem; }
325
502
  .rg-spinner-lg { inline-size: 3rem; block-size: 3rem; border-width: .2rem; }
326
503
  .rg-button[aria-busy="true"], .rg-icon-button[aria-busy="true"], [data-ui="retro-glass"] :where(button[aria-busy="true"], input[type="button"][aria-busy="true"], input[type="submit"][aria-busy="true"], input[type="reset"][aria-busy="true"]) { gap: .55rem; cursor: progress; }
327
504
  .rg-button[aria-busy="true"]::after, .rg-icon-button[aria-busy="true"]::after, [data-ui="retro-glass"] :where(button[aria-busy="true"], input[type="button"][aria-busy="true"], input[type="submit"][aria-busy="true"], input[type="reset"][aria-busy="true"])::after {
328
505
  content: "";
506
+ box-sizing: border-box;
329
507
  display: inline-block;
330
- inline-size: 1em;
331
- block-size: 1em;
332
- border: .16em solid rgb(var(--rg-primary-text-rgb) / .42);
508
+ inline-size: 16px;
509
+ block-size: 16px;
510
+ flex: 0 0 16px;
511
+ padding: 0;
512
+ border: 2px solid var(--rg-spinner-track);
333
513
  border-block-start-color: currentColor;
334
514
  border-radius: 50%;
335
- animation: rg-spin .75s linear infinite;
515
+ background: none;
516
+ box-shadow: none;
517
+ clip-path: none;
518
+ animation: rg-spin .85s linear infinite;
519
+ }
520
+ /** Match the track to its foreground when color mixing is supported. */
521
+ @supports (color: color-mix(in srgb, black, white)) {
522
+ .rg-spinner, .rg-loading-spinner,
523
+ [data-ui="retro-glass"] :where(.ui-spinner, .loading-spinner, [data-loading-spinner]),
524
+ .rg-button[aria-busy="true"]::after, .rg-icon-button[aria-busy="true"]::after,
525
+ [data-ui="retro-glass"] :where(button[aria-busy="true"], input[type="button"][aria-busy="true"], input[type="submit"][aria-busy="true"], input[type="reset"][aria-busy="true"])::after {
526
+ border-color: color-mix(in srgb, currentColor 28%, transparent);
527
+ border-block-start-color: currentColor;
528
+ }
336
529
  }
337
530
  @keyframes rg-spin { to { transform: rotate(360deg); } }
338
531
 
@@ -441,7 +634,6 @@
441
634
  .rg-feature-strip {
442
635
  display: grid;
443
636
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr));
444
- overflow: hidden;
445
637
  background: var(--rg-card-bg);
446
638
  color: var(--rg-text);
447
639
  border: 1px solid var(--rg-border);
@@ -528,6 +720,7 @@
528
720
  /* Filled and framed actions use complementary frosted tabs and inner highlights. */
529
721
  .rg-button.rg-button-cut, .rg-button-cut {
530
722
  inline-size: min(100%, 16rem);
723
+ min-block-size: 2.75rem;
531
724
  min-inline-size: 6rem;
532
725
  max-inline-size: 100%;
533
726
  justify-self: center;
@@ -551,14 +744,14 @@
551
744
  -webkit-backdrop-filter: blur(12px);
552
745
  backdrop-filter: blur(12px);
553
746
  }
554
- [data-ui="retro-glass"][data-theme][data-mode] :where(button:not([class]), input[type="button"]:not([class]), input[type="submit"]:not([class]), input[type="reset"]:not([class])) {
747
+ [data-ui="retro-glass"][data-mode] :where(button:not([class]), input[type="button"]:not([class]), input[type="submit"]:not([class]), input[type="reset"]:not([class])) {
555
748
  color: var(--rg-text);
556
749
  background: rgb(var(--rg-surface-strong-rgb) / .24);
557
750
  border: 1px solid var(--rg-primary);
558
751
  border-radius: .55rem .9rem .55rem .78rem;
559
752
  box-shadow: inset 0 1px 0 rgb(var(--rg-surface-strong-rgb) / .78), 0 .35rem .85rem rgb(var(--rg-primary-rgb) / .14);
560
753
  }
561
- [data-ui="retro-glass"][data-theme][data-mode] :where(dialog) {
754
+ [data-ui="retro-glass"][data-mode] :where(dialog) {
562
755
  background: rgb(var(--rg-surface-strong-rgb) / .72);
563
756
  border: 1px solid rgb(var(--rg-border-rgb) / .78);
564
757
  border-radius: .85rem 1.45rem .85rem 1.2rem;
@@ -567,9 +760,126 @@
567
760
  backdrop-filter: blur(14px);
568
761
  }
569
762
 
570
- /* Busy indicators retain the irregular frosted-glass tab silhouette. */
571
- .rg-button[aria-busy="true"]::after, .rg-icon-button[aria-busy="true"]::after, [data-ui="retro-glass"] :where(button[aria-busy="true"], input[type="button"][aria-busy="true"], input[type="submit"][aria-busy="true"], input[type="reset"][aria-busy="true"])::after {
572
- border: .09em solid rgb(255 255 255 / .45); border-block-start-color: currentColor; border-radius: 38% 62% 48% 52%; background: linear-gradient(135deg, rgb(255 255 255 / .35), transparent 45%), conic-gradient(currentColor, transparent 44%, currentColor); box-shadow: 0 0 .42em currentColor, inset 0 0 .2em rgb(255 255 255 / .26); clip-path: none; animation: rg-spin .96s linear infinite;
763
+ /**
764
+ * Final Retro Glass fidelity layer.
765
+ * Recreates the reference application's brushed chrome, glossy navigation,
766
+ * shallow glass panes, compact bevels, and dark dock treatment in every mode.
767
+ */
768
+ [data-ui="retro-glass"][data-mode] {
769
+ --usk-native-font-control: "Segoe UI", Tahoma, Geneva, sans-serif;
770
+ --usk-native-control-min-block-size: 2.5rem;
771
+ --usk-native-control-padding-block: .52rem;
772
+ --usk-native-control-padding-inline: .86rem;
773
+ --usk-native-border-width: 1px;
774
+ --usk-native-radius-sm: .34rem;
775
+ --usk-native-radius: .52rem;
776
+ --usk-native-radius-lg: .72rem;
777
+ --usk-native-shadow: inset 0 1px 0 rgb(var(--rg-surface-strong-rgb) / .9), 0 .22rem .5rem rgb(var(--rg-text-rgb) / .18);
778
+ --usk-native-shadow-md: inset 0 1px 0 rgb(var(--rg-surface-strong-rgb) / .92), 0 .7rem 1.35rem rgb(var(--rg-text-rgb) / .22);
779
+ --usk-native-focus-ring: 0 0 0 1px var(--rg-surface-strong), 0 0 0 3px var(--rg-focus), 0 0 .65rem rgb(var(--rg-focus-rgb) / .34);
780
+ --usk-native-subcontrol-padding-block: .4rem;
781
+ --usk-native-subcontrol-padding-inline: .62rem;
782
+ --usk-native-choice-size: 1.16rem;
783
+ --usk-native-choice-background: var(--rg-control-material);
784
+ --usk-native-choice-border: 1px solid var(--rg-border);
785
+ --usk-native-checkbox-radius: .28rem;
786
+ --usk-native-radio-radius: 50%;
787
+ --usk-native-choice-shadow: inset 0 1px 0 rgb(var(--rg-surface-strong-rgb) / .9), 0 1px 3px rgb(var(--rg-text-rgb) / .22);
788
+ --usk-native-choice-checked-background: linear-gradient(180deg, var(--rg-primary-hover), var(--rg-primary));
789
+ --usk-native-choice-mark-color: var(--rg-on-primary);
790
+ --usk-native-select-indicator-image: linear-gradient(55deg, transparent 46%, var(--rg-text) 46% 56%, transparent 56%), linear-gradient(125deg, transparent 46%, var(--rg-text) 46% 56%, transparent 56%);
791
+ --usk-native-select-indicator-size: .44rem .44rem, .44rem .44rem;
792
+ --usk-native-select-indicator-position: calc(100% - 1.02rem) 50%, calc(100% - .72rem) 50%;
793
+ --usk-native-select-padding-inline-end: 2.2rem;
794
+ --usk-native-range-track-size: .42rem;
795
+ --usk-native-range-track-background: var(--rg-glass-inset);
796
+ --usk-native-range-track-border: 1px inset var(--rg-border);
797
+ --usk-native-range-track-radius: .35rem;
798
+ --usk-native-range-track-shadow: inset 0 2px 4px rgb(var(--rg-text-rgb) / .22);
799
+ --usk-native-range-progress-background: linear-gradient(180deg, var(--rg-primary-hover), var(--rg-primary));
800
+ --usk-native-range-thumb-size: 1.2rem;
801
+ --usk-native-range-thumb-background: radial-gradient(circle at 42% 32%, var(--rg-glass-highlight), transparent 28%), var(--rg-control-material);
802
+ --usk-native-range-thumb-border: 1px solid var(--rg-border);
803
+ --usk-native-range-thumb-radius: 50%;
804
+ --usk-native-range-thumb-shadow: inset 0 1px 0 var(--rg-surface-strong), 0 2px 4px rgb(var(--rg-text-rgb) / .28);
805
+ --usk-native-progress-size: .74rem;
806
+ --usk-native-progress-track-background: var(--rg-glass-inset);
807
+ --usk-native-progress-track-border: 1px inset var(--rg-border);
808
+ --usk-native-progress-track-radius: .42rem;
809
+ --usk-native-progress-track-shadow: inset 0 2px 4px rgb(var(--rg-text-rgb) / .25);
810
+ --usk-native-progress-value-background: repeating-linear-gradient(120deg, var(--rg-primary) 0 .5rem, var(--rg-primary-hover) .5rem .7rem);
811
+ --usk-native-progress-value-radius: .36rem;
812
+ --usk-native-progress-value-shadow: inset 0 1px 0 rgb(var(--rg-surface-strong-rgb) / .7), 0 0 .45rem rgb(var(--rg-primary-rgb) / .35);
813
+ --usk-native-scrollbar-size: .8rem;
814
+ --usk-native-scrollbar-track: linear-gradient(90deg, var(--rg-surface-soft), var(--rg-surface));
815
+ --usk-native-scrollbar-thumb: linear-gradient(90deg, var(--rg-surface-strong), var(--rg-primary), var(--rg-surface-strong));
816
+ --usk-native-scrollbar-radius: .48rem;
817
+ }
818
+
819
+ .rg-title { margin-block: .75rem; font-family: var(--rg-font-display); font-weight: 800; letter-spacing: max(.06em, .5px); text-transform: none; text-shadow: 0 1px 0 var(--rg-glass-highlight), 0 2px 2px rgb(var(--rg-text-rgb) / .28); }
820
+ .rg-heading { font-size: clamp(1.16rem, 2.4vw, 1.72rem); font-weight: 700; letter-spacing: .015em; text-shadow: var(--rg-control-text-shadow); }
821
+ .rg-kicker, .rg-label { font-size: .76rem; font-weight: 700; letter-spacing: .055em; }
822
+ .rg-copy, .rg-subtitle { line-height: 1.48; }
823
+ .rg-card, .rg-panel { padding: 1rem; background: var(--rg-glass-pane); border: 1px solid var(--rg-border); border-radius: .46rem; box-shadow: inset 0 1px 0 var(--rg-glass-highlight), 0 .35rem .8rem var(--rg-material-shadow); -webkit-backdrop-filter: blur(14px) saturate(135%); backdrop-filter: blur(14px) saturate(135%); }
824
+ .rg-card::before, .rg-panel::before, .rg-console::before { background: linear-gradient(180deg, var(--rg-glass-midlight), transparent 24%); }
825
+ .rg-well, .rg-inset { padding: .82rem; background: var(--rg-glass-inset); border: 1px inset var(--rg-border); border-radius: .34rem; box-shadow: inset 0 2px 5px var(--rg-material-shadow), inset 0 1px 0 var(--rg-glass-midlight); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
826
+ .rg-button, .rg-icon-button { min-height: 2.5rem; padding: .5rem .82rem; background: var(--rg-control-material); border: 1px solid var(--rg-border); border-radius: .34rem; box-shadow: inset 0 1px 0 var(--rg-glass-highlight), inset 0 -1px 0 rgb(var(--rg-text-rgb) / .08), 0 .16rem .38rem var(--rg-material-shadow); font-weight: 650; letter-spacing: .01em; text-shadow: var(--rg-control-text-shadow); text-transform: none; }
827
+ .rg-button:hover, .rg-icon-button:hover { transform: none; border-color: var(--rg-primary); box-shadow: inset 0 1px 0 var(--rg-glass-highlight), 0 .2rem .48rem var(--rg-material-shadow), 0 0 .5rem rgb(var(--rg-primary-rgb) / .24); }
828
+ .rg-button:active, .rg-icon-button:active, .rg-button[aria-pressed="true"], .rg-button.is-active { transform: translateY(1px); background: var(--rg-glass-inset); box-shadow: inset 0 2px 5px var(--rg-material-shadow), 0 1px 0 var(--rg-glass-midlight); }
829
+ .rg-input, .rg-textarea, .rg-select { min-height: 2.32rem; padding: .44rem .64rem; background: var(--rg-glass-inset); border: 1px inset var(--rg-border); border-radius: .28rem; box-shadow: inset 0 2px 5px var(--rg-material-shadow), 0 1px 0 var(--rg-glass-highlight); }
830
+ .rg-nav { gap: 0; padding: .2rem; background: linear-gradient(180deg, var(--rg-primary-hover), var(--rg-primary) 44%, rgb(var(--rg-primary-rgb) / .82) 50%, rgb(var(--rg-primary-rgb) / .68)); border: 1px solid rgb(var(--rg-primary-rgb) / .92); border-radius: .34rem; box-shadow: inset 0 1px 0 rgb(255 255 255 / .48), inset 0 -1px 0 rgb(0 0 0 / .34), 0 .24rem .54rem var(--rg-material-shadow); }
831
+ .rg-nav-link { min-height: 2.7rem; padding: .58rem .92rem; border-inline-end: 1px solid rgb(0 0 0 / .22); border-radius: .2rem; color: var(--rg-on-primary); font-size: .82rem; letter-spacing: .015em; text-shadow: 0 -1px 0 rgb(0 0 0 / .62); }
832
+ .rg-nav-link:hover { color: var(--rg-on-primary); background: linear-gradient(180deg, rgb(255 255 255 / .24), rgb(255 255 255 / .04)); border-color: rgb(255 255 255 / .3); }
833
+ .rg-nav-link.is-active, .rg-nav-link[aria-current="page"] { background: linear-gradient(180deg, rgb(255 255 255 / .34), rgb(var(--rg-primary-rgb) / .04) 48%, rgb(0 0 0 / .14)); color: var(--rg-on-primary); box-shadow: inset 0 1px 0 rgb(255 255 255 / .58), inset 0 0 0 1px rgb(255 255 255 / .14), 0 0 .6rem rgb(var(--rg-primary-rgb) / .32); }
834
+ .rg-toolbar { background: var(--rg-brushed-chrome); border-radius: .34rem; box-shadow: inset 0 1px 0 var(--rg-glass-highlight), inset 0 -1px 0 rgb(var(--rg-text-rgb) / .18), 0 .22rem .5rem var(--rg-material-shadow); }
835
+ .rg-badge { min-height: 1.46rem; padding: .24rem .52rem; border: 1px solid var(--rg-border); border-radius: .72rem; box-shadow: inset 0 1px 0 rgb(var(--rg-surface-strong-rgb) / .85), 0 1px 3px rgb(var(--rg-text-rgb) / .2); }
836
+ .rg-alert { padding: .7rem .86rem; background: var(--rg-glass-pane); border: 1px solid var(--rg-border); border-radius: .38rem; box-shadow: inset 0 1px 0 var(--rg-glass-highlight), 0 .28rem .6rem var(--rg-material-shadow); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
837
+ .rg-alert-success { background: linear-gradient(180deg, rgb(var(--rg-success-rgb) / .2), rgb(var(--rg-success-rgb) / .08)), var(--rg-glass-pane); }
838
+ .rg-alert-warning { background: linear-gradient(180deg, rgb(var(--rg-warning-rgb) / .2), rgb(var(--rg-warning-rgb) / .08)), var(--rg-glass-pane); }
839
+ .rg-alert-danger { background: linear-gradient(180deg, rgb(var(--rg-danger-rgb) / .2), rgb(var(--rg-danger-rgb) / .08)), var(--rg-glass-pane); }
840
+ .rg-progress { height: .74rem; background: var(--rg-glass-inset); border-radius: .42rem; box-shadow: inset 0 2px 4px var(--rg-material-shadow), 0 1px 0 var(--rg-glass-highlight); }
841
+ .rg-progress-bar { background: repeating-linear-gradient(120deg, var(--rg-primary) 0 .5rem, var(--rg-primary-hover) .5rem .7rem); border-radius: .36rem; box-shadow: inset 0 1px 0 rgb(var(--rg-surface-strong-rgb) / .7), 0 0 .45rem rgb(var(--rg-primary-rgb) / .35); }
842
+ .rg-table-wrap { background: var(--rg-glass-inset); border: 1px solid var(--rg-border); border-radius: .42rem; box-shadow: inset 0 1px 0 var(--rg-glass-highlight), 0 .35rem .72rem var(--rg-material-shadow); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
843
+ .rg-table { border-collapse: separate; border-spacing: 0; }
844
+ .rg-table th { padding: .58rem .72rem; background: linear-gradient(180deg, rgb(var(--rg-primary-rgb) / .92), var(--rg-primary-hover) 48%, var(--rg-primary)); color: var(--rg-on-primary); font-weight: 700; text-shadow: 0 -1px 0 rgb(0 0 0 / .52); }
845
+ .rg-table td { padding: .64rem .76rem; }
846
+ .rg-tooltip, [data-ui="retro-glass"] :where(.ui-tooltip, [role="tooltip"], [data-tooltip]) { background: linear-gradient(180deg, rgb(54 61 68 / .96), rgb(8 12 15 / .98)); color: rgb(245 248 250); border: 1px solid rgb(255 255 255 / .28); border-radius: .36rem; box-shadow: inset 0 1px 0 rgb(255 255 255 / .22), 0 .55rem 1rem rgb(0 0 0 / .48); }
847
+ .rg-card-service, .rg-card-feature, .rg-media-scrim, .rg-feature-strip, .rg-callout-bar { border-radius: .46rem; background: var(--rg-glass-pane); box-shadow: inset 0 1px 0 var(--rg-glass-highlight), 0 .35rem .72rem var(--rg-material-shadow); -webkit-backdrop-filter: blur(12px) saturate(118%); backdrop-filter: blur(12px) saturate(118%); clip-path: none; }
848
+ .rg-callout-bar { background: linear-gradient(180deg, rgb(255 255 255 / .16), transparent 12%), linear-gradient(180deg, rgb(var(--rg-text-rgb) / .88), rgb(var(--rg-bg-rgb) / .96)); color: var(--rg-dock-text); border-color: rgb(255 255 255 / .18); box-shadow: inset 0 1px 0 rgb(255 255 255 / .26), inset 0 -1px 0 rgb(0 0 0 / .7), 0 .45rem .92rem var(--rg-material-shadow); }
849
+
850
+ /**
851
+ * Carries the same desktop-application material through semantic choice controls.
852
+ * Native controls consume the matching custom properties declared above.
853
+ */
854
+ .rg-check-control, .rg-radio-control, .rg-switch-track, .rg-switch-thumb {
855
+ background: var(--rg-control-material);
856
+ border: 1px solid var(--rg-border);
857
+ box-shadow: inset 0 1px 0 var(--rg-glass-highlight), inset 0 -1px 0 rgb(var(--rg-text-rgb) / .12), 0 1px 3px var(--rg-material-shadow);
858
+ }
859
+ .rg-check-control { border-radius: .22rem; }
860
+ .rg-radio-control { border-radius: 50%; }
861
+ .rg-switch-track { background: var(--rg-glass-inset); border-radius: var(--rg-radius-pill); box-shadow: inset 0 2px 4px var(--rg-material-shadow), 0 1px 0 var(--rg-glass-highlight); }
862
+ .rg-switch-thumb { background: radial-gradient(circle at 42% 30%, var(--rg-glass-highlight), transparent 32%), var(--rg-control-material); border-radius: 50%; }
863
+ .rg-check:has(input:checked) .rg-check-control, .rg-radio:has(input:checked) .rg-radio-control, .rg-switch:has(input:checked) .rg-switch-track { background: linear-gradient(180deg, var(--rg-primary-hover), var(--rg-primary)); border-color: var(--rg-primary); }
864
+
865
+ [data-ui="retro-glass"][data-mode] :where(fieldset) {
866
+ background: var(--rg-glass-pane);
867
+ border: 1px solid var(--rg-border);
868
+ border-radius: .42rem;
869
+ box-shadow: inset 0 1px 0 var(--rg-glass-highlight), 0 .32rem .7rem var(--rg-material-shadow);
870
+ }
871
+ [data-ui="retro-glass"][data-mode] :where(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="button"]):not([type="submit"]):not([type="reset"]), textarea, select) {
872
+ background: var(--rg-glass-inset);
873
+ border: 1px inset var(--rg-border);
874
+ border-radius: .28rem;
875
+ box-shadow: inset 0 2px 5px var(--rg-material-shadow), 0 1px 0 var(--rg-glass-highlight);
876
+ }
877
+ [data-ui="retro-glass"][data-mode] :where(button:not([class]), input[type="button"]:not([class]), input[type="submit"]:not([class]), input[type="reset"]:not([class])) {
878
+ background: var(--rg-control-material);
879
+ border: 1px solid var(--rg-border);
880
+ border-radius: .34rem;
881
+ box-shadow: inset 0 1px 0 var(--rg-glass-highlight), inset 0 -1px 0 rgb(var(--rg-text-rgb) / .08), 0 .16rem .38rem var(--rg-material-shadow);
882
+ text-shadow: var(--rg-control-text-shadow);
573
883
  }
574
884
 
575
885
  @media (prefers-reduced-motion: reduce) {
@@ -588,3 +898,282 @@
588
898
  [data-ui="retro-glass"] a { color: #000 !important; text-decoration: underline; }
589
899
  }
590
900
  }
901
+
902
+ @layer ui-style-kit.retro_glass {
903
+ /* Keeps semantic field states above preset-specific material paint. */
904
+ .rg-input[aria-invalid="true"], .rg-textarea[aria-invalid="true"], .rg-select[aria-invalid="true"] { border-color: var(--rg-danger); box-shadow: 0 0 0 2px rgb(var(--rg-danger-rgb) / .2); }
905
+ .rg-input[readonly], .rg-textarea[readonly] { border-style: dashed; filter: saturate(.72); opacity: .78; }
906
+ /* Restores semantic action paint after identity-specific geometry. */
907
+ .rg-button-primary { background: linear-gradient(180deg, rgb(var(--rg-surface-strong-rgb) / .55), transparent 52%), var(--rg-primary); color: var(--rg-on-primary); border-color: var(--rg-primary); }
908
+ .rg-button-secondary { background: linear-gradient(180deg, rgb(var(--rg-surface-strong-rgb) / .48), transparent 52%), var(--rg-secondary); color: var(--rg-on-secondary); border-color: var(--rg-secondary); }
909
+ .rg-button-danger { background: linear-gradient(180deg, rgb(var(--rg-surface-strong-rgb) / .42), transparent 52%), var(--rg-danger); color: var(--rg-on-danger); border-color: var(--rg-danger); }
910
+ .rg-button-ghost { background: transparent; color: var(--rg-primary); border-color: transparent; }
911
+ }
912
+
913
+ @layer ui-style-kit.retro_glass {
914
+ /* Shared annotation fidelity: readable display rhythm and appropriately scaled text icons. */
915
+ .rg-feature-item > .rg-icon-medallion { font-size: 1.5rem; line-height: 1; }
916
+ .rg-callout-bar > .rg-icon-medallion { min-inline-size: 4.5rem; min-block-size: 4.5rem; font-size: 2rem; font-weight: 800; line-height: 1; }
917
+ }
918
+
919
+ @layer ui-style-kit.retro_glass {
920
+ /**
921
+ * Implements the retained RetroGlass board's final material layer. Scheme colors
922
+ * remain semantic; reference lighting and dimensions belong to this preset.
923
+ */
924
+ [data-ui="retro-glass"][data-mode] {
925
+ --rg-radius-sm: 6px;
926
+ --rg-radius-md: 10px;
927
+ --rg-radius-lg: 14px;
928
+ --rg-space-5: 24px;
929
+ --rg-space-6: 32px;
930
+ --rg-control-height: 36px;
931
+ --rg-line-color: rgb(var(--rg-border-rgb) / .65);
932
+ --rg-line-strong: var(--rg-border);
933
+ --rg-surface-input: rgb(var(--usk-surface-strong-rgb, var(--rg-input-fallback-rgb)));
934
+ --rg-surface-raised: rgb(var(--rg-surface-strong-rgb));
935
+ --rg-canvas: var(--rg-bg);
936
+ --rg-text-soft: var(--rg-text-muted);
937
+ --rg-muted: var(--rg-text-muted);
938
+ --rg-highlight: var(--rg-glass-highlight);
939
+ --rg-recess: var(--rg-material-shadow);
940
+ --rg-glass-pane: linear-gradient(180deg, var(--rg-glass-midlight), transparent 18%), rgb(var(--rg-surface-rgb));
941
+ --rg-brushed-chrome: repeating-linear-gradient(0deg, transparent 0 1px, var(--rg-brush-line) 1px 2px), linear-gradient(180deg, var(--rg-glass-highlight), var(--rg-glass-midlight) 48%, rgb(var(--rg-border-rgb) / .48) 52%, rgb(var(--rg-surface-soft-rgb) / .5));
942
+ --rg-glass-inset: linear-gradient(180deg, rgb(0 0 0 / .12), transparent 18%), var(--rg-surface-input);
943
+ --rg-control-material: linear-gradient(180deg, var(--rg-glass-highlight), var(--rg-glass-midlight) 46%, rgb(0 0 0 / .16) 52%, transparent), var(--rg-surface-soft);
944
+ --rg-gloss-rgb: var(--rg-primary-rgb);
945
+ --rg-progress-stripe: rgb(255 255 255 / .24);
946
+ --rg-gloss-ink: rgb(var(--usk-primary-text-rgb, 255 255 255));
947
+ --rg-gloss: linear-gradient(180deg, rgb(255 255 255 / .4), transparent 18%, rgb(0 0 0 / .15) 46%, rgb(0 0 0 / .42) 52%, rgb(0 0 0 / .22)), rgb(var(--rg-gloss-rgb));
948
+ --rg-danger-gloss: linear-gradient(180deg, rgb(255 255 255 / .4), transparent 18%, rgb(0 0 0 / .15) 46%, rgb(0 0 0 / .42) 52%, rgb(0 0 0 / .22)), var(--rg-danger);
949
+ --rg-floating-shadow: inset 0 1px 0 var(--rg-highlight), 0 7px 18px rgb(0 0 0 / .24);
950
+ --usk-native-font-control: var(--rg-font-body);
951
+ --usk-native-control-min-block-size: var(--rg-control-height);
952
+ --usk-native-radius-sm: var(--rg-radius-sm);
953
+ --usk-native-radius: var(--rg-radius-md);
954
+ --usk-native-card-bg: var(--rg-glass-pane);
955
+ --usk-native-control-bg: var(--rg-glass-inset);
956
+ }
957
+ [data-ui="retro-glass"][data-mode="light"] { --rg-input-fallback-rgb: 248 250 252; }
958
+ [data-ui="retro-glass"][data-mode="dark"] { --rg-input-fallback-rgb: 7 21 29; }
959
+ [data-ui="retro-glass"][data-mode="contrast"] { --rg-input-fallback-rgb: 0 0 0; --rg-gloss-ink: var(--rg-on-primary); --rg-gloss: rgb(var(--rg-gloss-rgb)); --rg-line-color: var(--rg-border); }
960
+
961
+ /** Keep custom themes contrast-safe by restricting reflections to the edge. */
962
+ [data-ui="retro-glass"][data-theme][data-mode] {
963
+ --rg-gloss: linear-gradient(180deg, rgb(255 255 255 / .3), transparent 12%, transparent 48%, rgb(0 0 0 / .04) 52%, transparent), rgb(var(--rg-gloss-rgb));
964
+ --rg-danger-gloss: linear-gradient(180deg, rgb(255 255 255 / .3), transparent 12%, transparent 48%, rgb(0 0 0 / .04) 52%, transparent), var(--rg-danger);
965
+ }
966
+ .rg-title, .rg-heading { letter-spacing: 0; text-shadow: none; }
967
+ .rg-heading { font-size: 1.25rem; }
968
+ .rg-title { font-size: 2rem; }
969
+ .rg-kicker, .rg-label, .rg-overline { font: 700 12px/1.4 var(--rg-font-mono); letter-spacing: 0; text-transform: uppercase; color: var(--rg-text-soft); }
970
+ .rg-label { display: block; margin-block-end: 4px; }
971
+ .rg-overline { display: block; margin: 0 0 8px; }
972
+ .rg-section-title { display: flex; align-items: center; gap: 8px; margin: 0 0 16px; color: var(--rg-text); font: 800 14px/1.3 var(--rg-font-body); letter-spacing: 0; text-transform: uppercase; }
973
+ .rg-section-title::before { content: ""; flex: 0 0 10px; inline-size: 10px; block-size: 10px; border: 1px solid var(--rg-primary); border-radius: 50%; background: var(--rg-gloss); box-shadow: inset 0 1px 0 var(--rg-highlight); }
974
+ .rg-section-title::after { content: ""; flex: 0 0 34px; inline-size: 34px; block-size: 8px; margin-inline-start: auto; background: repeating-linear-gradient(90deg, var(--rg-line-color) 0 9px, transparent 9px 13px); }
975
+ .rg-card, .rg-panel { background: var(--rg-glass-pane); border: 1px solid var(--rg-line-color); border-radius: var(--rg-radius-md); box-shadow: inset 0 1px 0 var(--rg-highlight), 0 4px 0 rgb(0 0 0 / .12); clip-path: none; }
976
+ .rg-card::before, .rg-panel::before { content: none; }
977
+ .rg-toolbar { background: var(--rg-brushed-chrome), var(--rg-surface-soft); border-radius: var(--rg-radius-lg); }
978
+ .rg-button, .rg-icon-button, .rg-segment, .rg-pagination-page {
979
+ display: inline-flex; align-items: center; justify-content: center; gap: 8px;
980
+ min-height: var(--rg-control-height); min-block-size: var(--rg-control-height); padding: 8px 12px;
981
+ background: var(--rg-control-material); color: var(--rg-text); border: 1px solid var(--rg-line-strong);
982
+ border-radius: var(--rg-radius-sm); box-shadow: inset 0 1px 0 var(--rg-highlight), inset 0 -1px 0 rgb(0 0 0 / .18), 0 1px 2px rgb(0 0 0 / .22);
983
+ font: 700 14px/1.2 var(--rg-font-body); letter-spacing: 0; text-shadow: none; text-decoration: none;
984
+ cursor: pointer; clip-path: none; transition: background 150ms ease, box-shadow 150ms ease, transform 80ms ease;
985
+ }
986
+ .rg-icon-button { inline-size: var(--rg-control-height); padding: 8px; aspect-ratio: 1; }
987
+ .rg-button-primary { background: var(--rg-gloss); color: var(--rg-gloss-ink); border-color: var(--rg-primary); }
988
+ .rg-button-secondary { background: var(--rg-control-material); color: var(--rg-text); border-color: var(--rg-line-strong); }
989
+ .rg-button-danger { background: var(--rg-danger-gloss); color: rgb(var(--usk-danger-text-rgb, 255 255 255)); border-color: var(--rg-danger); }
990
+ /**
991
+ * Lets explicit runtime foreground edits win without changing the default
992
+ * Retro Glass danger gloss treatment used by the reference specimen.
993
+ */
994
+ [data-ui="retro-glass"][data-mode][style*="--rg-on-danger"] .rg-button-danger { color: var(--rg-on-danger); }
995
+ .rg-button-ghost { background: transparent; color: var(--rg-text-soft); border-color: var(--rg-line-color); box-shadow: none; }
996
+ .rg-button:hover, .rg-icon-button:hover, .rg-button.is-hover, .rg-segment:hover, .rg-pagination-page:hover { transform: none; border-color: var(--rg-focus); box-shadow: inset 0 1px 0 var(--rg-highlight), 0 0 0 1px var(--rg-focus); }
997
+ .rg-button:active, .rg-icon-button:active, .rg-button.is-pressed, .rg-button[aria-pressed="true"] { background: linear-gradient(180deg, rgb(0 0 0 / .22), rgb(255 255 255 / .1)), var(--rg-surface-soft); color: var(--rg-text); box-shadow: inset 0 2px 5px var(--rg-recess); transform: translateY(1px); }
998
+ .rg-button:disabled, .rg-icon-button:disabled, .rg-button.is-disabled { opacity: .4; filter: saturate(.45); cursor: not-allowed; box-shadow: none; }
999
+ .rg-field { display: block; min-inline-size: 0; }
1000
+ .rg-input, .rg-select, .rg-textarea { inline-size: 100%; min-block-size: var(--rg-control-height); padding: 8px 11px; background: var(--rg-glass-inset); color: var(--rg-text); border: 1px solid var(--rg-line-strong); border-radius: var(--rg-radius-sm); box-shadow: inset 0 1px 3px var(--rg-recess), 0 1px 0 var(--rg-highlight); font: 14px/1.3 var(--rg-font-body); }
1001
+ .rg-select { padding-inline-end: 32px; background-image: var(--usk-native-select-indicator-image), linear-gradient(180deg, rgb(0 0 0 / .12), transparent 18%); background-size: var(--usk-native-select-indicator-size), auto; background-position: var(--usk-native-select-indicator-position), center; background-repeat: no-repeat; }
1002
+ .rg-textarea { min-block-size: 64px; resize: vertical; }
1003
+ .rg-input::placeholder, .rg-textarea::placeholder { color: var(--rg-muted); opacity: 1; }
1004
+ .rg-input-wrap { display: flex; align-items: center; position: relative; }
1005
+ .rg-input-wrap .rg-input { padding-inline-end: 36px; }
1006
+ .rg-input-icon { position: absolute; inset-inline-end: 11px; color: var(--rg-link); pointer-events: none; }
1007
+ .rg-helper, .rg-error-text { display: block; margin-block-start: 4px; color: var(--rg-text-soft); font: 12px/1.4 var(--rg-font-mono); }
1008
+ .rg-error-text { border-inline-start: 3px solid var(--rg-danger); padding-inline-start: 6px; }
1009
+ .rg-input.is-error, .rg-input[aria-invalid="true"], .rg-select[aria-invalid="true"], .rg-textarea[aria-invalid="true"] { border-color: var(--rg-danger); box-shadow: inset 0 1px 3px var(--rg-recess), 0 0 0 1px var(--rg-danger); }
1010
+ .rg-input.is-hover { border-color: var(--rg-focus); }
1011
+ .rg-input.is-focus { outline: 2px solid var(--rg-focus); outline-offset: 2px; }
1012
+ .rg-dropdown, .rg-popover, .rg-modal { padding: 12px; color: var(--rg-text); background: var(--rg-glass-pane); border: 1px solid var(--rg-line-strong); border-radius: var(--rg-radius-md); box-shadow: var(--rg-floating-shadow); font: 14px/1.4 var(--rg-font-body); }
1013
+ .rg-dropdown { padding: 6px; border-color: var(--rg-focus); border-radius: var(--rg-radius-sm); }
1014
+ .rg-option { display: flex; align-items: center; justify-content: space-between; inline-size: 100%; min-block-size: 32px; padding: 6px 8px; background: transparent; border: 1px solid transparent; border-radius: 4px; color: var(--rg-text-soft); font: 14px/1.3 var(--rg-font-body); text-align: start; cursor: pointer; }
1015
+ .rg-option:hover, .rg-option.is-selected, .rg-option[aria-selected="true"] { background: var(--rg-gloss); color: var(--rg-gloss-ink); border-color: var(--rg-primary); }
1016
+ .rg-option:disabled { opacity: .4; cursor: not-allowed; }
1017
+ .rg-tags { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; min-block-size: 48px; padding: 8px; background: var(--rg-glass-inset); border: 1px solid var(--rg-line-strong); border-radius: var(--rg-radius-sm); box-shadow: inset 0 1px 3px var(--rg-recess); }
1018
+ .rg-chip, .rg-badge { display: inline-flex; align-items: center; gap: 6px; min-block-size: 24px; padding: 4px 10px; border: 1px solid var(--rg-line-strong); border-radius: var(--rg-radius-pill); background: var(--rg-surface-soft); color: var(--rg-text); box-shadow: inset 0 1px 0 var(--rg-highlight); font: 700 12px/1.2 var(--rg-font-body); letter-spacing: 0; text-transform: none; }
1019
+ /** Badges use the same saturated top-lit material as the matching action buttons. */
1020
+ .rg-badge { background: var(--rg-control-material); box-shadow: inset 0 1px 0 var(--rg-highlight), inset 0 -1px 0 rgb(0 0 0 / .18), 0 1px 2px rgb(0 0 0 / .22); }
1021
+ .rg-chip, .rg-badge-primary { background: var(--rg-gloss); border-color: var(--rg-primary); color: var(--rg-gloss-ink); }
1022
+ .rg-chip-danger { background: linear-gradient(rgb(var(--rg-danger-rgb) / .18), rgb(var(--rg-danger-rgb) / .18)), var(--rg-surface-raised); border-color: var(--rg-danger); color: var(--rg-text); }
1023
+ .rg-chip-warning { background: linear-gradient(rgb(var(--rg-warning-rgb) / .18), rgb(var(--rg-warning-rgb) / .18)), var(--rg-surface-raised); border-color: var(--rg-warning); color: var(--rg-text); }
1024
+ .rg-badge-success { background: linear-gradient(180deg, rgb(255 255 255 / .4), transparent 18%, rgb(0 0 0 / .15) 46%, rgb(0 0 0 / .42) 52%, rgb(0 0 0 / .22)), var(--rg-success); border-color: var(--rg-success); color: var(--rg-on-success); }
1025
+ .rg-badge-warning { background: linear-gradient(180deg, rgb(255 255 255 / .4), transparent 18%, rgb(0 0 0 / .15) 46%, rgb(0 0 0 / .42) 52%, rgb(0 0 0 / .22)), var(--rg-warning); border-color: var(--rg-warning); color: var(--rg-on-warning); }
1026
+ .rg-badge-danger { background: linear-gradient(180deg, rgb(255 255 255 / .4), transparent 18%, rgb(0 0 0 / .15) 46%, rgb(0 0 0 / .42) 52%, rgb(0 0 0 / .22)), var(--rg-danger); border-color: var(--rg-danger); color: var(--rg-on-danger); }
1027
+ .rg-chip { cursor: pointer; }
1028
+ .rg-file { display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 8px; position: relative; min-block-size: 112px; padding: 16px; border: 1px dashed var(--rg-line-strong); border-radius: var(--rg-radius-md); background: var(--rg-glass-inset); color: var(--rg-text-soft); box-shadow: inset 0 1px 3px var(--rg-recess); text-align: center; font: 14px/1.4 var(--rg-font-body); cursor: pointer; }
1029
+ .rg-file strong { color: var(--rg-link); }
1030
+ .rg-file input[type="file"] { position: absolute; inset: 0; inline-size: 100%; block-size: 100%; opacity: 0; cursor: pointer; }
1031
+ .rg-file:focus-within { outline: 2px solid var(--rg-focus); outline-offset: 2px; }
1032
+ .rg-choice, .rg-switch { display: inline-flex; align-items: center; gap: 8px; position: relative; min-block-size: 32px; color: var(--rg-text-soft); font: 14px/1.3 var(--rg-font-body); cursor: pointer; }
1033
+ .rg-choice input { accent-color: var(--rg-primary); inline-size: 18px; block-size: 18px; flex: 0 0 18px; margin: 0; }
1034
+ /** Disabled labels stay readable; the native state and dashed edge carry the distinction. */
1035
+ .rg-choice:has(:disabled), .rg-switch:has(:disabled) { opacity: 1; color: var(--rg-text-soft); cursor: not-allowed; }
1036
+ .rg-choice input:disabled { opacity: 1; border: 1px dashed var(--rg-line-strong); background: var(--rg-surface-soft); box-shadow: none; }
1037
+ .rg-choice input:disabled:not(:checked) { appearance: none; }
1038
+ .rg-choice input.is-focus { outline: 2px solid var(--rg-focus); outline-offset: 2px; }
1039
+ .rg-switch input { position: absolute; inset: 0; inline-size: 100%; block-size: 100%; opacity: 0; z-index: 1; cursor: inherit; }
1040
+ .rg-switch-track { display: inline-flex; align-items: center; inline-size: 42px; block-size: 22px; padding: 2px; border: 1px solid var(--rg-line-strong); border-radius: var(--rg-radius-pill); background: var(--rg-glass-inset); box-shadow: inset 0 1px 3px var(--rg-recess); }
1041
+ .rg-switch-thumb { inline-size: 16px; block-size: 16px; border-radius: 50%; border: 1px solid var(--rg-line-strong); background: var(--rg-control-material); box-shadow: inset 0 1px 0 var(--rg-highlight), 0 1px 2px rgb(0 0 0 / .35); transition: transform 150ms ease; }
1042
+ .rg-switch input:checked + .rg-switch-track { background: var(--rg-gloss); border-color: var(--rg-primary); }
1043
+ .rg-switch input:checked + .rg-switch-track .rg-switch-thumb { transform: translateX(18px); }
1044
+ .rg-switch:has(input:disabled) .rg-switch-track { background: var(--rg-surface-soft); border: 1px dashed var(--rg-line-strong); box-shadow: none; filter: saturate(.35); }
1045
+ .rg-switch:has(input:disabled) .rg-switch-thumb { opacity: .58; box-shadow: none; }
1046
+ .rg-switch input:focus-visible + .rg-switch-track { outline: 2px solid var(--rg-focus); outline-offset: 2px; }
1047
+ .rg-segmented { display: inline-flex; flex-wrap: wrap; gap: 4px; }
1048
+ .rg-segment { font-size: 12px; }
1049
+ .rg-segment.is-active, .rg-segment[aria-pressed="true"], .rg-pagination-page[aria-current="page"] { background: var(--rg-gloss); color: var(--rg-gloss-ink); border-color: var(--rg-primary); }
1050
+ .rg-range { --usk-native-range-track-background: linear-gradient(90deg, var(--rg-primary) 0 var(--rg-value, 58%), var(--rg-surface-input) var(--rg-value, 58%) 100%); inline-size: 100%; min-block-size: 32px; padding: 0; margin: 0; appearance: none; background: transparent; border: 0; }
1051
+ .rg-range-critical { --usk-native-range-track-background: linear-gradient(90deg, var(--rg-success) 0 45%, var(--rg-warning) 45% 72%, var(--rg-danger) 72% 100%); }
1052
+ .rg-range::-webkit-slider-runnable-track { height: 7px; border: 1px solid var(--rg-line-strong); border-radius: var(--rg-radius-pill); background: var(--usk-native-range-track-background); box-shadow: inset 0 1px 2px var(--rg-recess); }
1053
+ .rg-range::-moz-range-track { height: 7px; border: 1px solid var(--rg-line-strong); border-radius: var(--rg-radius-pill); background: var(--usk-native-range-track-background); box-shadow: inset 0 1px 2px var(--rg-recess); }
1054
+ .rg-range::-moz-range-progress { background: transparent; }
1055
+ .rg-range::-webkit-slider-thumb { appearance: none; inline-size: 19px; block-size: 19px; margin-top: -7px; border: 1px solid var(--rg-line-strong); border-radius: 50%; background: var(--rg-control-material); box-shadow: inset 0 1px 0 var(--rg-highlight), 0 1px 3px rgb(0 0 0 / .4); }
1056
+ .rg-range::-moz-range-thumb { inline-size: 19px; block-size: 19px; border: 1px solid var(--rg-line-strong); border-radius: 50%; background: var(--rg-control-material); box-shadow: inset 0 1px 0 var(--rg-highlight), 0 1px 3px rgb(0 0 0 / .4); }
1057
+ .rg-progress { block-size: 12px; padding: 2px; border: 1px solid var(--rg-line-strong); border-radius: var(--rg-radius-pill); background: var(--rg-glass-inset); box-shadow: inset 0 1px 3px var(--rg-recess); overflow: hidden; }
1058
+ .rg-progress-bar { display: block; block-size: 100%; inline-size: var(--rg-progress-value, 64%); border-radius: inherit; background: repeating-linear-gradient(125deg, var(--rg-progress-stripe) 0 1px, transparent 1px 16px), var(--rg-progress-fill, var(--rg-gloss)); box-shadow: inset 0 1px 0 var(--rg-highlight); }
1059
+ .rg-progress-danger { --rg-progress-fill: var(--rg-danger-gloss); }
1060
+ .rg-meter { position: relative; block-size: 8px; margin-block: 12px; border: 1px solid var(--rg-line-strong); border-radius: var(--rg-radius-pill); background: linear-gradient(90deg, var(--rg-success) 0 46%, var(--rg-warning) 46% 72%, var(--rg-danger) 72% 100%); }
1061
+ .rg-meter::after { content: ""; position: absolute; inset-inline-start: clamp(0%, var(--rg-value, 72%), 100%); inset-block-start: 50%; inline-size: 18px; block-size: 18px; transform: translate(-50%, -50%); border: 1px solid var(--rg-line-strong); border-radius: 50%; background: var(--rg-control-material); box-shadow: inset 0 1px 0 var(--rg-highlight), 0 1px 3px rgb(0 0 0 / .4); }
1062
+ .rg-stepper { display: flex; align-items: start; justify-content: space-between; position: relative; list-style: none; margin: 16px 0 0; padding: 0; }
1063
+ /** Centers the connector after the list item's compact line leading is applied. */
1064
+ .rg-stepper::before { content: ""; position: absolute; inset-inline: 12%; inset-block-start: 15px; block-size: 2px; background: var(--rg-line-strong); }
1065
+ .rg-step { position: relative; flex: 1; color: var(--rg-text-soft); text-align: center; font: 12px/1.4 var(--rg-font-mono); }
1066
+ .rg-step b { display: flex; align-items: center; justify-content: center; inline-size: 24px; block-size: 24px; margin: 0 auto 8px; background: var(--rg-surface-soft); border: 1px solid var(--rg-line-strong); border-radius: 50%; }
1067
+ .rg-step.is-complete b { background: var(--rg-gloss); color: var(--rg-gloss-ink); border-color: var(--rg-primary); }
1068
+ .rg-step.is-active b { background: var(--rg-surface-input); color: var(--rg-link); border: 2px solid var(--rg-primary); }
1069
+ .rg-alert { display: flex; align-items: center; gap: 8px; min-block-size: 40px; padding: 8px; border: 1px solid var(--rg-primary); border-radius: var(--rg-radius-sm); background: var(--rg-glass-pane); color: var(--rg-text-soft); box-shadow: inset 0 1px 0 var(--rg-highlight); font: 14px/1.4 var(--rg-font-body); }
1070
+ .rg-alert-body { margin: 0; }
1071
+ .rg-alert-success { border-color: var(--rg-success); }
1072
+ .rg-alert-warning { border-color: var(--rg-warning); }
1073
+ .rg-alert-danger { border-color: var(--rg-danger); }
1074
+ .rg-alert > [aria-hidden="true"] { color: var(--rg-primary); }
1075
+ .rg-alert-success > [aria-hidden="true"] { color: var(--rg-success); }
1076
+ .rg-alert-warning > [aria-hidden="true"] { color: var(--rg-warning); }
1077
+ .rg-alert-danger > [aria-hidden="true"] { color: var(--rg-danger); }
1078
+ .rg-toast { display: flex; align-items: center; gap: 12px; padding: 12px; border: 1px solid var(--rg-line-strong); border-radius: var(--rg-radius-md); background: var(--rg-glass-pane); color: var(--rg-text); box-shadow: inset 0 1px 0 var(--rg-highlight); }
1079
+ .rg-toast strong { display: block; font: 700 14px/1.4 var(--rg-font-mono); }
1080
+ .rg-toast p { margin: 4px 0 0; color: var(--rg-text-soft); font: 14px/1.4 var(--rg-font-body); }
1081
+ .rg-skeleton { display: block; block-size: 10px; inline-size: 100%; border-radius: var(--rg-radius-pill); background: linear-gradient(90deg, var(--rg-surface-soft), rgb(var(--rg-text-rgb) / .12), var(--rg-surface-soft)); background-size: 200% 100%; animation: rg-template-pulse 1.5s ease-in-out infinite; }
1082
+ .rg-breadcrumb, .rg-tabs, .rg-pagination { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }
1083
+ .rg-breadcrumb { color: var(--rg-text-soft); font: 12px/1.4 var(--rg-font-mono); }
1084
+ .rg-breadcrumb a { color: var(--rg-text-soft); }
1085
+ .rg-breadcrumb [aria-current] { color: var(--rg-link); font-weight: 700; }
1086
+ .rg-tab { min-block-size: var(--rg-control-height); padding: 8px 12px; background: transparent; border: 0; border-bottom: 2px solid var(--rg-line-strong); border-radius: 6px 6px 0 0; color: var(--rg-text-soft); font: 700 12px/1.4 var(--rg-font-mono); cursor: pointer; }
1087
+ .rg-tab:hover, .rg-tab.is-active, .rg-tab[aria-selected="true"] { background: linear-gradient(rgb(var(--rg-primary-rgb) / .2), rgb(var(--rg-primary-rgb) / .2)), var(--rg-surface-input); border-bottom-color: var(--rg-primary); color: var(--rg-text); }
1088
+ .rg-pagination-page { min-inline-size: 36px; padding: 8px; font-size: 12px; }
1089
+ .rg-nav { padding: 0; background: transparent; border: 0; box-shadow: none; gap: 6px; }
1090
+ .rg-nav-link { min-block-size: var(--rg-control-height); padding: 8px 12px; background: var(--rg-control-material); border: 1px solid var(--rg-line-strong); border-radius: var(--rg-radius-sm); color: var(--rg-text-soft); text-shadow: none; letter-spacing: 0; }
1091
+ .rg-nav-link:hover { color: var(--rg-text); background: var(--rg-control-material); }
1092
+ .rg-nav-link.is-active, .rg-nav-link[aria-current="page"] { background: var(--rg-gloss); color: var(--rg-gloss-ink); box-shadow: inset 0 1px 0 var(--rg-highlight); }
1093
+ .rg-table-wrap { background: transparent; border: 0; box-shadow: none; }
1094
+ .rg-table { border-collapse: collapse; color: var(--rg-text-soft); font: 14px/1.4 var(--rg-font-body); }
1095
+ .rg-table th { padding: 8px; background: linear-gradient(180deg, rgb(var(--rg-surface-strong-rgb) / .15), transparent); color: var(--rg-text-soft); font: 700 12px/1.4 var(--rg-font-mono); text-shadow: none; }
1096
+ .rg-table td { padding: 8px; border-block-start: 1px solid var(--rg-line-color); }
1097
+ .rg-avatar { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 34px; inline-size: 34px; block-size: 34px; border: 2px solid var(--rg-surface-raised); border-radius: 50%; background: var(--rg-gloss); color: var(--rg-gloss-ink); box-shadow: 0 1px 3px rgb(0 0 0 / .3); font: 700 12px/1 var(--rg-font-body); }
1098
+ .rg-avatar-danger { background: var(--rg-danger-gloss); color: rgb(var(--usk-danger-text-rgb, 255 255 255)); }
1099
+ .rg-avatar-neutral { background: var(--rg-surface-soft); color: var(--rg-text); }
1100
+ .rg-avatar-group { display: flex; padding-inline-start: 7px; }
1101
+ .rg-avatar-group .rg-avatar { margin-inline-start: -7px; }
1102
+ .rg-list { padding-inline-start: 20px; margin: 0; color: var(--rg-text-soft); font: 14px/1.5 var(--rg-font-body); }
1103
+ .rg-list li { padding: 4px 0; }
1104
+ .rg-list li::marker { color: var(--rg-link); }
1105
+ .rg-tooltip, [data-ui="retro-glass"] :where(.ui-tooltip, [role="tooltip"], [data-tooltip]) { padding: 12px; max-inline-size: 100%; background: var(--rg-text); color: var(--rg-bg); border: 1px solid var(--rg-focus); border-radius: var(--rg-radius-sm); box-shadow: none; font: 700 12px/1.4 var(--rg-font-mono); letter-spacing: 0; }
1106
+ .rg-modal { max-inline-size: min(440px, calc(100vw - 32px)); }
1107
+ .rg-modal::backdrop { background: rgb(var(--rg-bg-rgb) / .7); }
1108
+ .rg-modal h3, .rg-popover strong { margin: 0 0 8px; color: var(--rg-text); font: 700 14px/1.4 var(--rg-font-mono); }
1109
+ .rg-modal p, .rg-popover p { margin: 0 0 12px; color: var(--rg-text-soft); }
1110
+ .rg-modal-actions { display: flex; flex-wrap: wrap; justify-content: end; gap: 8px; }
1111
+ .rg-accordion { margin: 0; padding: 0; background: var(--rg-glass-inset); border: 1px solid var(--rg-line-strong); border-radius: var(--rg-radius-sm); color: var(--rg-text); }
1112
+ .rg-accordion summary { min-block-size: 36px; padding: 10px 12px; font: 700 12px/1.4 var(--rg-font-mono); cursor: pointer; }
1113
+ .rg-accordion p { margin: 0; padding: 4px 12px 12px; color: var(--rg-text-soft); font: 14px/1.4 var(--rg-font-body); }
1114
+ .rg-code { display: block; margin: 0; padding: 12px; border-inline-start: 3px solid var(--rg-primary); border-radius: var(--rg-radius-sm); background: var(--rg-glass-inset); color: var(--rg-text-soft); white-space: pre-wrap; overflow-wrap: break-word; font: 12px/1.5 var(--rg-font-mono); }
1115
+ .rg-quote { margin: 0; padding: 8px 12px; border-inline-start: 3px solid var(--rg-primary); color: var(--rg-text-soft); font: italic 14px/1.5 var(--rg-font-body); }
1116
+ .rg-token-swatch { display: inline-flex; flex-direction: column; gap: 6px; min-inline-size: 46px; color: var(--rg-text-soft); font: 12px/1.3 var(--rg-font-mono); }
1117
+ .rg-token-swatch i { display: block; inline-size: 46px; block-size: 28px; border: 1px solid var(--rg-line-strong); border-radius: var(--rg-radius-sm); background: var(--rg-token-swatch-color, var(--rg-primary)); box-shadow: inset 0 1px 0 rgb(255 255 255 / .5), 0 1px 3px rgb(0 0 0 / .22); }
1118
+ .rg-spinner::before, .rg-spinner::after, .rg-loading-spinner::before, .rg-loading-spinner::after { content: none; }
1119
+ /** Marketing surfaces keep an opaque material and their own foreground pair. */
1120
+ .rg-icon-medallion { background: var(--rg-gloss); color: var(--rg-gloss-ink); border-color: var(--rg-line-strong); box-shadow: inset 0 1px 0 var(--rg-highlight), 0 2px 4px var(--rg-recess); }
1121
+ .rg-card-service > .rg-icon-medallion { font-size: 32px; font-weight: 800; }
1122
+ .rg-badge-seal { background: var(--rg-control-material); color: var(--rg-text); border-color: var(--rg-line-strong); box-shadow: inset 0 1px 0 var(--rg-highlight), 0 2px 4px var(--rg-recess); font-size: .78rem; }
1123
+ .rg-badge-seal > :where(strong, small) { color: inherit; opacity: 1; }
1124
+ [data-ui="retro-glass"][data-mode] :where(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="button"]):not([type="submit"]):not([type="reset"]), textarea, select) { border-radius: var(--rg-radius-sm); }
1125
+ [data-ui="retro-glass"][data-mode] :where(input[aria-invalid="true"], textarea[aria-invalid="true"], select[aria-invalid="true"]) { border-color: var(--rg-danger); box-shadow: inset 0 2px 5px var(--rg-material-shadow), 0 0 0 1px var(--rg-danger); }
1126
+ [data-ui="retro-glass"][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]) { border-style: dashed; filter: saturate(.72); opacity: .78; }
1127
+ .rg-choice input[type="checkbox"] { appearance: auto; }
1128
+ .rg-choice input[type="checkbox"]::before, .rg-choice input[type="checkbox"]::after { content: none; }
1129
+ [data-ui="retro-glass"] :focus-visible { outline: 2px solid var(--rg-focus); outline-offset: 2px; }
1130
+ @keyframes rg-template-pulse { 50% { background-position: -100% 0; } }
1131
+ @media (any-pointer: coarse) {
1132
+ .rg-button, .rg-icon-button, .rg-segment, .rg-pagination-page, .rg-option, .rg-tab, .rg-choice, .rg-switch, .rg-range, .rg-chip { min-block-size: 44px; }
1133
+ .rg-icon-button, .rg-pagination-page { min-inline-size: 44px; }
1134
+ .rg-accordion summary { min-block-size: 44px; }
1135
+ }
1136
+ @media (prefers-reduced-motion: reduce) {
1137
+ .rg-skeleton, .rg-spinner, .rg-loading-spinner,
1138
+ [data-ui="retro-glass"] :where(.ui-spinner, .loading-spinner, [data-loading-spinner]),
1139
+ .rg-button[aria-busy="true"]::after, .rg-icon-button[aria-busy="true"]::after,
1140
+ [data-ui="retro-glass"] :where(button[aria-busy="true"], input[type="button"][aria-busy="true"], input[type="submit"][aria-busy="true"], input[type="reset"][aria-busy="true"])::after { animation: none; }
1141
+ }
1142
+ @media (forced-colors: active) {
1143
+ .rg-switch input { position: static; opacity: 1; inline-size: 20px; block-size: 20px; }
1144
+ .rg-switch-track { display: none; }
1145
+ .rg-range { appearance: auto; }
1146
+ .rg-step b, .rg-progress { border-color: CanvasText; }
1147
+ .rg-step.is-complete b, .rg-progress-bar { background: Highlight; color: HighlightText; }
1148
+ }
1149
+ /** Warning actions inherit preset geometry and use the paired semantic warning colors. */
1150
+ [data-ui="retro-glass"][data-mode] .rg-button.rg-button-warning {
1151
+ background: var(--rg-warning);
1152
+ color: var(--rg-on-warning);
1153
+ border-color: var(--rg-warning);
1154
+ text-shadow: none;
1155
+ }
1156
+
1157
+ }
1158
+
1159
+ /**
1160
+ * Preserves shared annotation fixture spacing and icon weight after reference
1161
+ * overrides append their compact source rules.
1162
+ */
1163
+ [data-ui="retro-glass"][data-mode] .rg-title {
1164
+ margin-block: max(.75rem, 12px);
1165
+ letter-spacing: max(.06em, .5px);
1166
+ }
1167
+
1168
+ [data-ui="retro-glass"][data-mode] .rg-feature-item > .rg-icon-medallion {
1169
+ font-size: 1.5rem;
1170
+ line-height: 1;
1171
+ }
1172
+
1173
+ [data-ui="retro-glass"][data-mode] .rg-callout-bar > .rg-icon-medallion {
1174
+ min-inline-size: 4.5rem;
1175
+ min-block-size: 4.5rem;
1176
+ font-size: 2rem;
1177
+ font-weight: 800;
1178
+ line-height: 1;
1179
+ }