arekui 1.0.2 → 2.0.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 (98) hide show
  1. package/CHANGELOG.md +49 -0
  2. package/README.md +16 -188
  3. package/arekui.css +3018 -367
  4. package/arekui.d.ts +47 -47
  5. package/arekui.js +402 -35
  6. package/assets/img/grunge-wall-texture-freepick-kues1.webp +0 -0
  7. package/assets/img/logo.png +0 -0
  8. package/dist/css/arekui.base.min.css +1 -0
  9. package/dist/css/arekui.broadsheet.min.css +1 -0
  10. package/dist/css/arekui.brutalist.min.css +1 -0
  11. package/dist/css/arekui.default.min.css +1 -0
  12. package/dist/css/arekui.full.min.css +1 -0
  13. package/dist/css/arekui.min.css +1 -0
  14. package/dist/css/arekui.neo.min.css +1 -0
  15. package/dist/css/arekui.pixel.min.css +1 -0
  16. package/dist/js/arekui.min.js +2 -0
  17. package/package.json +14 -9
  18. package/scripts/build-css.js +95 -0
  19. package/scripts/build-custom.js +65 -96
  20. package/scripts/build-js.js +68 -0
  21. package/scripts/clean.js +13 -0
  22. package/scripts/dev.js +97 -0
  23. package/scripts/imports.js +18 -0
  24. package/scripts/split.js +256 -0
  25. package/src/arekui.base.css +63 -0
  26. package/src/arekui.broadsheet.css +6 -0
  27. package/src/arekui.brutalist.css +8 -0
  28. package/src/arekui.core.css +64 -0
  29. package/src/arekui.css +73 -56
  30. package/src/arekui.default.css +6 -0
  31. package/src/arekui.neo.css +8 -0
  32. package/src/arekui.pixel.css +8 -0
  33. package/src/base/brutalist-overrides.css +254 -0
  34. package/src/base/neo-overrides.css +46 -31
  35. package/src/base/pixel-overrides.css +336 -0
  36. package/src/base/reset.css +118 -4
  37. package/src/base/theme-brutalist.css +111 -0
  38. package/src/base/theme-default.css +184 -0
  39. package/src/base/theme-neo.css +108 -0
  40. package/src/base/theme-pixel.css +111 -0
  41. package/src/base/tokens.css +10 -253
  42. package/src/components/accordion.css +1 -2
  43. package/src/components/alert.css +1 -2
  44. package/src/components/badge.css +1 -2
  45. package/src/components/breadcrumb.css +2 -3
  46. package/src/components/broadsheet.css +264 -0
  47. package/src/components/button.css +3 -2
  48. package/src/components/card.css +1 -2
  49. package/src/components/carousel.css +37 -1
  50. package/src/components/chat.css +5 -4
  51. package/src/components/description-list.css +34 -0
  52. package/src/components/docs.css +252 -0
  53. package/src/components/empty.css +36 -0
  54. package/src/components/file-upload.css +2 -3
  55. package/src/components/footer.css +16 -1
  56. package/src/components/forms.css +1 -2
  57. package/src/components/heading.css +27 -0
  58. package/src/components/hero.css +1 -2
  59. package/src/components/join.css +1 -2
  60. package/src/components/kbd.css +15 -0
  61. package/src/components/link.css +2 -3
  62. package/src/components/loading.css +109 -0
  63. package/src/components/menu.css +51 -1
  64. package/src/components/misc.css +40 -1
  65. package/src/components/modal.css +1 -2
  66. package/src/components/navbar.css +131 -1
  67. package/src/components/pagination.css +7 -2
  68. package/src/components/popover.css +5 -6
  69. package/src/components/progress.css +1 -2
  70. package/src/components/prose.css +2 -2
  71. package/src/components/rating.css +1 -2
  72. package/src/components/scroll-top.css +2 -2
  73. package/src/components/segmented.css +44 -0
  74. package/src/components/sidebar.css +377 -0
  75. package/src/components/skeleton.css +2 -2
  76. package/src/components/spinner.css +36 -0
  77. package/src/components/swap.css +2 -2
  78. package/src/components/table.css +1 -2
  79. package/src/components/tabs.css +2 -3
  80. package/src/components/tag.css +10 -10
  81. package/src/components/textured.css +22 -2
  82. package/src/components/timeline.css +1 -2
  83. package/src/components/toast.css +2 -2
  84. package/src/components/tooltip.css +1 -2
  85. package/src/utilities/borders.css +2 -2
  86. package/src/utilities/brutalist-utilities.css +49 -0
  87. package/src/utilities/colors.css +11 -3
  88. package/src/utilities/hover.css +2 -2
  89. package/src/utilities/layout.css +2 -2
  90. package/src/utilities/neo-utilities.css +2 -9
  91. package/src/utilities/pixel-utilities.css +88 -0
  92. package/src/utilities/responsive.css +7 -2
  93. package/src/utilities/sizing.css +16 -7
  94. package/src/utilities/spacing.css +5 -2
  95. package/src/utilities/typography.css +5 -2
  96. package/dist/arekui.min.css +0 -1
  97. package/dist/arekui.min.js +0 -2
  98. package/src/components/drawer.css +0 -53
package/arekui.css CHANGED
@@ -1,7 +1,7 @@
1
1
  /*!
2
- * ARStyle v1.4.0
2
+ * ArekUI v2.0.0
3
3
  * A standalone CSS framework by Andika Rekatias.
4
- * No dependencies, no build step. Drop in one file.
4
+ * No browser runtime dependencies, no build step. Drop in one file.
5
5
  *
6
6
  * MIT License — see LICENSE.
7
7
  */
@@ -31,6 +31,12 @@
31
31
  --ar-s-12: 3rem;
32
32
  --ar-s-16: 4rem;
33
33
  --ar-s-20: 5rem;
34
+ --ar-s-24: 6rem;
35
+ --ar-s-32: 8rem;
36
+ --ar-s-40: 10rem;
37
+ --ar-s-48: 12rem;
38
+ --ar-s-60: 15rem;
39
+ --ar-s-80: 20rem;
34
40
 
35
41
  --ar-radius-field: 0.25rem;
36
42
  --ar-radius-box: 0.5rem;
@@ -39,6 +45,8 @@
39
45
 
40
46
  --ar-border-width: 1px;
41
47
 
48
+ --ar-nav-h: 4.5rem;
49
+
42
50
  --ar-shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
43
51
  --ar-shadow-md:
44
52
  0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
@@ -48,8 +56,6 @@
48
56
  0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
49
57
  --ar-shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / 0.25);
50
58
 
51
- /* Relative to this stylesheet — override the token if you serve
52
- arekui.css from another path or want a different texture. */
53
59
  --ar-texture: url("assets/img/grunge-wall-texture-freepick-kues1.webp");
54
60
 
55
61
  --ar-gray-50: #fafafa;
@@ -62,28 +68,39 @@
62
68
  --ar-gray-700: #404040;
63
69
  --ar-gray-800: #262626;
64
70
  --ar-gray-900: #171717;
71
+ }
65
72
 
66
- /* Dark palette — single source of truth shared by
67
- html[data-theme="dark"] and the prefers-color-scheme fallback. */
73
+ /* ============================================================
74
+ 1b. THEME / DEFAULT
75
+ ============================================================ */
76
+ :root {
68
77
  --ar-dark-base-100: oklch(25.33% 0.016 252.42);
69
78
  --ar-dark-base-200: oklch(23.26% 0.014 253.1);
70
79
  --ar-dark-base-300: oklch(21.15% 0.012 254.09);
71
80
  --ar-dark-base-content: oklch(97.807% 0.029 256.847);
72
- --ar-dark-primary: oklch(58% 0.233 277.117);
81
+ --ar-dark-primary: oklch(56% 0.233 277.117);
82
+ --ar-dark-primary-text: oklch(70% 0.233 277.117);
73
83
  --ar-dark-primary-content: oklch(96% 0.018 272.314);
74
84
  --ar-dark-secondary: oklch(65% 0.241 354.308);
85
+ --ar-dark-secondary-text: oklch(72% 0.241 354.308);
75
86
  --ar-dark-secondary-content: oklch(94% 0.028 342.258);
76
87
  --ar-dark-accent: oklch(77% 0.152 181.912);
88
+ --ar-dark-accent-text: var(--ar-dark-accent);
77
89
  --ar-dark-accent-content: oklch(38% 0.063 188.416);
78
90
  --ar-dark-neutral: oklch(14% 0.005 285.823);
91
+ --ar-dark-neutral-text: oklch(66% 0.005 285.823);
79
92
  --ar-dark-neutral-content: oklch(92% 0.004 286.32);
80
93
  --ar-dark-info: oklch(74% 0.16 232.661);
94
+ --ar-dark-info-text: var(--ar-dark-info);
81
95
  --ar-dark-info-content: oklch(29% 0.066 243.157);
82
96
  --ar-dark-success: oklch(76% 0.177 163.223);
97
+ --ar-dark-success-text: var(--ar-dark-success);
83
98
  --ar-dark-success-content: oklch(37% 0.077 168.94);
84
99
  --ar-dark-warning: oklch(82% 0.189 84.429);
100
+ --ar-dark-warning-text: var(--ar-dark-warning);
85
101
  --ar-dark-warning-content: oklch(41% 0.112 45.904);
86
102
  --ar-dark-error: oklch(71% 0.194 13.428);
103
+ --ar-dark-error-text: var(--ar-dark-error);
87
104
  --ar-dark-error-content: oklch(27% 0.105 12.094);
88
105
  --ar-dark-bg-img-fill: rgb(152 159 171 / 0.3);
89
106
  --ar-dark-desc-grad: linear-gradient(
@@ -104,54 +121,6 @@
104
121
  --ar-dark-gray-800: #dddddd;
105
122
  --ar-dark-gray-900: #eeeeee;
106
123
  --ar-dark-base-content-80: oklch(97.807% 0.029 256.847 / 0.8);
107
-
108
- /* --------------------------------------------------------
109
- NEOBRUTALISM palette — single source of truth.
110
- Referenced by html[data-theme="neo"] below.
111
- -------------------------------------------------------- */
112
- --ar-neo-base-100: #ffffff;
113
- --ar-neo-base-200: #f8f8f8;
114
- --ar-neo-base-300: #e8e8e8;
115
- --ar-neo-base-content: #1e293b;
116
- --ar-neo-base-content-80: rgb(30 41 59 / 0.8);
117
- --ar-neo-primary: #00aeef;
118
- --ar-neo-primary-content: #ffffff;
119
- --ar-neo-secondary: #8bc53f;
120
- --ar-neo-secondary-content: #ffffff;
121
- --ar-neo-accent: #ffd100;
122
- --ar-neo-accent-content: #1e293b;
123
- --ar-neo-neutral: #1e293b;
124
- --ar-neo-neutral-content: #ffffff;
125
- --ar-neo-info: #00aeef;
126
- --ar-neo-info-content: #ffffff;
127
- --ar-neo-success: #8bc53f;
128
- --ar-neo-success-content: #ffffff;
129
- --ar-neo-warning: #ffd100;
130
- --ar-neo-warning-content: #1e293b;
131
- --ar-neo-error: #e4002b;
132
- --ar-neo-error-content: #ffffff;
133
- --ar-neo-bg-img-fill: #1e293b;
134
- --ar-neo-desc-grad: linear-gradient(to left, #f8f8f8 50%, #1e293b 50%) right;
135
- --ar-neo-arc: #ffffff;
136
- --ar-neo-gray-50: #f8f8f8;
137
- --ar-neo-gray-100: #f0f0f0;
138
- --ar-neo-gray-200: #e0e0e0;
139
- --ar-neo-gray-300: #cccccc;
140
- --ar-neo-gray-400: #999999;
141
- --ar-neo-gray-500: #777777;
142
- --ar-neo-gray-600: #555555;
143
- --ar-neo-gray-700: #333333;
144
- --ar-neo-gray-800: #222222;
145
- --ar-neo-gray-900: #111111;
146
-
147
- /* Neobrutalism-specific tokens */
148
- --ar-neo-border-width: 3px;
149
- --ar-neo-border-color: #1e293b;
150
- --ar-neo-shadow-sm: 2px 2px 0px 0px #1e293b;
151
- --ar-neo-shadow-md: 4px 4px 0px 0px #1e293b;
152
- --ar-neo-shadow-lg: 6px 6px 0px 0px #1e293b;
153
- --ar-neo-shadow-xl: 8px 8px 0px 0px #1e293b;
154
- --ar-neo-shadow-2xl: 12px 12px 0px 0px #1e293b;
155
124
  }
156
125
 
157
126
  html[data-theme="light"] {
@@ -162,20 +131,28 @@ html[data-theme="light"] {
162
131
  --ar-base-content: oklch(0% 0 0);
163
132
  --ar-base-content-80: oklch(0% 0 0 / 0.8);
164
133
  --ar-primary: oklch(15.906% 0 0);
134
+ --ar-primary-text: var(--ar-primary);
165
135
  --ar-primary-content: oklch(100% 0 0);
166
136
  --ar-secondary: oklch(21.455% 0.001 17.278);
137
+ --ar-secondary-text: var(--ar-secondary);
167
138
  --ar-secondary-content: oklch(100% 0 0);
168
139
  --ar-accent: oklch(26.861% 0 0);
140
+ --ar-accent-text: var(--ar-accent);
169
141
  --ar-accent-content: oklch(100% 0 0);
170
142
  --ar-neutral: oklch(0% 0 0);
143
+ --ar-neutral-text: var(--ar-neutral);
171
144
  --ar-neutral-content: oklch(100% 0 0);
172
145
  --ar-info: oklch(79.54% 0.103 205.9);
146
+ --ar-info-text: oklch(42% 0.103 205.9);
173
147
  --ar-info-content: oklch(15.908% 0.02 205.9);
174
148
  --ar-success: oklch(90.13% 0.153 164.14);
149
+ --ar-success-text: oklch(42% 0.153 164.14);
175
150
  --ar-success-content: oklch(18.026% 0.03 164.14);
176
151
  --ar-warning: oklch(88.37% 0.135 79.94);
152
+ --ar-warning-text: oklch(42% 0.135 79.94);
177
153
  --ar-warning-content: oklch(17.674% 0.027 79.94);
178
154
  --ar-error: oklch(78.66% 0.15 28.47);
155
+ --ar-error-text: oklch(44% 0.15 28.47);
179
156
  --ar-error-content: oklch(15.732% 0.03 28.47);
180
157
  --ar-bg-img-fill: transparent;
181
158
  --ar-desc-grad: linear-gradient(
@@ -195,20 +172,28 @@ html[data-theme="dark"] {
195
172
  --ar-base-content: var(--ar-dark-base-content);
196
173
  --ar-base-content-80: var(--ar-dark-base-content-80);
197
174
  --ar-primary: var(--ar-dark-primary);
175
+ --ar-primary-text: var(--ar-dark-primary-text);
198
176
  --ar-primary-content: var(--ar-dark-primary-content);
199
177
  --ar-secondary: var(--ar-dark-secondary);
178
+ --ar-secondary-text: var(--ar-dark-secondary-text);
200
179
  --ar-secondary-content: var(--ar-dark-secondary-content);
201
180
  --ar-accent: var(--ar-dark-accent);
181
+ --ar-accent-text: var(--ar-dark-accent-text);
202
182
  --ar-accent-content: var(--ar-dark-accent-content);
203
183
  --ar-neutral: var(--ar-dark-neutral);
184
+ --ar-neutral-text: var(--ar-dark-neutral-text);
204
185
  --ar-neutral-content: var(--ar-dark-neutral-content);
205
186
  --ar-info: var(--ar-dark-info);
187
+ --ar-info-text: var(--ar-dark-info-text);
206
188
  --ar-info-content: var(--ar-dark-info-content);
207
189
  --ar-success: var(--ar-dark-success);
190
+ --ar-success-text: var(--ar-dark-success-text);
208
191
  --ar-success-content: var(--ar-dark-success-content);
209
192
  --ar-warning: var(--ar-dark-warning);
193
+ --ar-warning-text: var(--ar-dark-warning-text);
210
194
  --ar-warning-content: var(--ar-dark-warning-content);
211
195
  --ar-error: var(--ar-dark-error);
196
+ --ar-error-text: var(--ar-dark-error-text);
212
197
  --ar-error-content: var(--ar-dark-error-content);
213
198
  --ar-bg-img-fill: var(--ar-dark-bg-img-fill);
214
199
  --ar-desc-grad: var(--ar-dark-desc-grad);
@@ -234,20 +219,28 @@ html[data-theme="dark"] {
234
219
  --ar-base-content: var(--ar-dark-base-content);
235
220
  --ar-base-content-80: var(--ar-dark-base-content-80);
236
221
  --ar-primary: var(--ar-dark-primary);
222
+ --ar-primary-text: var(--ar-dark-primary-text);
237
223
  --ar-primary-content: var(--ar-dark-primary-content);
238
224
  --ar-secondary: var(--ar-dark-secondary);
225
+ --ar-secondary-text: var(--ar-dark-secondary-text);
239
226
  --ar-secondary-content: var(--ar-dark-secondary-content);
240
227
  --ar-accent: var(--ar-dark-accent);
228
+ --ar-accent-text: var(--ar-dark-accent-text);
241
229
  --ar-accent-content: var(--ar-dark-accent-content);
242
230
  --ar-neutral: var(--ar-dark-neutral);
231
+ --ar-neutral-text: var(--ar-dark-neutral-text);
243
232
  --ar-neutral-content: var(--ar-dark-neutral-content);
244
233
  --ar-info: var(--ar-dark-info);
234
+ --ar-info-text: var(--ar-dark-info-text);
245
235
  --ar-info-content: var(--ar-dark-info-content);
246
236
  --ar-success: var(--ar-dark-success);
237
+ --ar-success-text: var(--ar-dark-success-text);
247
238
  --ar-success-content: var(--ar-dark-success-content);
248
239
  --ar-warning: var(--ar-dark-warning);
240
+ --ar-warning-text: var(--ar-dark-warning-text);
249
241
  --ar-warning-content: var(--ar-dark-warning-content);
250
242
  --ar-error: var(--ar-dark-error);
243
+ --ar-error-text: var(--ar-dark-error-text);
251
244
  --ar-error-content: var(--ar-dark-error-content);
252
245
  --ar-bg-img-fill: var(--ar-dark-bg-img-fill);
253
246
  --ar-desc-grad: var(--ar-dark-desc-grad);
@@ -265,6 +258,62 @@ html[data-theme="dark"] {
265
258
  }
266
259
  }
267
260
 
261
+ /* ============================================================
262
+ 1c. THEME / NEO
263
+ ============================================================ */
264
+ :root {
265
+ --ar-neo-base-100: #ffffff;
266
+ --ar-neo-base-200: #f8f8f8;
267
+ --ar-neo-base-300: #e8e8e8;
268
+ --ar-neo-base-content: #1e293b;
269
+ --ar-neo-base-content-80: rgb(30 41 59 / 0.8);
270
+ --ar-neo-primary: #00aeef;
271
+ --ar-neo-primary-text: #006e93;
272
+ --ar-neo-primary-content: #1e293b;
273
+ --ar-neo-secondary: #8bc53f;
274
+ --ar-neo-secondary-text: #466b12;
275
+ --ar-neo-secondary-content: #ffffff;
276
+ --ar-neo-accent: #ffd100;
277
+ --ar-neo-accent-text: #7a6200;
278
+ --ar-neo-accent-content: #1e293b;
279
+ --ar-neo-neutral: #1e293b;
280
+ --ar-neo-neutral-text: var(--ar-neo-neutral);
281
+ --ar-neo-neutral-content: #ffffff;
282
+ --ar-neo-info: #00aeef;
283
+ --ar-neo-info-text: var(--ar-neo-primary-text);
284
+ --ar-neo-info-content: #ffffff;
285
+ --ar-neo-success: #8bc53f;
286
+ --ar-neo-success-text: var(--ar-neo-secondary-text);
287
+ --ar-neo-success-content: #ffffff;
288
+ --ar-neo-warning: #ffd100;
289
+ --ar-neo-warning-text: var(--ar-neo-accent-text);
290
+ --ar-neo-warning-content: #1e293b;
291
+ --ar-neo-error: #e4002b;
292
+ --ar-neo-error-text: #c40026;
293
+ --ar-neo-error-content: #ffffff;
294
+ --ar-neo-bg-img-fill: #1e293b;
295
+ --ar-neo-desc-grad: linear-gradient(to left, #f8f8f8 50%, #1e293b 50%) right;
296
+ --ar-neo-arc: #ffffff;
297
+ --ar-neo-gray-50: #f8f8f8;
298
+ --ar-neo-gray-100: #f0f0f0;
299
+ --ar-neo-gray-200: #e0e0e0;
300
+ --ar-neo-gray-300: #cccccc;
301
+ --ar-neo-gray-400: #999999;
302
+ --ar-neo-gray-500: #777777;
303
+ --ar-neo-gray-600: #555555;
304
+ --ar-neo-gray-700: #333333;
305
+ --ar-neo-gray-800: #222222;
306
+ --ar-neo-gray-900: #111111;
307
+
308
+ --ar-neo-border-width: 3px;
309
+ --ar-neo-border-color: #1e293b;
310
+ --ar-neo-shadow-sm: 2px 2px 0px 0px #1e293b;
311
+ --ar-neo-shadow-md: 4px 4px 0px 0px #1e293b;
312
+ --ar-neo-shadow-lg: 6px 6px 0px 0px #1e293b;
313
+ --ar-neo-shadow-xl: 8px 8px 0px 0px #1e293b;
314
+ --ar-neo-shadow-2xl: 12px 12px 0px 0px #1e293b;
315
+ }
316
+
268
317
  html[data-theme="neo"] {
269
318
  color-scheme: light;
270
319
  --ar-base-100: var(--ar-neo-base-100);
@@ -273,20 +322,28 @@ html[data-theme="neo"] {
273
322
  --ar-base-content: var(--ar-neo-base-content);
274
323
  --ar-base-content-80: var(--ar-neo-base-content-80);
275
324
  --ar-primary: var(--ar-neo-primary);
325
+ --ar-primary-text: var(--ar-neo-primary-text);
276
326
  --ar-primary-content: var(--ar-neo-primary-content);
277
327
  --ar-secondary: var(--ar-neo-secondary);
328
+ --ar-secondary-text: var(--ar-neo-secondary-text);
278
329
  --ar-secondary-content: var(--ar-neo-secondary-content);
279
330
  --ar-accent: var(--ar-neo-accent);
331
+ --ar-accent-text: var(--ar-neo-accent-text);
280
332
  --ar-accent-content: var(--ar-neo-accent-content);
281
333
  --ar-neutral: var(--ar-neo-neutral);
334
+ --ar-neutral-text: var(--ar-neo-neutral-text);
282
335
  --ar-neutral-content: var(--ar-neo-neutral-content);
283
336
  --ar-info: var(--ar-neo-info);
337
+ --ar-info-text: var(--ar-neo-info-text);
284
338
  --ar-info-content: var(--ar-neo-info-content);
285
339
  --ar-success: var(--ar-neo-success);
340
+ --ar-success-text: var(--ar-neo-success-text);
286
341
  --ar-success-content: var(--ar-neo-success-content);
287
342
  --ar-warning: var(--ar-neo-warning);
343
+ --ar-warning-text: var(--ar-neo-warning-text);
288
344
  --ar-warning-content: var(--ar-neo-warning-content);
289
345
  --ar-error: var(--ar-neo-error);
346
+ --ar-error-text: var(--ar-neo-error-text);
290
347
  --ar-error-content: var(--ar-neo-error-content);
291
348
  --ar-bg-img-fill: var(--ar-neo-bg-img-fill);
292
349
  --ar-desc-grad: var(--ar-neo-desc-grad);
@@ -301,7 +358,7 @@ html[data-theme="neo"] {
301
358
  --ar-gray-700: var(--ar-neo-gray-700);
302
359
  --ar-gray-800: var(--ar-neo-gray-800);
303
360
  --ar-gray-900: var(--ar-neo-gray-900);
304
- /* Override design tokens for neobrutalism */
361
+
305
362
  --ar-border-width: var(--ar-neo-border-width);
306
363
  --ar-radius-field: 0.5rem;
307
364
  --ar-radius-box: 0.75rem;
@@ -313,6 +370,236 @@ html[data-theme="neo"] {
313
370
  --ar-base-font: var(--ar-font-sans);
314
371
  }
315
372
 
373
+ /* ============================================================
374
+ 1d. THEME / PIXEL
375
+ ============================================================ */
376
+ :root {
377
+ --ar-pixel-base-100: #f4f1e8;
378
+ --ar-pixel-base-200: #e8e4d8;
379
+ --ar-pixel-base-300: #d4cfc0;
380
+ --ar-pixel-base-content: #1a1a2e;
381
+ --ar-pixel-base-content-80: rgb(26 26 46 / 0.8);
382
+ --ar-pixel-primary: #4a90d9;
383
+ --ar-pixel-primary-text: #276599;
384
+ --ar-pixel-primary-content: #1a1a2e;
385
+ --ar-pixel-secondary: #e07a5f;
386
+ --ar-pixel-secondary-text: #9c3f2b;
387
+ --ar-pixel-secondary-content: #ffffff;
388
+ --ar-pixel-accent: #f2cc8f;
389
+ --ar-pixel-accent-text: #6e551d;
390
+ --ar-pixel-accent-content: #1a1a2e;
391
+ --ar-pixel-neutral: #2d3436;
392
+ --ar-pixel-neutral-text: var(--ar-pixel-neutral);
393
+ --ar-pixel-neutral-content: #ffffff;
394
+ --ar-pixel-info: #4a90d9;
395
+ --ar-pixel-info-text: var(--ar-pixel-primary-text);
396
+ --ar-pixel-info-content: #ffffff;
397
+ --ar-pixel-success: #81b29a;
398
+ --ar-pixel-success-text: #2f5c46;
399
+ --ar-pixel-success-content: #1a1a2e;
400
+ --ar-pixel-warning: #f2cc8f;
401
+ --ar-pixel-warning-text: var(--ar-pixel-accent-text);
402
+ --ar-pixel-warning-content: #1a1a2e;
403
+ --ar-pixel-error: #e07a5f;
404
+ --ar-pixel-error-text: var(--ar-pixel-secondary-text);
405
+ --ar-pixel-error-content: #ffffff;
406
+ --ar-pixel-bg-img-fill: rgb(26 26 46 / 0.1);
407
+ --ar-pixel-desc-grad: linear-gradient(to left, #e8e4d8 50%, #2d3436 50%) right;
408
+ --ar-pixel-arc: #d4cfc0;
409
+ --ar-pixel-gray-50: #f4f1e8;
410
+ --ar-pixel-gray-100: #e8e4d8;
411
+ --ar-pixel-gray-200: #d4cfc0;
412
+ --ar-pixel-gray-300: #b8b3a3;
413
+ --ar-pixel-gray-400: #9c9787;
414
+ --ar-pixel-gray-500: #807c6c;
415
+ --ar-pixel-gray-600: #645f4f;
416
+ --ar-pixel-gray-700: #484434;
417
+ --ar-pixel-gray-800: #2c2919;
418
+ --ar-pixel-gray-900: #1a1a2e;
419
+
420
+ --ar-pixel-border-width: 2px;
421
+ --ar-pixel-border-color: #1a1a2e;
422
+ --ar-pixel-shadow-sm: 2px 2px 0px 0px #1a1a2e;
423
+ --ar-pixel-shadow-md: 4px 4px 0px 0px #1a1a2e;
424
+ --ar-pixel-shadow-lg: 6px 6px 0px 0px #1a1a2e;
425
+ --ar-pixel-shadow-xl: 8px 8px 0px 0px #1a1a2e;
426
+ --ar-pixel-shadow-2xl: 12px 12px 0px 0px #1a1a2e;
427
+ --ar-pixel-radius: 0;
428
+ }
429
+
430
+ html[data-theme="pixel"] {
431
+ color-scheme: light;
432
+ --ar-base-100: var(--ar-pixel-base-100);
433
+ --ar-base-200: var(--ar-pixel-base-200);
434
+ --ar-base-300: var(--ar-pixel-base-300);
435
+ --ar-base-content: var(--ar-pixel-base-content);
436
+ --ar-base-content-80: var(--ar-pixel-base-content-80);
437
+ --ar-primary: var(--ar-pixel-primary);
438
+ --ar-primary-text: var(--ar-pixel-primary-text);
439
+ --ar-primary-content: var(--ar-pixel-primary-content);
440
+ --ar-secondary: var(--ar-pixel-secondary);
441
+ --ar-secondary-text: var(--ar-pixel-secondary-text);
442
+ --ar-secondary-content: var(--ar-pixel-secondary-content);
443
+ --ar-accent: var(--ar-pixel-accent);
444
+ --ar-accent-text: var(--ar-pixel-accent-text);
445
+ --ar-accent-content: var(--ar-pixel-accent-content);
446
+ --ar-neutral: var(--ar-pixel-neutral);
447
+ --ar-neutral-text: var(--ar-pixel-neutral-text);
448
+ --ar-neutral-content: var(--ar-pixel-neutral-content);
449
+ --ar-info: var(--ar-pixel-info);
450
+ --ar-info-text: var(--ar-pixel-info-text);
451
+ --ar-info-content: var(--ar-pixel-info-content);
452
+ --ar-success: var(--ar-pixel-success);
453
+ --ar-success-text: var(--ar-pixel-success-text);
454
+ --ar-success-content: var(--ar-pixel-success-content);
455
+ --ar-warning: var(--ar-pixel-warning);
456
+ --ar-warning-text: var(--ar-pixel-warning-text);
457
+ --ar-warning-content: var(--ar-pixel-warning-content);
458
+ --ar-error: var(--ar-pixel-error);
459
+ --ar-error-text: var(--ar-pixel-error-text);
460
+ --ar-error-content: var(--ar-pixel-error-content);
461
+ --ar-bg-img-fill: var(--ar-pixel-bg-img-fill);
462
+ --ar-desc-grad: var(--ar-pixel-desc-grad);
463
+ --ar-arc: var(--ar-pixel-arc);
464
+ --ar-gray-50: var(--ar-pixel-gray-50);
465
+ --ar-gray-100: var(--ar-pixel-gray-100);
466
+ --ar-gray-200: var(--ar-pixel-gray-200);
467
+ --ar-gray-300: var(--ar-pixel-gray-300);
468
+ --ar-gray-400: var(--ar-pixel-gray-400);
469
+ --ar-gray-500: var(--ar-pixel-gray-500);
470
+ --ar-gray-600: var(--ar-pixel-gray-600);
471
+ --ar-gray-700: var(--ar-pixel-gray-700);
472
+ --ar-gray-800: var(--ar-pixel-gray-800);
473
+ --ar-gray-900: var(--ar-pixel-gray-900);
474
+
475
+ --ar-border-width: var(--ar-pixel-border-width);
476
+ --ar-radius-field: var(--ar-pixel-radius);
477
+ --ar-radius-box: var(--ar-pixel-radius);
478
+ --ar-radius-selector: var(--ar-pixel-radius);
479
+ --ar-radius-pill: var(--ar-pixel-radius);
480
+ --ar-shadow-sm: var(--ar-pixel-shadow-sm);
481
+ --ar-shadow-md: var(--ar-pixel-shadow-md);
482
+ --ar-shadow-lg: var(--ar-pixel-shadow-lg);
483
+ --ar-shadow-xl: var(--ar-pixel-shadow-xl);
484
+ --ar-shadow-2xl: var(--ar-pixel-shadow-2xl);
485
+ --ar-base-font: var(--ar-font-mono);
486
+ }
487
+
488
+ /* ============================================================
489
+ 1e. THEME / BRUTALIST
490
+ ============================================================ */
491
+ :root {
492
+ --ar-brutalist-base-100: #f1efe9;
493
+ --ar-brutalist-base-200: #e7e5dc;
494
+ --ar-brutalist-base-300: #d6d3c8;
495
+ --ar-brutalist-base-content: #0a0a0a;
496
+ --ar-brutalist-base-content-80: rgb(10 10 10 / 0.8);
497
+ --ar-brutalist-primary: #0a0a0a;
498
+ --ar-brutalist-primary-text: var(--ar-brutalist-primary);
499
+ --ar-brutalist-primary-content: #f1efe9;
500
+ --ar-brutalist-secondary: #e7e5dc;
501
+ --ar-brutalist-secondary-text: var(--ar-brutalist-secondary-content);
502
+ --ar-brutalist-secondary-content: #0a0a0a;
503
+ --ar-brutalist-accent: #ea580c;
504
+ --ar-brutalist-accent-text: #b03e0a;
505
+ --ar-brutalist-accent-content: #ffffff;
506
+ --ar-brutalist-neutral: #1c1b17;
507
+ --ar-brutalist-neutral-text: var(--ar-brutalist-neutral);
508
+ --ar-brutalist-neutral-content: #f1efe9;
509
+ --ar-brutalist-info: #2563eb;
510
+ --ar-brutalist-info-text: #1e40af;
511
+ --ar-brutalist-info-content: #ffffff;
512
+ --ar-brutalist-success: #16a34a;
513
+ --ar-brutalist-success-text: #136f38;
514
+ --ar-brutalist-success-content: #ffffff;
515
+ --ar-brutalist-warning: #d97706;
516
+ --ar-brutalist-warning-text: #a04a08;
517
+ --ar-brutalist-warning-content: #ffffff;
518
+ --ar-brutalist-error: #dc2626;
519
+ --ar-brutalist-error-text: #b91c1c;
520
+ --ar-brutalist-error-content: #ffffff;
521
+ --ar-brutalist-bg-img-fill: rgb(10 10 10 / 0.06);
522
+ --ar-brutalist-desc-grad: linear-gradient(to left, #f1efe9 50%, #0a0a0a 50%) right;
523
+ --ar-brutalist-arc: #d6d3c8;
524
+ --ar-brutalist-gray-50: #faf9f4;
525
+ --ar-brutalist-gray-100: #f1efe9;
526
+ --ar-brutalist-gray-200: #e7e5dc;
527
+ --ar-brutalist-gray-300: #d6d3c8;
528
+ --ar-brutalist-gray-400: #a8a49a;
529
+ --ar-brutalist-gray-500: #7c786e;
530
+ --ar-brutalist-gray-600: #56534b;
531
+ --ar-brutalist-gray-700: #3a3833;
532
+ --ar-brutalist-gray-800: #23221d;
533
+ --ar-brutalist-gray-900: #0a0a0a;
534
+
535
+ --ar-brutalist-border-width: 1px;
536
+ --ar-brutalist-border-color: #0a0a0a;
537
+ --ar-brutalist-shadow-sm: none;
538
+ --ar-brutalist-shadow-md: none;
539
+ --ar-brutalist-shadow-lg: none;
540
+ --ar-brutalist-shadow-xl: none;
541
+ --ar-brutalist-shadow-2xl: none;
542
+ --ar-brutalist-radius: 0;
543
+ }
544
+
545
+ html[data-theme="brutalist"] {
546
+ color-scheme: light;
547
+ --ar-base-100: var(--ar-brutalist-base-100);
548
+ --ar-base-200: var(--ar-brutalist-base-200);
549
+ --ar-base-300: var(--ar-brutalist-base-300);
550
+ --ar-base-content: var(--ar-brutalist-base-content);
551
+ --ar-base-content-80: var(--ar-brutalist-base-content-80);
552
+ --ar-primary: var(--ar-brutalist-primary);
553
+ --ar-primary-text: var(--ar-brutalist-primary-text);
554
+ --ar-primary-content: var(--ar-brutalist-primary-content);
555
+ --ar-secondary: var(--ar-brutalist-secondary);
556
+ --ar-secondary-text: var(--ar-brutalist-secondary-text);
557
+ --ar-secondary-content: var(--ar-brutalist-secondary-content);
558
+ --ar-accent: var(--ar-brutalist-accent);
559
+ --ar-accent-text: var(--ar-brutalist-accent-text);
560
+ --ar-accent-content: var(--ar-brutalist-accent-content);
561
+ --ar-neutral: var(--ar-brutalist-neutral);
562
+ --ar-neutral-text: var(--ar-brutalist-neutral-text);
563
+ --ar-neutral-content: var(--ar-brutalist-neutral-content);
564
+ --ar-info: var(--ar-brutalist-info);
565
+ --ar-info-text: var(--ar-brutalist-info-text);
566
+ --ar-info-content: var(--ar-brutalist-info-content);
567
+ --ar-success: var(--ar-brutalist-success);
568
+ --ar-success-text: var(--ar-brutalist-success-text);
569
+ --ar-success-content: var(--ar-brutalist-success-content);
570
+ --ar-warning: var(--ar-brutalist-warning);
571
+ --ar-warning-text: var(--ar-brutalist-warning-text);
572
+ --ar-warning-content: var(--ar-brutalist-warning-content);
573
+ --ar-error: var(--ar-brutalist-error);
574
+ --ar-error-text: var(--ar-brutalist-error-text);
575
+ --ar-error-content: var(--ar-brutalist-error-content);
576
+ --ar-bg-img-fill: var(--ar-brutalist-bg-img-fill);
577
+ --ar-desc-grad: var(--ar-brutalist-desc-grad);
578
+ --ar-arc: var(--ar-brutalist-arc);
579
+ --ar-gray-50: var(--ar-brutalist-gray-50);
580
+ --ar-gray-100: var(--ar-brutalist-gray-100);
581
+ --ar-gray-200: var(--ar-brutalist-gray-200);
582
+ --ar-gray-300: var(--ar-brutalist-gray-300);
583
+ --ar-gray-400: var(--ar-brutalist-gray-400);
584
+ --ar-gray-500: var(--ar-brutalist-gray-500);
585
+ --ar-gray-600: var(--ar-brutalist-gray-600);
586
+ --ar-gray-700: var(--ar-brutalist-gray-700);
587
+ --ar-gray-800: var(--ar-brutalist-gray-800);
588
+ --ar-gray-900: var(--ar-brutalist-gray-900);
589
+
590
+ --ar-border-width: var(--ar-brutalist-border-width);
591
+ --ar-radius-field: var(--ar-brutalist-radius);
592
+ --ar-radius-box: var(--ar-brutalist-radius);
593
+ --ar-radius-selector: var(--ar-brutalist-radius);
594
+ --ar-radius-pill: var(--ar-brutalist-radius);
595
+ --ar-shadow-sm: var(--ar-brutalist-shadow-sm);
596
+ --ar-shadow-md: var(--ar-brutalist-shadow-md);
597
+ --ar-shadow-lg: var(--ar-brutalist-shadow-lg);
598
+ --ar-shadow-xl: var(--ar-brutalist-shadow-xl);
599
+ --ar-shadow-2xl: var(--ar-brutalist-shadow-2xl);
600
+ --ar-base-font: var(--ar-font-mono);
601
+ }
602
+
316
603
  /* ============================================================
317
604
  2. BASE / RESET
318
605
  ============================================================ */
@@ -346,7 +633,7 @@ p {
346
633
  }
347
634
 
348
635
  a {
349
- color: var(--ar-primary);
636
+ color: var(--ar-primary-text);
350
637
  text-decoration: none;
351
638
  }
352
639
 
@@ -379,8 +666,122 @@ code {
379
666
  outline-offset: 2px;
380
667
  }
381
668
 
382
- .ar-scroll-smooth {
383
- scroll-behavior: smooth;
669
+ @media (prefers-reduced-motion: no-preference) {
670
+ .ar-scroll-smooth {
671
+ scroll-behavior: smooth;
672
+ }
673
+ }
674
+
675
+ * {
676
+ scrollbar-width: thin;
677
+ scrollbar-color: var(--ar-gray-400) var(--ar-base-200);
678
+ }
679
+
680
+ ::-webkit-scrollbar {
681
+ width: 10px;
682
+ height: 10px;
683
+ }
684
+
685
+ ::-webkit-scrollbar-button {
686
+ display: none;
687
+ }
688
+
689
+ ::-webkit-scrollbar-track {
690
+ background: var(--ar-base-200);
691
+ }
692
+
693
+ ::-webkit-scrollbar-thumb {
694
+ background: var(--ar-gray-400);
695
+ border: 2px solid var(--ar-base-200);
696
+ border-radius: var(--ar-radius-field);
697
+ }
698
+
699
+ ::-webkit-scrollbar-thumb:hover {
700
+ background: var(--ar-gray-600);
701
+ }
702
+
703
+ ::-webkit-scrollbar-corner {
704
+ background: var(--ar-base-200);
705
+ }
706
+
707
+ html[data-theme="neo"],
708
+ html[data-theme="neo"] * {
709
+ scrollbar-color: var(--ar-neo-border-color) var(--ar-neo-base-200);
710
+ }
711
+
712
+ html[data-theme="neo"] ::-webkit-scrollbar-track,
713
+ html[data-theme="neo"]::-webkit-scrollbar-track {
714
+ background: var(--ar-neo-base-200);
715
+ }
716
+
717
+ html[data-theme="neo"] ::-webkit-scrollbar-thumb,
718
+ html[data-theme="neo"]::-webkit-scrollbar-thumb {
719
+ background: var(--ar-neo-gray-300);
720
+ border-color: var(--ar-neo-border-color);
721
+ }
722
+
723
+ html[data-theme="neo"] ::-webkit-scrollbar-thumb:hover,
724
+ html[data-theme="neo"]::-webkit-scrollbar-thumb:hover {
725
+ background: var(--ar-neo-gray-400);
726
+ }
727
+
728
+ html[data-theme="neo"] ::-webkit-scrollbar-corner,
729
+ html[data-theme="neo"]::-webkit-scrollbar-corner {
730
+ background: var(--ar-neo-base-200);
731
+ }
732
+
733
+ html[data-theme="pixel"],
734
+ html[data-theme="pixel"] * {
735
+ scrollbar-color: var(--ar-pixel-gray-500) var(--ar-pixel-base-200);
736
+ }
737
+
738
+ html[data-theme="pixel"] ::-webkit-scrollbar-track,
739
+ html[data-theme="pixel"]::-webkit-scrollbar-track {
740
+ background: var(--ar-pixel-base-200);
741
+ }
742
+
743
+ html[data-theme="pixel"] ::-webkit-scrollbar-thumb,
744
+ html[data-theme="pixel"]::-webkit-scrollbar-thumb {
745
+ background: var(--ar-pixel-gray-300);
746
+ border-color: var(--ar-pixel-border-color);
747
+ border-radius: 0;
748
+ }
749
+
750
+ html[data-theme="pixel"] ::-webkit-scrollbar-thumb:hover,
751
+ html[data-theme="pixel"]::-webkit-scrollbar-thumb:hover {
752
+ background: var(--ar-pixel-gray-400);
753
+ }
754
+
755
+ html[data-theme="pixel"] ::-webkit-scrollbar-corner,
756
+ html[data-theme="pixel"]::-webkit-scrollbar-corner {
757
+ background: var(--ar-pixel-base-200);
758
+ }
759
+
760
+ html[data-theme="brutalist"],
761
+ html[data-theme="brutalist"] * {
762
+ scrollbar-color: var(--ar-brutalist-gray-900) var(--ar-brutalist-base-200);
763
+ }
764
+
765
+ html[data-theme="brutalist"] ::-webkit-scrollbar-track,
766
+ html[data-theme="brutalist"]::-webkit-scrollbar-track {
767
+ background: var(--ar-brutalist-base-200);
768
+ }
769
+
770
+ html[data-theme="brutalist"] ::-webkit-scrollbar-thumb,
771
+ html[data-theme="brutalist"]::-webkit-scrollbar-thumb {
772
+ background: var(--ar-brutalist-gray-900);
773
+ border-color: var(--ar-brutalist-border-color);
774
+ border-radius: 0;
775
+ }
776
+
777
+ html[data-theme="brutalist"] ::-webkit-scrollbar-thumb:hover,
778
+ html[data-theme="brutalist"]::-webkit-scrollbar-thumb:hover {
779
+ background: var(--ar-brutalist-gray-700);
780
+ }
781
+
782
+ html[data-theme="brutalist"] ::-webkit-scrollbar-corner,
783
+ html[data-theme="brutalist"]::-webkit-scrollbar-corner {
784
+ background: var(--ar-brutalist-base-200);
384
785
  }
385
786
 
386
787
  /* ============================================================
@@ -416,6 +817,7 @@ code {
416
817
  }
417
818
  .ar-btn-primary:hover {
418
819
  background: var(--ar-neutral);
820
+ color: var(--ar-neutral-content);
419
821
  }
420
822
  .ar-btn-outline {
421
823
  background: transparent;
@@ -515,7 +917,9 @@ code {
515
917
  .ar-navbar-end {
516
918
  display: flex;
517
919
  align-items: center;
920
+ justify-content: flex-end;
518
921
  gap: var(--ar-s-2);
922
+ flex: 1;
519
923
  }
520
924
  @media (min-width: 1024px) {
521
925
  .ar-navbar-center {
@@ -523,11 +927,140 @@ code {
523
927
  }
524
928
  }
525
929
  .ar-navbar-brand {
930
+ display: flex;
931
+ align-items: center;
932
+ gap: var(--ar-s-2);
526
933
  font-size: 1.875rem;
527
934
  font-weight: 400;
528
935
  color: var(--ar-base-content);
529
936
  text-decoration: none;
530
937
  }
938
+ .ar-navbar-brand img {
939
+ height: 1.75rem;
940
+ width: auto;
941
+ border-radius: 6px;
942
+ }
943
+ .ar-search {
944
+ position: relative;
945
+ display: flex;
946
+ align-items: center;
947
+ }
948
+ .ar-search .ar-input {
949
+ width: min(11rem, 34vw);
950
+ }
951
+ @media (min-width: 1024px) {
952
+ .ar-search .ar-input {
953
+ width: 16rem;
954
+ }
955
+ }
956
+ .ar-search-results {
957
+ position: absolute;
958
+ left: 50%;
959
+ right: auto;
960
+ transform: translateX(-50%);
961
+ top: calc(100% + 0.5rem);
962
+ width: min(22rem, 90vw);
963
+ max-height: 60vh;
964
+ overflow-y: auto;
965
+ margin-top: 0;
966
+ padding: var(--ar-s-2);
967
+ background: var(--ar-base-100);
968
+ border: 1px solid var(--ar-base-300);
969
+ border-radius: var(--ar-radius-box);
970
+ box-shadow: 0 8px 24px rgb(0 0 0 / 0.15);
971
+ z-index: 60;
972
+ }
973
+ .ar-search-results li > a {
974
+ white-space: normal;
975
+ display: block;
976
+ padding: var(--ar-s-1) var(--ar-s-2);
977
+ }
978
+ .ar-search-kbd {
979
+ position: absolute;
980
+ right: var(--ar-s-2);
981
+ top: 50%;
982
+ transform: translateY(-50%);
983
+ font: 600 0.68rem/1 var(--ar-font-mono);
984
+ color: var(--ar-gray-600);
985
+ background: var(--ar-base-200);
986
+ border: 1px solid var(--ar-base-300);
987
+ border-radius: var(--ar-radius-field);
988
+ padding: 3px 6px;
989
+ pointer-events: none;
990
+ }
991
+ .ar-search:focus-within .ar-search-kbd,
992
+ .ar-search .ar-input:not(:placeholder-shown) ~ .ar-search-kbd {
993
+ display: none;
994
+ }
995
+ .ar-modal .ar-search {
996
+ display: flex;
997
+ position: static;
998
+ width: 100%;
999
+ }
1000
+ .ar-modal .ar-search .ar-input {
1001
+ width: 100%;
1002
+ }
1003
+ .ar-modal .ar-search-kbd {
1004
+ display: none;
1005
+ }
1006
+ .ar-modal .ar-search-results {
1007
+ position: static;
1008
+ transform: none;
1009
+ width: 100%;
1010
+ max-height: 50vh;
1011
+ margin-top: var(--ar-s-2);
1012
+ box-shadow: none;
1013
+ }
1014
+ .ar-sidebar .ar-search {
1015
+ display: flex;
1016
+ position: relative;
1017
+ width: 100%;
1018
+ margin-bottom: var(--ar-s-3);
1019
+ }
1020
+ .ar-sidebar .ar-search .ar-input {
1021
+ width: 100%;
1022
+ }
1023
+ .ar-sidebar .ar-search-results {
1024
+ position: static;
1025
+ transform: none;
1026
+ width: 100%;
1027
+ max-height: 40vh;
1028
+ margin-top: var(--ar-s-2);
1029
+ box-shadow: none;
1030
+ }
1031
+ /* Sheet variant — newspaper chrome: square, flat, mono labels in the print
1032
+ idiom. Opt in by adding .ar-navbar-sheet to .ar-navbar. */
1033
+ .ar-navbar-sheet {
1034
+ border-radius: 0;
1035
+ font-family: var(--ar-font-mono);
1036
+ font-size: 0.6875rem;
1037
+ letter-spacing: 0.08em;
1038
+ text-transform: uppercase;
1039
+ }
1040
+ .ar-navbar-sheet .ar-navbar-brand {
1041
+ font-family: var(--ar-font-serif);
1042
+ font-size: 1.375rem;
1043
+ font-weight: 700;
1044
+ letter-spacing: -0.02em;
1045
+ line-height: 1.05;
1046
+ text-transform: none;
1047
+ }
1048
+ .ar-navbar-sheet .ar-navbar-brand img {
1049
+ border-radius: 0;
1050
+ }
1051
+ .ar-navbar-sheet .ar-btn {
1052
+ border-radius: 0;
1053
+ font-family: var(--ar-font-mono);
1054
+ font-size: 0.6875rem;
1055
+ letter-spacing: 0.08em;
1056
+ text-transform: uppercase;
1057
+ }
1058
+ .ar-navbar-sheet .ar-input,
1059
+ .ar-navbar-sheet .ar-search-results,
1060
+ .ar-navbar-sheet .ar-dropdown-content {
1061
+ border-radius: 0;
1062
+ box-shadow: none;
1063
+ }
531
1064
 
532
1065
  /* ============================================================
533
1066
  5. MENU & DROPDOWN
@@ -550,6 +1083,11 @@ code {
550
1083
  .ar-menu li > a:hover {
551
1084
  background: var(--ar-base-200);
552
1085
  }
1086
+ .ar-menu li.is-active > a {
1087
+ background: var(--ar-base-200);
1088
+ color: var(--ar-primary-text);
1089
+ font-weight: 700;
1090
+ }
553
1091
  .ar-menu-horizontal {
554
1092
  flex-direction: row;
555
1093
  align-items: center;
@@ -559,6 +1097,19 @@ code {
559
1097
  font-size: 0.8rem;
560
1098
  padding: 0.25rem 0.5rem;
561
1099
  }
1100
+
1101
+ .ar-menu-icon {
1102
+ display: inline-flex;
1103
+ align-items: center;
1104
+ justify-content: center;
1105
+ width: 1.25rem;
1106
+ margin-right: var(--ar-s-3);
1107
+ vertical-align: middle;
1108
+ flex: none;
1109
+ }
1110
+ .ar-menu-text {
1111
+ min-width: 0;
1112
+ }
562
1113
  .ar-dropdown {
563
1114
  position: relative;
564
1115
  display: inline-block;
@@ -587,9 +1138,41 @@ code {
587
1138
  right: 0;
588
1139
  height: 0.75rem;
589
1140
  }
590
-
591
- /* ============================================================
592
- 6. SWAP (theme toggle)
1141
+ .ar-dropdown-end .ar-dropdown-content {
1142
+ top: 100%;
1143
+ right: 0;
1144
+ left: auto;
1145
+ }
1146
+ .ar-theme-menu {
1147
+ min-width: 11rem;
1148
+ }
1149
+ .ar-theme-menu li > button {
1150
+ display: block;
1151
+ width: 100%;
1152
+ text-align: left;
1153
+ padding: 0.5rem 0.75rem;
1154
+ font: inherit;
1155
+ color: var(--ar-base-content);
1156
+ background: transparent;
1157
+ border: 1px solid transparent;
1158
+ border-radius: var(--ar-radius-field);
1159
+ cursor: pointer;
1160
+ }
1161
+ .ar-theme-menu li > button:hover {
1162
+ background: var(--ar-base-200);
1163
+ }
1164
+ .ar-theme-menu li > button.ar-btn-primary {
1165
+ background: transparent;
1166
+ border-color: transparent;
1167
+ color: var(--ar-primary-text);
1168
+ font-weight: 700;
1169
+ }
1170
+ .ar-theme-menu li > button.ar-btn-primary::before {
1171
+ content: "\2713\00a0";
1172
+ }
1173
+
1174
+ /* ============================================================
1175
+ 6. SWAP (theme toggle)
593
1176
  ============================================================ */
594
1177
  .ar-swap {
595
1178
  position: relative;
@@ -750,35 +1333,89 @@ code {
750
1333
  .ar-carousel-item img {
751
1334
  width: 100%;
752
1335
  }
1336
+ .ar-carousel-frame {
1337
+ position: relative;
1338
+ }
1339
+ .ar-carousel-btn {
1340
+ position: absolute;
1341
+ top: 50%;
1342
+ transform: translateY(-50%);
1343
+ z-index: 2;
1344
+ display: flex;
1345
+ align-items: center;
1346
+ justify-content: center;
1347
+ width: 2.25rem;
1348
+ height: 2.25rem;
1349
+ padding: 0;
1350
+ border: var(--ar-border-width) solid var(--ar-base-content);
1351
+ border-radius: var(--ar-radius-pill);
1352
+ background-color: var(--ar-base-100);
1353
+ color: var(--ar-base-content);
1354
+ font-size: 1.25rem;
1355
+ line-height: 1;
1356
+ cursor: pointer;
1357
+ box-shadow: var(--ar-shadow-sm);
1358
+ transition: all 0.2s ease;
1359
+ }
1360
+ .ar-carousel-btn:hover {
1361
+ background-color: var(--ar-base-200);
1362
+ }
1363
+ .ar-carousel-btn:focus-visible {
1364
+ outline: 2px solid var(--ar-primary);
1365
+ outline-offset: 2px;
1366
+ }
1367
+ .ar-carousel-btn-prev {
1368
+ left: var(--ar-s-2);
1369
+ }
1370
+ .ar-carousel-btn-next {
1371
+ right: var(--ar-s-2);
1372
+ }
753
1373
 
754
1374
  /* ============================================================
755
- 11. DRAWER
1375
+ 11. SIDEBAR
756
1376
  ============================================================ */
757
- .ar-drawer {
1377
+ .ar-sidebar {
758
1378
  position: relative;
759
1379
  display: flex;
760
1380
  }
761
- .ar-drawer-toggle {
1381
+
1382
+ .ar-sidebar-toggle {
762
1383
  appearance: none;
763
1384
  position: fixed;
764
- opacity: 0;
1385
+ width: 1px;
1386
+ height: 1px;
1387
+ margin: -1px;
1388
+ padding: 0;
1389
+ border: 0;
1390
+ clip-path: inset(50%);
1391
+ overflow: hidden;
765
1392
  pointer-events: none;
766
1393
  }
767
- .ar-drawer-content {
1394
+ .ar-sidebar-toggle:focus-visible {
1395
+ clip-path: none;
1396
+ width: auto;
1397
+ height: auto;
1398
+ margin: 0;
1399
+ padding: 2px;
1400
+ background: var(--ar-base-100);
1401
+ z-index: 60;
1402
+ }
1403
+ .ar-sidebar-content {
768
1404
  flex: 1;
769
1405
  min-width: 0;
770
1406
  }
771
- .ar-drawer-side {
1407
+ .ar-sidebar-panel {
772
1408
  position: fixed;
773
1409
  inset: 0;
774
- z-index: 40;
1410
+
1411
+ z-index: 90;
775
1412
  visibility: hidden;
776
1413
  pointer-events: none;
777
1414
  }
778
- .ar-drawer-side > * {
1415
+ .ar-sidebar-panel > * {
779
1416
  visibility: visible;
780
1417
  }
781
- .ar-drawer-overlay {
1418
+ .ar-sidebar-overlay {
782
1419
  position: absolute;
783
1420
  inset: 0;
784
1421
  background: rgb(0 0 0 / 0.5);
@@ -786,25 +1423,333 @@ code {
786
1423
  opacity: 0;
787
1424
  transition: opacity 0.3s;
788
1425
  }
789
- .ar-drawer-side .ar-menu {
1426
+ .ar-sidebar-panel > .ar-menu {
790
1427
  position: absolute;
791
1428
  inset: 0 auto 0 0;
792
- width: 20rem;
1429
+ width: min(20rem, 85vw);
793
1430
  height: 100%;
794
1431
  overflow-y: auto;
795
1432
  background: var(--ar-base-100);
796
1433
  transform: translateX(-100%);
797
1434
  transition: transform 0.3s ease;
798
1435
  }
799
- .ar-drawer-toggle:checked ~ .ar-drawer-side {
1436
+ .ar-sidebar-panel-end > .ar-menu {
1437
+ inset: 0 0 0 auto;
1438
+ transform: translateX(100%);
1439
+ }
1440
+ .ar-sidebar-toggle:checked ~ .ar-sidebar-panel {
800
1441
  visibility: visible;
801
1442
  pointer-events: auto;
802
1443
  }
803
- .ar-drawer-toggle:checked ~ .ar-drawer-side .ar-drawer-overlay {
1444
+ .ar-sidebar-toggle:checked ~ .ar-sidebar-panel .ar-sidebar-overlay {
804
1445
  opacity: 1;
805
1446
  }
806
- .ar-drawer-toggle:checked ~ .ar-drawer-side .ar-menu {
807
- transform: translateX(0);
1447
+ .ar-sidebar-toggle:checked ~ .ar-sidebar-panel > .ar-menu {
1448
+ transform: none;
1449
+ }
1450
+
1451
+ .ar-sidebar-actions {
1452
+ display: flex;
1453
+ align-items: center;
1454
+ gap: var(--ar-s-2);
1455
+ }
1456
+ .ar-sidebar-burger {
1457
+ display: inline-flex;
1458
+ align-items: center;
1459
+ justify-content: center;
1460
+ padding: var(--ar-s-2);
1461
+ border: 0;
1462
+ background: transparent;
1463
+ color: inherit;
1464
+ cursor: pointer;
1465
+ }
1466
+ .ar-sidebar-head {
1467
+ display: flex;
1468
+ align-items: center;
1469
+ justify-content: space-between;
1470
+ gap: var(--ar-s-2);
1471
+ margin-bottom: var(--ar-s-3);
1472
+ padding-bottom: var(--ar-s-3);
1473
+ border-bottom: 1px solid var(--ar-base-300);
1474
+ }
1475
+ .ar-sidebar-head .ar-navbar-brand {
1476
+ padding: 0;
1477
+ }
1478
+ .ar-sidebar-title {
1479
+ margin: var(--ar-s-4) var(--ar-s-2) 0;
1480
+ font-size: 0.7rem;
1481
+ font-weight: 700;
1482
+ letter-spacing: 0.08em;
1483
+ text-transform: uppercase;
1484
+ color: var(--ar-gray-600);
1485
+ }
1486
+ .ar-sidebar-title:first-child {
1487
+ margin-top: 0;
1488
+ }
1489
+ .ar-sidebar-title-sub {
1490
+ margin-top: var(--ar-s-3);
1491
+ font-size: 0.65rem;
1492
+ font-weight: 600;
1493
+ letter-spacing: 0.06em;
1494
+ color: var(--ar-gray-600);
1495
+ }
1496
+ .ar-sidebar-theme {
1497
+ display: flex;
1498
+ flex-wrap: wrap;
1499
+ gap: var(--ar-s-2);
1500
+ margin-bottom: var(--ar-s-3);
1501
+ }
1502
+ .ar-sidebar-theme .ar-btn {
1503
+ flex: 1 1 auto;
1504
+ }
1505
+ @media (min-width: 1024px) {
1506
+ .ar-sidebar .ar-sidebar-head,
1507
+ .ar-sidebar .ar-sidebar-theme,
1508
+ .ar-sidebar .ar-search {
1509
+ display: none;
1510
+ }
1511
+ }
1512
+ .ar-sidebar-collapse-toggle {
1513
+ appearance: none;
1514
+ position: absolute;
1515
+ width: 1px;
1516
+ height: 1px;
1517
+ margin: -1px;
1518
+ padding: 0;
1519
+ border: 0;
1520
+ clip-path: inset(50%);
1521
+ overflow: hidden;
1522
+ pointer-events: none;
1523
+ }
1524
+ .ar-sidebar-collapse-toggle:focus-visible {
1525
+ clip-path: none;
1526
+ width: auto;
1527
+ height: auto;
1528
+ margin: 0;
1529
+ padding: 2px;
1530
+ background: var(--ar-base-100);
1531
+ z-index: 60;
1532
+ }
1533
+ .ar-sidebar-collapse-btn {
1534
+ display: none;
1535
+ align-items: center;
1536
+ justify-content: center;
1537
+ padding: var(--ar-s-2);
1538
+ border: 0;
1539
+ background: transparent;
1540
+ color: inherit;
1541
+ cursor: pointer;
1542
+ }
1543
+
1544
+ @media (min-width: 1024px) {
1545
+ .ar-sidebar-responsive .ar-sidebar-toggle,
1546
+ .ar-sidebar-compact .ar-sidebar-toggle,
1547
+ .ar-sidebar-responsive [data-ar-sidebar-toggle],
1548
+ .ar-sidebar-compact [data-ar-sidebar-toggle] {
1549
+ display: none;
1550
+ }
1551
+ .ar-sidebar-responsive .ar-sidebar-panel,
1552
+ .ar-sidebar-compact .ar-sidebar-panel {
1553
+ position: static;
1554
+ visibility: visible;
1555
+ pointer-events: auto;
1556
+ z-index: auto;
1557
+ inset: auto;
1558
+ flex: 0 0 auto;
1559
+ }
1560
+ .ar-sidebar-responsive .ar-sidebar-overlay,
1561
+ .ar-sidebar-compact .ar-sidebar-overlay {
1562
+ display: none;
1563
+ }
1564
+ .ar-sidebar-responsive .ar-sidebar-panel > .ar-menu,
1565
+ .ar-sidebar-compact .ar-sidebar-panel > .ar-menu {
1566
+ position: static;
1567
+ transform: none;
1568
+ width: 16rem;
1569
+ height: auto;
1570
+ max-height: none;
1571
+ overflow-y: visible;
1572
+ background: transparent;
1573
+ border-right: var(--ar-border-width) solid var(--ar-base-300);
1574
+ }
1575
+ .ar-sidebar-compact .ar-sidebar-collapse-btn {
1576
+ display: inline-flex;
1577
+ }
1578
+ .ar-sidebar-compact .ar-sidebar-panel > .ar-menu {
1579
+ transition: width 0.3s ease;
1580
+ }
1581
+ .ar-sidebar-compact .ar-sidebar-collapse-toggle:checked ~ .ar-sidebar-panel > .ar-menu {
1582
+ width: 4.5rem;
1583
+ }
1584
+ .ar-sidebar-compact .ar-sidebar-collapse-toggle:checked ~ .ar-sidebar-panel .ar-menu-text {
1585
+ position: absolute;
1586
+ width: 1px;
1587
+ height: 1px;
1588
+ margin: -1px;
1589
+ padding: 0;
1590
+ overflow: hidden;
1591
+ clip-path: inset(50%);
1592
+ white-space: nowrap;
1593
+ border: 0;
1594
+ }
1595
+ .ar-sidebar-compact .ar-sidebar-collapse-toggle:checked ~ .ar-sidebar-panel .ar-menu-icon {
1596
+ margin-right: 0;
1597
+ }
1598
+ .ar-sidebar-compact .ar-sidebar-collapse-toggle:checked ~ .ar-sidebar-panel .ar-menu li > a {
1599
+ text-align: center;
1600
+ padding: 0.5rem var(--ar-s-2);
1601
+ }
1602
+ }
1603
+
1604
+ @media (min-width: 768px) {
1605
+ .ar-sidebar-bp-md.ar-sidebar-responsive .ar-sidebar-toggle,
1606
+ .ar-sidebar-bp-md.ar-sidebar-compact .ar-sidebar-toggle,
1607
+ .ar-sidebar-bp-md.ar-sidebar-responsive [data-ar-sidebar-toggle],
1608
+ .ar-sidebar-bp-md.ar-sidebar-compact [data-ar-sidebar-toggle] {
1609
+ display: none;
1610
+ }
1611
+ .ar-sidebar-bp-md.ar-sidebar-responsive .ar-sidebar-panel,
1612
+ .ar-sidebar-bp-md.ar-sidebar-compact .ar-sidebar-panel {
1613
+ position: static;
1614
+ visibility: visible;
1615
+ pointer-events: auto;
1616
+ z-index: auto;
1617
+ inset: auto;
1618
+ flex: 0 0 auto;
1619
+ }
1620
+ .ar-sidebar-bp-md.ar-sidebar-responsive .ar-sidebar-overlay,
1621
+ .ar-sidebar-bp-md.ar-sidebar-compact .ar-sidebar-overlay {
1622
+ display: none;
1623
+ }
1624
+ .ar-sidebar-bp-md.ar-sidebar-responsive .ar-sidebar-panel > .ar-menu,
1625
+ .ar-sidebar-bp-md.ar-sidebar-compact .ar-sidebar-panel > .ar-menu {
1626
+ position: static;
1627
+ transform: none;
1628
+ width: 16rem;
1629
+ height: auto;
1630
+ max-height: none;
1631
+ overflow-y: visible;
1632
+ background: transparent;
1633
+ border-right: var(--ar-border-width) solid var(--ar-base-300);
1634
+ }
1635
+ .ar-sidebar-bp-md.ar-sidebar-compact .ar-sidebar-collapse-btn {
1636
+ display: inline-flex;
1637
+ }
1638
+ .ar-sidebar-bp-md.ar-sidebar-compact .ar-sidebar-panel > .ar-menu {
1639
+ transition: width 0.3s ease;
1640
+ }
1641
+ .ar-sidebar-bp-md.ar-sidebar-compact .ar-sidebar-collapse-toggle:checked ~ .ar-sidebar-panel > .ar-menu {
1642
+ width: 4.5rem;
1643
+ }
1644
+ .ar-sidebar-bp-md.ar-sidebar-compact .ar-sidebar-collapse-toggle:checked ~ .ar-sidebar-panel .ar-menu-text {
1645
+ position: absolute;
1646
+ width: 1px;
1647
+ height: 1px;
1648
+ margin: -1px;
1649
+ padding: 0;
1650
+ overflow: hidden;
1651
+ clip-path: inset(50%);
1652
+ white-space: nowrap;
1653
+ border: 0;
1654
+ }
1655
+ .ar-sidebar-bp-md.ar-sidebar-compact .ar-sidebar-collapse-toggle:checked ~ .ar-sidebar-panel .ar-menu-icon {
1656
+ margin-right: 0;
1657
+ }
1658
+ .ar-sidebar-bp-md.ar-sidebar-compact .ar-sidebar-collapse-toggle:checked ~ .ar-sidebar-panel .ar-menu li > a {
1659
+ text-align: center;
1660
+ padding: 0.5rem var(--ar-s-2);
1661
+ }
1662
+ }
1663
+
1664
+ .ar-sidebar-nav {
1665
+ align-items: center;
1666
+ gap: var(--ar-s-4);
1667
+ padding: var(--ar-s-2) var(--ar-s-4);
1668
+ background: var(--ar-base-100);
1669
+ border-bottom: var(--ar-border-width) solid var(--ar-base-300);
1670
+ }
1671
+ .ar-sidebar-nav .ar-sidebar-content {
1672
+ display: flex;
1673
+ align-items: center;
1674
+ gap: var(--ar-s-2);
1675
+ }
1676
+ @media (min-width: 1024px) {
1677
+ .ar-sidebar-nav .ar-sidebar-burger,
1678
+ .ar-sidebar-nav .ar-sidebar-toggle,
1679
+ .ar-sidebar-nav [data-ar-sidebar-toggle] {
1680
+ display: none;
1681
+ }
1682
+ .ar-sidebar-nav .ar-sidebar-content {
1683
+ flex: 0 0 auto;
1684
+ }
1685
+ .ar-sidebar-nav .ar-sidebar-panel {
1686
+ position: static;
1687
+ visibility: visible;
1688
+ pointer-events: auto;
1689
+ z-index: auto;
1690
+ inset: auto;
1691
+ flex: 1 1 auto;
1692
+ }
1693
+ .ar-sidebar-nav .ar-sidebar-overlay {
1694
+ display: none;
1695
+ }
1696
+ .ar-sidebar-nav .ar-sidebar-panel > .ar-menu {
1697
+ position: static;
1698
+ flex-direction: row;
1699
+ align-items: center;
1700
+ gap: var(--ar-s-2);
1701
+ width: auto;
1702
+ height: auto;
1703
+ max-height: none;
1704
+ transform: none;
1705
+ overflow: visible;
1706
+ background: transparent;
1707
+ padding: 0;
1708
+ }
1709
+ }
1710
+
1711
+ @media (min-width: 768px) {
1712
+ .ar-sidebar-bp-md.ar-sidebar-nav .ar-sidebar-burger,
1713
+ .ar-sidebar-bp-md.ar-sidebar-nav .ar-sidebar-toggle,
1714
+ .ar-sidebar-bp-md.ar-sidebar-nav [data-ar-sidebar-toggle] {
1715
+ display: none;
1716
+ }
1717
+ .ar-sidebar-bp-md.ar-sidebar-nav .ar-sidebar-content {
1718
+ flex: 0 0 auto;
1719
+ }
1720
+ .ar-sidebar-bp-md.ar-sidebar-nav .ar-sidebar-panel {
1721
+ position: static;
1722
+ visibility: visible;
1723
+ pointer-events: auto;
1724
+ z-index: auto;
1725
+ inset: auto;
1726
+ flex: 1 1 auto;
1727
+ }
1728
+ .ar-sidebar-bp-md.ar-sidebar-nav .ar-sidebar-overlay {
1729
+ display: none;
1730
+ }
1731
+ .ar-sidebar-bp-md.ar-sidebar-nav .ar-sidebar-panel > .ar-menu {
1732
+ position: static;
1733
+ flex-direction: row;
1734
+ align-items: center;
1735
+ gap: var(--ar-s-2);
1736
+ width: auto;
1737
+ height: auto;
1738
+ max-height: none;
1739
+ transform: none;
1740
+ overflow: visible;
1741
+ background: transparent;
1742
+ padding: 0;
1743
+ }
1744
+ }
1745
+ @media (prefers-reduced-motion: reduce) {
1746
+ .ar-sidebar-panel > .ar-menu,
1747
+ .ar-sidebar-overlay {
1748
+ transition: none;
1749
+ }
1750
+ .ar-sidebar-compact .ar-sidebar-panel > .ar-menu {
1751
+ transition: none;
1752
+ }
808
1753
  }
809
1754
 
810
1755
  /* ============================================================
@@ -835,6 +1780,22 @@ code {
835
1780
  .ar-footer-center {
836
1781
  text-align: center;
837
1782
  }
1783
+ /* Sheet variant — colophon: stock ground, heavy ink rule, mono meta.
1784
+ Opt in by adding .ar-footer-sheet to .ar-footer. */
1785
+ .ar-footer-sheet {
1786
+ background: var(--ar-base-100);
1787
+ border-top: 3px solid var(--ar-base-content);
1788
+ border-radius: 0;
1789
+ font-family: var(--ar-font-mono);
1790
+ font-size: 0.6875rem;
1791
+ letter-spacing: 0.08em;
1792
+ text-transform: uppercase;
1793
+ padding: var(--ar-s-8) var(--ar-s-4);
1794
+ }
1795
+ .ar-footer-sheet a:hover {
1796
+ text-decoration: underline;
1797
+ text-underline-offset: 0.25em;
1798
+ }
838
1799
 
839
1800
  /* ============================================================
840
1801
  13. HERO
@@ -892,7 +1853,7 @@ code {
892
1853
  15. LINK
893
1854
  ============================================================ */
894
1855
  .ar-link {
895
- color: var(--ar-primary);
1856
+ color: var(--ar-primary-text);
896
1857
  text-decoration: underline;
897
1858
  cursor: pointer;
898
1859
  }
@@ -1020,6 +1981,8 @@ code {
1020
1981
  ============================================================ */
1021
1982
  .ar-bg-img {
1022
1983
  color: transparent;
1984
+
1985
+ background-color: var(--ar-base-content, #171717);
1023
1986
  background-image: var(--ar-texture);
1024
1987
  background-size: cover;
1025
1988
  -webkit-background-clip: text;
@@ -1039,7 +2002,7 @@ code {
1039
2002
  }
1040
2003
  }
1041
2004
  .ar-animate-fade-in {
1042
- animation: ar-fade-in 0.4s ease-out forwards;
2005
+ animation: ar-fade-in 0.4s ease-out var(--ar-delay, 0s) backwards;
1043
2006
  }
1044
2007
  @keyframes ar-fade-in {
1045
2008
  from {
@@ -1051,6 +2014,24 @@ code {
1051
2014
  transform: translateY(0);
1052
2015
  }
1053
2016
  }
2017
+ .ar-reveal {
2018
+ opacity: 0;
2019
+ transform: translateY(1.25rem);
2020
+ transition: opacity 0.6s ease-out var(--ar-delay, 0s), transform 0.6s ease-out var(--ar-delay, 0s);
2021
+ }
2022
+ .ar-reveal.ar-reveal-in {
2023
+ opacity: 1;
2024
+ transform: none;
2025
+ }
2026
+ @media (prefers-reduced-motion: reduce) {
2027
+ .ar-reveal,
2028
+ .ar-animate-fade-in {
2029
+ opacity: 1;
2030
+ transform: none;
2031
+ transition: none;
2032
+ animation: none;
2033
+ }
2034
+ }
1054
2035
 
1055
2036
  /* ============================================================
1056
2037
  19. FORMS
@@ -1201,7 +2182,7 @@ code {
1201
2182
  color: var(--ar-base-content);
1202
2183
  }
1203
2184
  .ar-tab-active {
1204
- color: var(--ar-primary);
2185
+ color: var(--ar-primary-text);
1205
2186
  border-bottom-color: var(--ar-primary);
1206
2187
  }
1207
2188
 
@@ -1332,6 +2313,7 @@ code {
1332
2313
  text-align: center;
1333
2314
  font-size: 0.75rem;
1334
2315
  color: var(--ar-gray-600);
2316
+ position: relative;
1335
2317
  }
1336
2318
  .ar-step::before {
1337
2319
  content: attr(data-step);
@@ -1344,6 +2326,18 @@ code {
1344
2326
  background: var(--ar-base-300);
1345
2327
  color: var(--ar-base-content);
1346
2328
  font-weight: 700;
2329
+ position: relative;
2330
+ z-index: 1;
2331
+ }
2332
+ .ar-step:not(:last-child)::after {
2333
+ content: "";
2334
+ position: absolute;
2335
+ top: 1rem;
2336
+ left: calc(50% + 1rem);
2337
+ width: calc(100% + var(--ar-s-2) - 2rem);
2338
+ height: var(--ar-border-width);
2339
+ background: var(--ar-base-300);
2340
+ z-index: 0;
1347
2341
  }
1348
2342
  .ar-step-active::before {
1349
2343
  background: var(--ar-primary);
@@ -1360,6 +2354,32 @@ code {
1360
2354
  height: 100%;
1361
2355
  object-fit: cover;
1362
2356
  }
2357
+ .ar-avatar-group {
2358
+ display: inline-flex;
2359
+ align-items: center;
2360
+ }
2361
+ .ar-avatar-group > * {
2362
+ border: var(--ar-border-width) solid var(--ar-base-100);
2363
+ }
2364
+ .ar-avatar-group > * + * {
2365
+ margin-left: -0.75rem;
2366
+ }
2367
+ .ar-avatar-group .ar-avatar {
2368
+ flex-shrink: 0;
2369
+ }
2370
+ .ar-avatar-more {
2371
+ display: flex;
2372
+ align-items: center;
2373
+ justify-content: center;
2374
+ flex-shrink: 0;
2375
+ width: 3rem;
2376
+ height: 3rem;
2377
+ border-radius: var(--ar-radius-pill);
2378
+ background: var(--ar-base-300);
2379
+ color: var(--ar-base-content);
2380
+ font-size: 0.75rem;
2381
+ font-weight: 700;
2382
+ }
1363
2383
 
1364
2384
  /* ============================================================
1365
2385
  27. TOAST / SNACKBAR
@@ -1556,30 +2576,142 @@ code {
1556
2576
  }
1557
2577
 
1558
2578
  /* ============================================================
1559
- 29. BREADCRUMB
2579
+ 28b. LOADING BAR
1560
2580
  ============================================================ */
1561
- .ar-breadcrumb {
1562
- display: flex;
1563
- flex-wrap: wrap;
1564
- align-items: center;
1565
- gap: var(--ar-s-1);
1566
- list-style: none;
1567
- margin: 0;
1568
- padding: 0;
1569
- font-size: 0.875rem;
2581
+ .ar-loading {
2582
+ width: 360px;
2583
+ max-width: 100%;
2584
+ font-family: var(--ar-base-font);
2585
+ color: var(--ar-base-content);
1570
2586
  }
1571
- .ar-breadcrumb-item {
2587
+ .ar-loading-head {
1572
2588
  display: flex;
1573
- align-items: center;
1574
- gap: var(--ar-s-1);
1575
- }
1576
- .ar-breadcrumb-item a {
2589
+ align-items: baseline;
2590
+ justify-content: space-between;
2591
+ gap: var(--ar-s-3);
2592
+ margin-bottom: var(--ar-s-2);
2593
+ }
2594
+ .ar-loading-label {
2595
+ font-family: var(--ar-base-font);
2596
+ font-weight: 700;
2597
+ font-size: 1.375rem;
2598
+ letter-spacing: 0.02em;
2599
+ color: var(--ar-base-content);
2600
+ line-height: 1;
2601
+ }
2602
+ .ar-loading-pct {
2603
+ font-family: var(--ar-font-mono);
2604
+ font-size: 1rem;
2605
+ letter-spacing: 0.06em;
2606
+ color: var(--ar-primary-text);
2607
+ line-height: 1;
2608
+ text-transform: uppercase;
2609
+ }
2610
+ .ar-loading-bar {
2611
+ position: relative;
2612
+ height: 1.75rem;
2613
+ background-color: var(--ar-base-200);
2614
+ border: var(--ar-border-width) solid var(--ar-base-content);
2615
+ border-radius: var(--ar-radius-field);
2616
+ box-shadow: var(--ar-shadow-md);
2617
+ overflow: hidden;
2618
+ }
2619
+ .ar-loading-fill {
2620
+ position: absolute;
2621
+ inset: 0;
2622
+ width: 0%;
2623
+ background-color: var(--ar-error);
2624
+ border-right: var(--ar-border-width) solid var(--ar-base-content);
2625
+ background-image: repeating-linear-gradient(
2626
+ to right,
2627
+ oklch(100% 0 0 / 0.16) 0 6px,
2628
+ transparent 6px 12px
2629
+ );
2630
+ animation: ar-loading-progress 2.8s cubic-bezier(0.35, 0, 0.3, 1) infinite;
2631
+ }
2632
+ .ar-loading-pips {
2633
+ position: absolute;
2634
+ inset: 0;
2635
+ display: grid;
2636
+ grid-template-columns: repeat(10, 1fr);
2637
+ pointer-events: none;
2638
+ }
2639
+ .ar-loading-pips span {
2640
+ display: block;
2641
+ border-right: var(--ar-border-width)
2642
+ solid color-mix(in srgb, var(--ar-base-content) 28%, transparent);
2643
+ }
2644
+ .ar-loading-pips span:last-child {
2645
+ border-right: none;
2646
+ }
2647
+ .ar-loading-hint {
2648
+ margin: var(--ar-s-3) 0 0;
2649
+ font-family: var(--ar-font-mono);
2650
+ font-size: 1rem;
2651
+ color: var(--ar-gray-600);
2652
+ letter-spacing: 0.04em;
2653
+ line-height: 1.2;
2654
+ text-transform: uppercase;
2655
+ }
2656
+ .ar-loading-hint kbd {
2657
+ font-family: var(--ar-font-mono);
2658
+ background-color: var(--ar-base-100);
2659
+ border: var(--ar-border-width) solid var(--ar-base-content);
2660
+ border-radius: var(--ar-radius-field);
2661
+ padding: 1px 0.375rem;
2662
+ display: inline-block;
2663
+ line-height: 1.1;
2664
+ color: var(--ar-base-content);
2665
+ }
2666
+ @keyframes ar-loading-progress {
2667
+ 0% {
2668
+ width: 0%;
2669
+ background-color: var(--ar-error);
2670
+ }
2671
+ 35% {
2672
+ background-color: var(--ar-error);
2673
+ }
2674
+ 55% {
2675
+ background-color: var(--ar-success);
2676
+ }
2677
+ 90%,
2678
+ 100% {
2679
+ width: 100%;
2680
+ background-color: var(--ar-primary);
2681
+ }
2682
+ }
2683
+ @media (prefers-reduced-motion: reduce) {
2684
+ .ar-loading-fill {
2685
+ animation: none;
2686
+ width: 65%;
2687
+ }
2688
+ }
2689
+
2690
+ /* ============================================================
2691
+ 29. BREADCRUMB
2692
+ ============================================================ */
2693
+ .ar-breadcrumb {
2694
+ display: flex;
2695
+ flex-wrap: wrap;
2696
+ align-items: center;
2697
+ gap: var(--ar-s-1);
2698
+ list-style: none;
2699
+ margin: 0;
2700
+ padding: 0;
2701
+ font-size: 0.875rem;
2702
+ }
2703
+ .ar-breadcrumb-item {
2704
+ display: flex;
2705
+ align-items: center;
2706
+ gap: var(--ar-s-1);
2707
+ }
2708
+ .ar-breadcrumb-item a {
1577
2709
  color: var(--ar-gray-600);
1578
2710
  text-decoration: none;
1579
2711
  transition: color 0.2s ease;
1580
2712
  }
1581
2713
  .ar-breadcrumb-item a:hover {
1582
- color: var(--ar-primary);
2714
+ color: var(--ar-primary-text);
1583
2715
  }
1584
2716
  .ar-breadcrumb-item:not(:last-child)::after {
1585
2717
  content: "/";
@@ -1613,12 +2745,18 @@ code {
1613
2745
  border: var(--ar-border-width) solid transparent;
1614
2746
  background: transparent;
1615
2747
  color: var(--ar-base-content);
2748
+ font-family: inherit;
1616
2749
  font-size: 0.875rem;
1617
2750
  font-weight: 500;
1618
2751
  text-decoration: none;
1619
2752
  cursor: pointer;
2753
+ appearance: none;
2754
+ -webkit-appearance: none;
1620
2755
  transition: all 0.2s ease;
1621
2756
  }
2757
+ button.ar-page-item {
2758
+ line-height: 1;
2759
+ }
1622
2760
  .ar-page-item:hover {
1623
2761
  background: var(--ar-base-200);
1624
2762
  }
@@ -1733,14 +2871,15 @@ code {
1733
2871
  margin-bottom: var(--ar-s-1);
1734
2872
  font-size: 0.75rem;
1735
2873
  font-weight: 600;
1736
- color: var(--ar-gray-600);
2874
+ color: var(--ar-base-content);
1737
2875
  }
1738
2876
  .ar-chat-end .ar-chat-header {
1739
2877
  justify-content: flex-end;
1740
2878
  }
1741
2879
  .ar-chat-footer {
1742
2880
  font-size: 0.7rem;
1743
- color: var(--ar-gray-500);
2881
+ color: var(--ar-base-content);
2882
+ opacity: 0.7;
1744
2883
  margin-top: var(--ar-s-1);
1745
2884
  }
1746
2885
  .ar-chat-start .ar-chat-footer {
@@ -1814,28 +2953,28 @@ code {
1814
2953
  border: var(--ar-border-width) solid currentColor;
1815
2954
  }
1816
2955
  .ar-tag-outline.ar-tag-primary {
1817
- color: var(--ar-primary);
2956
+ color: var(--ar-primary-text);
1818
2957
  }
1819
2958
  .ar-tag-outline.ar-tag-secondary {
1820
- color: var(--ar-secondary);
2959
+ color: var(--ar-secondary-text);
1821
2960
  }
1822
2961
  .ar-tag-outline.ar-tag-accent {
1823
- color: var(--ar-accent);
2962
+ color: var(--ar-accent-text);
1824
2963
  }
1825
2964
  .ar-tag-outline.ar-tag-neutral {
1826
- color: var(--ar-neutral);
2965
+ color: var(--ar-neutral-text);
1827
2966
  }
1828
2967
  .ar-tag-outline.ar-tag-info {
1829
- color: var(--ar-info);
2968
+ color: var(--ar-info-text);
1830
2969
  }
1831
2970
  .ar-tag-outline.ar-tag-success {
1832
- color: var(--ar-success);
2971
+ color: var(--ar-success-text);
1833
2972
  }
1834
2973
  .ar-tag-outline.ar-tag-warning {
1835
- color: var(--ar-warning);
2974
+ color: var(--ar-warning-text);
1836
2975
  }
1837
2976
  .ar-tag-outline.ar-tag-error {
1838
- color: var(--ar-error);
2977
+ color: var(--ar-error-text);
1839
2978
  }
1840
2979
  .ar-tag-lg {
1841
2980
  padding: 0.375rem 1rem;
@@ -1897,7 +3036,7 @@ code {
1897
3036
  visibility: visible;
1898
3037
  pointer-events: auto;
1899
3038
  }
1900
- /* Placement: top (default) */
3039
+
1901
3040
  .ar-popover-content[data-ar-placement="top"] {
1902
3041
  bottom: calc(100% + 0.5rem);
1903
3042
  left: 50%;
@@ -1906,7 +3045,7 @@ code {
1906
3045
  .ar-popover-open .ar-popover-content[data-ar-placement="top"] {
1907
3046
  transform: translateX(-50%) translateY(0);
1908
3047
  }
1909
- /* Placement: bottom */
3048
+
1910
3049
  .ar-popover-content[data-ar-placement="bottom"] {
1911
3050
  top: calc(100% + 0.5rem);
1912
3051
  left: 50%;
@@ -1915,7 +3054,7 @@ code {
1915
3054
  .ar-popover-open .ar-popover-content[data-ar-placement="bottom"] {
1916
3055
  transform: translateX(-50%) translateY(0);
1917
3056
  }
1918
- /* Placement: left */
3057
+
1919
3058
  .ar-popover-content[data-ar-placement="left"] {
1920
3059
  right: calc(100% + 0.5rem);
1921
3060
  top: 50%;
@@ -1924,7 +3063,7 @@ code {
1924
3063
  .ar-popover-open .ar-popover-content[data-ar-placement="left"] {
1925
3064
  transform: translateY(-50%) translateX(0);
1926
3065
  }
1927
- /* Placement: right */
3066
+
1928
3067
  .ar-popover-content[data-ar-placement="right"] {
1929
3068
  left: calc(100% + 0.5rem);
1930
3069
  top: 50%;
@@ -1978,7 +3117,7 @@ code {
1978
3117
  font-size: 0.875rem;
1979
3118
  }
1980
3119
  .ar-file-upload-text strong {
1981
- color: var(--ar-primary);
3120
+ color: var(--ar-primary-text);
1982
3121
  }
1983
3122
  .ar-file-upload-hint {
1984
3123
  font-size: 0.75rem;
@@ -2032,329 +3171,1675 @@ code {
2032
3171
  }
2033
3172
 
2034
3173
  /* ============================================================
2035
- 37. NEOBRUTALISM OVERRIDES
2036
- Activated when html[data-theme="neo"] is set.
2037
- Hard shadows, thick borders, bold colors — zero blur.
3174
+ 36b. HEADING
2038
3175
  ============================================================ */
2039
- html[data-theme="neo"] body {
2040
- font-family: var(--ar-font-sans);
3176
+ .ar-heading {
3177
+ display: flex;
3178
+ flex-direction: column;
3179
+ gap: var(--ar-s-2);
2041
3180
  }
2042
-
2043
- /* --- Buttons (neo) --- */
2044
- html[data-theme="neo"] .ar-btn {
2045
- border: var(--ar-neo-border-width) solid var(--ar-neo-border-color);
2046
- border-radius: 0.75rem;
2047
- box-shadow: var(--ar-neo-shadow-md);
2048
- font-family: var(--ar-font-sans);
3181
+ .ar-heading-eyebrow {
3182
+ font-size: 0.75rem;
2049
3183
  font-weight: 700;
2050
- transition:
2051
- box-shadow 0.15s ease-out,
2052
- transform 0.15s ease-out;
2053
- }
2054
- html[data-theme="neo"] .ar-btn:hover {
2055
- box-shadow: var(--ar-neo-shadow-sm);
2056
- transform: translate(2px, 2px);
3184
+ letter-spacing: 0.15em;
3185
+ text-transform: uppercase;
3186
+ color: var(--ar-gray-500);
2057
3187
  }
2058
- html[data-theme="neo"] .ar-btn:active {
2059
- box-shadow: none;
2060
- transform: translate(4px, 4px);
3188
+ .ar-heading-title {
3189
+ font-weight: 700;
3190
+ letter-spacing: -0.02em;
3191
+ line-height: 1.2;
3192
+ text-wrap: balance;
3193
+ color: var(--ar-base-content);
2061
3194
  }
2062
- html[data-theme="neo"] .ar-btn-primary {
2063
- background: var(--ar-neo-primary);
2064
- color: var(--ar-neo-primary-content);
3195
+ .ar-heading-desc {
3196
+ line-height: 1.6;
3197
+ color: var(--ar-gray-600);
2065
3198
  }
2066
- html[data-theme="neo"] .ar-btn-primary:hover {
2067
- background: var(--ar-neo-primary);
3199
+ .ar-heading-center {
3200
+ align-items: center;
3201
+ text-align: center;
2068
3202
  }
2069
- html[data-theme="neo"] .ar-btn-outline {
2070
- background: var(--ar-neo-base-100);
2071
- border-color: var(--ar-neo-border-color);
2072
- color: var(--ar-neo-base-content);
3203
+
3204
+ /* ============================================================
3205
+ 36c. SPINNER
3206
+ ============================================================ */
3207
+ .ar-spinner {
3208
+ display: inline-block;
3209
+ width: 1.5rem;
3210
+ height: 1.5rem;
3211
+ border: 2px solid currentColor;
3212
+ border-right-color: transparent;
3213
+ border-radius: var(--ar-radius-pill);
3214
+ animation: ar-spinner-spin 0.7s linear infinite;
2073
3215
  }
2074
- html[data-theme="neo"] .ar-btn-outline:hover {
2075
- background: var(--ar-neo-base-content);
2076
- color: var(--ar-neo-base-100);
3216
+ .ar-spinner-sm {
3217
+ width: 1rem;
3218
+ height: 1rem;
2077
3219
  }
2078
- html[data-theme="neo"] .ar-btn-ghost {
2079
- background: transparent;
2080
- border-color: transparent;
2081
- box-shadow: none;
3220
+ .ar-spinner-lg {
3221
+ width: 2.5rem;
3222
+ height: 2.5rem;
3223
+ border-width: 3px;
2082
3224
  }
2083
- html[data-theme="neo"] .ar-btn-ghost:hover {
2084
- background: var(--ar-neo-base-200);
2085
- box-shadow: var(--ar-neo-shadow-sm);
3225
+ .ar-spinner-overlay {
3226
+ position: absolute;
3227
+ inset: 0;
3228
+ display: flex;
3229
+ align-items: center;
3230
+ justify-content: center;
3231
+ background: rgb(0 0 0 / 0.5);
3232
+ color: var(--ar-gray-50);
3233
+ z-index: 10;
2086
3234
  }
2087
- html[data-theme="neo"] .ar-btn-neutral {
2088
- background: var(--ar-neo-neutral);
2089
- color: var(--ar-neo-neutral-content);
3235
+ .ar-spinner-overlay-fixed {
3236
+ position: fixed;
2090
3237
  }
2091
- html[data-theme="neo"] .ar-btn-circle {
2092
- border-radius: var(--ar-radius-pill);
3238
+ @keyframes ar-spinner-spin {
3239
+ to {
3240
+ transform: rotate(360deg);
3241
+ }
2093
3242
  }
2094
3243
 
2095
- /* --- Card (neo) --- */
2096
- html[data-theme="neo"] .ar-card {
2097
- border: var(--ar-neo-border-width) solid var(--ar-neo-border-color);
2098
- border-radius: 1rem;
2099
- box-shadow: var(--ar-neo-shadow-lg);
2100
- overflow: hidden;
3244
+ /* ============================================================
3245
+ 36d. DOCS (documentation-site patterns)
3246
+ ============================================================ */
3247
+ .ar-docs-section {
3248
+ scroll-margin-top: var(--ar-nav-h);
2101
3249
  }
2102
-
2103
- /* --- Badge (neo) --- */
2104
- html[data-theme="neo"] .ar-badge {
2105
- border: 2px solid var(--ar-neo-border-color);
2106
- border-radius: var(--ar-radius-pill);
2107
- box-shadow: 2px 2px 0px 0px var(--ar-neo-border-color);
3250
+ .ar-docs-main :is(h2, h3)[id] {
3251
+ scroll-margin-top: var(--ar-nav-h);
3252
+ }
3253
+ .ar-docs-block {
3254
+ border: 1px dashed var(--ar-base-300);
3255
+ border-radius: var(--ar-radius-box);
3256
+ padding: var(--ar-s-6);
3257
+ }
3258
+ .ar-docs-usage {
3259
+ position: relative;
3260
+ margin-top: var(--ar-s-4);
3261
+ padding: var(--ar-s-4);
3262
+ background: var(--ar-base-100);
3263
+ border: 1px solid var(--ar-base-300);
3264
+ border-left: 4px solid var(--ar-primary);
3265
+ border-radius: var(--ar-radius-box);
3266
+ }
3267
+ .ar-docs-usage-tag {
3268
+ display: inline-block;
3269
+ margin-bottom: var(--ar-s-2);
3270
+ font-size: 0.7rem;
2108
3271
  font-weight: 700;
3272
+ letter-spacing: 0.08em;
3273
+ text-transform: uppercase;
3274
+ color: var(--ar-primary-text);
2109
3275
  }
2110
-
2111
- /* --- Modal (neo) --- */
2112
- html[data-theme="neo"] .ar-modal-box {
2113
- border: var(--ar-neo-border-width) solid var(--ar-neo-border-color);
2114
- border-radius: 1rem;
2115
- box-shadow: var(--ar-neo-shadow-xl);
3276
+ .ar-docs-usage pre {
3277
+ margin: 0;
3278
+ padding: var(--ar-s-3);
3279
+ background: var(--ar-base-200);
3280
+ border: 1px solid var(--ar-base-300);
3281
+ border-radius: var(--ar-radius-field);
3282
+ overflow-x: auto;
3283
+ font-size: 0.8rem;
3284
+ line-height: 1.7;
2116
3285
  }
2117
-
2118
- /* --- Alert (neo) --- */
2119
- html[data-theme="neo"] .ar-alert {
2120
- border: var(--ar-neo-border-width) solid var(--ar-neo-border-color);
2121
- border-radius: 0.75rem;
2122
- box-shadow: var(--ar-neo-shadow-md);
2123
- font-weight: 600;
3286
+ .ar-docs-usage pre code {
3287
+ background: transparent;
3288
+ padding: 0;
3289
+ border: 0;
3290
+ border-radius: 0;
3291
+ font-size: inherit;
2124
3292
  }
2125
-
2126
- /* --- Table (neo) --- */
2127
- html[data-theme="neo"] .ar-table th,
2128
- html[data-theme="neo"] .ar-table td {
2129
- border: 2px solid var(--ar-neo-border-color);
3293
+ .ar-docs-usage-hint {
3294
+ margin: var(--ar-s-2) 0 0;
3295
+ font-size: 0.8rem;
3296
+ color: var(--ar-gray-600);
2130
3297
  }
2131
- html[data-theme="neo"] .ar-table th {
2132
- background: var(--ar-neo-base-200);
2133
- font-weight: 700;
3298
+ .ar-docs-usage .ar-docs-copy {
3299
+ top: var(--ar-s-3);
3300
+ right: var(--ar-s-3);
2134
3301
  }
2135
-
2136
- /* --- Tabs (neo) --- */
2137
- html[data-theme="neo"] .ar-tabs {
2138
- border-bottom: var(--ar-neo-border-width) solid var(--ar-neo-border-color);
3302
+ .ar-docs-lede {
3303
+ margin-top: var(--ar-s-3);
3304
+ max-width: 72ch;
3305
+ font-size: 1.05rem;
3306
+ line-height: 1.6;
3307
+ color: var(--ar-gray-600);
2139
3308
  }
2140
- html[data-theme="neo"] .ar-tab {
2141
- border: 2px solid transparent;
2142
- border-bottom: 0;
2143
- border-radius: 0.5rem 0.5rem 0 0;
3309
+ .ar-docs-pager {
3310
+ margin: var(--ar-s-8) 0;
3311
+ }
3312
+ .ar-docs-example {
3313
+ position: relative;
3314
+ margin-top: var(--ar-s-4);
3315
+ background: var(--ar-base-100);
3316
+ border: 1px solid var(--ar-base-300);
3317
+ border-left: 4px solid var(--ar-primary);
3318
+ border-radius: var(--ar-radius-box);
3319
+ }
3320
+ .ar-docs-example-head {
3321
+ display: flex;
3322
+ align-items: center;
3323
+ justify-content: space-between;
3324
+ flex-wrap: wrap;
3325
+ gap: var(--ar-s-2);
3326
+ padding: var(--ar-s-3) var(--ar-s-4) 0;
3327
+ }
3328
+ .ar-docs-example-head .ar-docs-usage-tag {
3329
+ margin-bottom: 0;
3330
+ }
3331
+ .ar-docs-example-tabs {
3332
+ display: inline-flex;
3333
+ gap: var(--ar-s-1);
3334
+ }
3335
+ .ar-docs-example-tab {
3336
+ font-size: 0.7rem;
2144
3337
  font-weight: 700;
2145
- font-family: var(--ar-font-sans);
3338
+ letter-spacing: 0.06em;
3339
+ text-transform: uppercase;
3340
+ padding: 0.25rem var(--ar-s-2);
3341
+ color: var(--ar-gray-600);
3342
+ background: transparent;
3343
+ border: 1px solid transparent;
3344
+ border-radius: var(--ar-radius-field);
3345
+ cursor: pointer;
3346
+ transition: color 0.15s ease, background-color 0.15s ease,
3347
+ border-color 0.15s ease;
2146
3348
  }
2147
- html[data-theme="neo"] .ar-tab-active {
3349
+ .ar-docs-example-tab:hover {
3350
+ color: var(--ar-primary-text);
3351
+ }
3352
+ .ar-docs-example-tab[aria-selected="true"] {
3353
+ color: var(--ar-primary-text);
3354
+ background: var(--ar-base-200);
3355
+ border-color: var(--ar-base-300);
3356
+ }
3357
+ .ar-docs-example-preview {
3358
+ padding: var(--ar-s-4);
3359
+ }
3360
+ .ar-docs-example-code {
3361
+ position: relative;
3362
+ padding: 0 var(--ar-s-4) var(--ar-s-4);
3363
+ }
3364
+ .ar-docs-example-code pre {
3365
+ margin: 0;
3366
+ padding: var(--ar-s-3);
3367
+ background: var(--ar-base-200);
3368
+ border: 1px solid var(--ar-base-300);
3369
+ border-radius: var(--ar-radius-field);
3370
+ overflow-x: auto;
3371
+ font-size: 0.8rem;
3372
+ line-height: 1.7;
3373
+ }
3374
+ .ar-docs-example-code pre code {
3375
+ background: transparent;
3376
+ padding: 0;
3377
+ border: 0;
3378
+ border-radius: 0;
3379
+ font-size: inherit;
3380
+ }
3381
+ .ar-docs-example-code .ar-docs-copy {
3382
+ top: var(--ar-s-3);
3383
+ right: calc(var(--ar-s-4) + var(--ar-s-2));
3384
+ }
3385
+ .ar-docs-options th {
3386
+ white-space: nowrap;
3387
+ }
3388
+ .ar-docs-options td {
3389
+ vertical-align: top;
3390
+ }
3391
+ .ar-docs-options td code {
3392
+ word-break: normal;
3393
+ overflow-wrap: normal;
3394
+ }
3395
+ .ar-docs-copy {
3396
+ position: absolute;
3397
+ top: var(--ar-s-2);
3398
+ right: var(--ar-s-2);
3399
+ padding: 0.25rem var(--ar-s-2);
3400
+ font-size: 0.7rem;
3401
+ font-weight: 700;
3402
+ letter-spacing: 0.06em;
3403
+ text-transform: uppercase;
3404
+ line-height: 1.4;
3405
+ color: var(--ar-base-content);
3406
+ background: var(--ar-base-100);
3407
+ border: 1px solid var(--ar-base-300);
3408
+ border-radius: var(--ar-radius-field);
3409
+ cursor: pointer;
3410
+ transition: border-color 0.15s ease, background-color 0.15s ease,
3411
+ color 0.15s ease;
3412
+ }
3413
+ .ar-docs-copy:hover {
3414
+ border-color: var(--ar-primary);
3415
+ }
3416
+ .ar-docs-copy.is-done {
3417
+ background: var(--ar-primary);
3418
+ border-color: var(--ar-primary);
3419
+ color: var(--ar-primary-content);
3420
+ }
3421
+ .ar-docs-shell {
3422
+ display: flex;
3423
+ align-items: flex-start;
3424
+ }
3425
+ .ar-docs-side {
3426
+ display: contents;
3427
+ }
3428
+ .ar-docs-main {
3429
+ flex: 1;
3430
+ min-width: 0;
3431
+ }
3432
+ .ar-docs-side .ar-menu {
3433
+ padding: var(--ar-s-1);
3434
+ border: 1px solid var(--ar-base-300);
3435
+ border-radius: var(--ar-radius-box);
3436
+ }
3437
+ .ar-docs-side .ar-menu li > a {
3438
+ font-size: 0.875rem;
3439
+ }
3440
+ .ar-docs-versions .ar-docs-version {
3441
+ display: block;
3442
+ padding: var(--ar-s-1) var(--ar-s-2);
3443
+ border-radius: var(--ar-radius-field);
3444
+ font-size: 0.875rem;
3445
+ }
3446
+ a.ar-docs-version {
3447
+ color: var(--ar-gray-700);
3448
+ text-decoration: none;
3449
+ }
3450
+ a.ar-docs-version:hover {
3451
+ background: var(--ar-base-200);
3452
+ }
3453
+ .ar-docs-version.is-current {
3454
+ color: var(--ar-primary-text);
3455
+ font-weight: 700;
3456
+ }
3457
+ .ar-docs-demo-img {
3458
+ background: linear-gradient(135deg, var(--ar-base-300), var(--ar-base-200));
3459
+ display: flex;
3460
+ align-items: center;
3461
+ justify-content: center;
3462
+ color: var(--ar-gray-600);
3463
+ }
3464
+ @media (min-width: 1024px) {
3465
+ .ar-docs-side {
3466
+ display: block;
3467
+ position: sticky;
3468
+ top: var(--ar-nav-h);
3469
+ width: 15rem;
3470
+ flex-shrink: 0;
3471
+ max-height: calc(100vh - 6rem);
3472
+ overflow-y: auto;
3473
+ padding: var(--ar-s-4);
3474
+ border-right: 1px solid var(--ar-base-300);
3475
+ }
3476
+ .ar-docs-side > .ar-sidebar-panel > .ar-menu {
3477
+ display: contents;
3478
+ }
3479
+ .ar-docs-side-norail {
3480
+ display: none;
3481
+ }
3482
+ }
3483
+ .ar-docs-demo-state .ar-sidebar-content {
3484
+ transition: box-shadow 0.2s ease;
3485
+ }
3486
+ .ar-docs-demo-state .ar-menu {
3487
+ transition: box-shadow 0.2s ease;
3488
+ }
3489
+ .ar-docs-demo-state.ar-sidebar-is-close .ar-sidebar-content {
3490
+ box-shadow: inset 4px 0 0 var(--ar-base-300);
3491
+ }
3492
+ .ar-docs-demo-state.ar-sidebar-is-open .ar-sidebar-content {
3493
+ box-shadow: inset 4px 0 0 var(--ar-primary);
3494
+ }
3495
+ .ar-docs-demo-state.ar-sidebar-is-open .ar-menu {
3496
+ box-shadow: 6px 0 0 var(--ar-primary);
3497
+ }
3498
+
3499
+ /* ============================================================
3500
+ 36e. BROADSHEET
3501
+ ============================================================ */
3502
+ /* The print sheet — an opt-in add-on, also shipped standalone as
3503
+ dist/css/arekui.broadsheet.min.css (use it on top of any base bundle).
3504
+ It sets a newspaper front page on framework tokens: nothing here renders
3505
+ unless one of the classes below is used.
3506
+
3507
+ Two variable families. --ar-sheet-display/text/mono are the sheet's
3508
+ faces; they default to the framework's own serif/mono stacks, so the
3509
+ add-on works with zero setup — map them to hosted webfonts to set a
3510
+ display face (the ArekUI docs map them to Bodoni Moda / Source Serif 4 /
3511
+ Spline Sans Mono). The paper set (stock, ink, hairline, signal, tooth)
3512
+ is pinned rather than derived from --ar-base-*: the framework's light
3513
+ stock is pure white and its neutrals are tuned for white pages, while a
3514
+ newspaper prints on paper. Each edition re-inks the whole set from
3515
+ html[data-theme], so one sheet prints in all five themes.
3516
+
3517
+ Every edition's set is contrast-checked end to end (ink, soft, faint and
3518
+ signal on both stocks, plus signal-as-fill): all eleven pairings clear
3519
+ 4.5:1. The default stock #f2efe7 carries ink #121110 at 16.41:1 and
3520
+ signal #9c1b1b at 7.07:1; then per edition:
3521
+
3522
+ NIGHT stock #16130f ink 16.11:1 soft 7.22:1 signal #e07a5f 6.28:1
3523
+ NEO stock #e6f6fd ink 17.88:1 soft 9.43:1 signal #005f80 6.43:1
3524
+ PIXEL stock #f4f1e8 ink 16.70:1 soft 9.25:1 signal #2c639e 5.49:1
3525
+ BRUT. stock #f1efe9 ink 17.22:1 soft 9.08:1 signal #ad3508 5.55:1 */
3526
+ :root {
3527
+ /* Faces. The mono editions below re-set display and text to the mono
3528
+ face for the whole paper. */
3529
+ --ar-sheet-display: var(--ar-font-serif);
3530
+ --ar-sheet-text: var(--ar-font-serif);
3531
+ --ar-sheet-mono: var(--ar-font-mono);
3532
+ /* Display weights. A serif display ships 700/900; a mono face usually
3533
+ ships 400/600, so the mono editions drop these to what exists. */
3534
+ --ar-sheet-weight-black: 900;
3535
+ --ar-sheet-weight-bold: 700;
3536
+ /* Nameplate and banner size their faces from these two — override them
3537
+ to re-fit a fold contract. The mono editions re-set the banner because
3538
+ a monospaced banner is ~15em wide and wraps two lines where the serif
3539
+ holds one, which costs a front page its fold. */
3540
+ --ar-sheet-nameplate-size: clamp(2.75rem, 13vw, 4.5rem);
3541
+ --ar-sheet-banner-size: clamp(1.875rem, 7vw, 5.25rem);
3542
+ /* Newsprint stock, one ink, one hairline, one signal. The signal is the
3543
+ only saturated colour on the sheet, spent on live marks, section links,
3544
+ step numbers and the active edition chip. */
3545
+ --ar-sheet-paper: #f2efe7;
3546
+ --ar-sheet-paper-2: #e9e5da;
3547
+ --ar-sheet-ink: #121110;
3548
+ --ar-sheet-ink-soft: #3f3f46;
3549
+ --ar-sheet-ink-faint: #3f3f46;
3550
+ --ar-sheet-rule: #c4bdae;
3551
+ --ar-sheet-rule-strong: #121110;
3552
+ --ar-sheet-signal: #9c1b1b;
3553
+ /* Stock tooth: a fine halftone screen over the sheet, tuned per edition. */
3554
+ --ar-sheet-grain: rgba(18, 17, 16, 0.14);
3555
+ }
3556
+ html[data-theme="dark"] {
3557
+ --ar-sheet-paper: #16130f;
3558
+ --ar-sheet-paper-2: #211d17;
3559
+ --ar-sheet-ink: #f2efe7;
3560
+ --ar-sheet-ink-soft: #a1a1aa;
3561
+ --ar-sheet-ink-faint: #a1a1aa;
3562
+ --ar-sheet-rule: #3a342b;
3563
+ --ar-sheet-rule-strong: #f2efe7;
3564
+ --ar-sheet-signal: #e07a5f;
3565
+ --ar-sheet-grain: rgba(242, 239, 231, 0.1);
3566
+ }
3567
+ /* Neo prints on a pale cyan stock with the theme's own hue as the signal
3568
+ and hard black rules — neobrutalism's poster, set in the same serif. */
3569
+ html[data-theme="neo"] {
3570
+ --ar-sheet-paper: #e6f6fd;
3571
+ --ar-sheet-paper-2: #d2eefb;
3572
+ --ar-sheet-ink: #0a0a0a;
3573
+ --ar-sheet-ink-soft: #3f3f46;
3574
+ --ar-sheet-ink-faint: #3f3f46;
3575
+ --ar-sheet-rule: #a5cddd;
3576
+ --ar-sheet-rule-strong: #0a0a0a;
3577
+ --ar-sheet-signal: #005f80;
3578
+ --ar-sheet-grain: rgba(10, 10, 10, 0.09);
3579
+ }
3580
+ /* Pixel and brutalist re-set the whole paper in the mono face: display and
3581
+ body text go mono, the weights drop to the 400/600 the faces ship, and
3582
+ the banner shrinks to keep its single line. */
3583
+ html[data-theme="pixel"] {
3584
+ --ar-sheet-display: var(--ar-sheet-mono);
3585
+ --ar-sheet-text: var(--ar-sheet-mono);
3586
+ --ar-sheet-weight-black: 600;
3587
+ --ar-sheet-weight-bold: 600;
3588
+ --ar-sheet-banner-size: clamp(1.875rem, 5.8vw, 4.75rem);
3589
+ --ar-sheet-paper: #f4f1e8;
3590
+ --ar-sheet-paper-2: #eae6d9;
3591
+ --ar-sheet-rule: #cfc9b8;
3592
+ --ar-sheet-signal: #2c639e;
3593
+ }
3594
+ html[data-theme="brutalist"] {
3595
+ --ar-sheet-display: var(--ar-sheet-mono);
3596
+ --ar-sheet-text: var(--ar-sheet-mono);
3597
+ --ar-sheet-weight-black: 600;
3598
+ --ar-sheet-weight-bold: 600;
3599
+ --ar-sheet-banner-size: clamp(1.875rem, 5.8vw, 4.75rem);
3600
+ --ar-sheet-paper: #f1efe9;
3601
+ --ar-sheet-paper-2: #e5e2da;
3602
+ --ar-sheet-rule: #121110;
3603
+ --ar-sheet-rule-strong: #0a0a0a;
3604
+ --ar-sheet-signal: #ad3508;
3605
+ }
3606
+
3607
+ /* The printed double rule: a heavy line, a gap, then a hairline — the way
3608
+ a front page rules its edges. A sheet carries three: above the masthead,
3609
+ on the fold between the deck and the columns, and closing the page under
3610
+ the footer (mirrored there: hairline over heavy). box-sizing is
3611
+ border-box, so the height pays for both borders first:
3612
+ 8px = 3px heavy + 4px of paper + 1px hairline. */
3613
+ .ar-rule-double {
3614
+ height: 0.5rem;
3615
+ border-top: 3px solid var(--ar-sheet-rule-strong);
3616
+ border-bottom: 1px solid var(--ar-sheet-rule-strong);
3617
+ margin: var(--ar-s-2) 0;
3618
+ }
3619
+ .ar-rule-double-end {
3620
+ border-top: 1px solid var(--ar-sheet-rule-strong);
3621
+ border-bottom: 3px solid var(--ar-sheet-rule-strong);
3622
+ margin-top: var(--ar-s-5);
3623
+ margin-bottom: 0;
3624
+ }
3625
+
3626
+ /* Masthead: the nameplate over the folio line — the order a front page
3627
+ sets them. The nameplate's clamp is capped at 4.5rem: the nameplate,
3628
+ banner, deck, facts, fold rule, columns and front-page footer rule all
3629
+ close above a 900px fold, and a 13rem plate spends the budget on its own
3630
+ ascenders. The display face is wide, so the 13vw term keeps it inside a
3631
+ 390px viewport; the cap takes over from ~550px up. */
3632
+ .ar-masthead {
3633
+ text-align: center;
3634
+ }
3635
+ .ar-folio {
3636
+ display: flex;
3637
+ flex-wrap: wrap;
3638
+ justify-content: space-between;
3639
+ gap: var(--ar-s-2);
3640
+ font-family: var(--ar-sheet-mono);
3641
+ font-size: 0.6875rem;
3642
+ letter-spacing: 0.08em;
3643
+ text-transform: uppercase;
3644
+ color: var(--ar-sheet-ink-soft);
3645
+ border-bottom: 1px solid var(--ar-sheet-rule);
3646
+ padding-bottom: var(--ar-s-2);
3647
+ margin-bottom: var(--ar-s-2);
3648
+ }
3649
+ .ar-folio > span {
3650
+ min-width: 0;
3651
+ }
3652
+ .ar-nameplate {
3653
+ font-family: var(--ar-sheet-display);
3654
+ font-weight: var(--ar-sheet-weight-black);
3655
+ line-height: 0.86;
3656
+ letter-spacing: -0.045em;
3657
+ font-size: var(--ar-sheet-nameplate-size);
3658
+ margin: 0;
3659
+ }
3660
+
3661
+ /* Banner: the day's story. The face sizes its banner through
3662
+ --ar-sheet-banner-size, so one mark re-fits the whole front page. */
3663
+ .ar-banner {
3664
+ font-family: var(--ar-sheet-display);
3665
+ font-weight: var(--ar-sheet-weight-black);
3666
+ letter-spacing: -0.03em;
3667
+ line-height: 0.94;
3668
+ font-size: var(--ar-sheet-banner-size);
3669
+ margin: var(--ar-s-4) 0 var(--ar-s-2);
3670
+ text-wrap: balance;
3671
+ text-align: center;
3672
+ overflow-wrap: break-word;
3673
+ hyphens: auto;
3674
+ }
3675
+
3676
+ /* Ruled column grid: an explicit, drawn grid. Grid children default to
3677
+ min-width:auto, which lets one wide child stretch its track past the
3678
+ viewport — let the columns shrink. Columns divide with hairlines; the
3679
+ grid's own top rule is an .ar-rule-double above it. One column until
3680
+ 640px, two until 1024px, three above. */
3681
+ .ar-sheet-cols {
3682
+ display: grid;
3683
+ gap: 0;
3684
+ grid-template-columns: minmax(0, 1fr);
3685
+ }
3686
+ .ar-sheet-col {
3687
+ padding: var(--ar-s-2) 0 var(--ar-s-5);
3688
+ border-bottom: 1px solid var(--ar-sheet-rule);
3689
+ min-width: 0;
3690
+ }
3691
+ @media (min-width: 640px) {
3692
+ .ar-sheet-cols {
3693
+ grid-template-columns: repeat(2, minmax(0, 1fr));
3694
+ column-gap: var(--ar-s-6);
3695
+ }
3696
+ .ar-sheet-col {
3697
+ border-bottom: 0;
3698
+ border-right: 1px solid var(--ar-sheet-rule);
3699
+ padding-right: var(--ar-s-6);
3700
+ }
3701
+ .ar-sheet-col:nth-child(2n) {
3702
+ border-right: 0;
3703
+ padding-right: 0;
3704
+ }
3705
+ .ar-sheet-col:nth-child(n + 3) {
3706
+ border-top: 1px solid var(--ar-sheet-rule);
3707
+ margin-top: var(--ar-s-5);
3708
+ padding-top: var(--ar-s-5);
3709
+ }
3710
+ }
3711
+ @media (min-width: 1024px) {
3712
+ .ar-sheet-cols {
3713
+ grid-template-columns: repeat(3, minmax(0, 1fr));
3714
+ }
3715
+ .ar-sheet-col {
3716
+ border-right: 1px solid var(--ar-sheet-rule);
3717
+ padding-right: var(--ar-s-5);
3718
+ }
3719
+ .ar-sheet-col:nth-child(2n) {
3720
+ border-right: 1px solid var(--ar-sheet-rule);
3721
+ padding-right: var(--ar-s-5);
3722
+ }
3723
+ .ar-sheet-col:last-child {
3724
+ border-right: 0;
3725
+ padding-right: 0;
3726
+ }
3727
+ .ar-sheet-col:nth-child(n + 3) {
3728
+ border-top: 0;
3729
+ margin-top: 0;
3730
+ padding-top: var(--ar-s-2);
3731
+ }
3732
+ }
3733
+
3734
+ /* Plate: a live component set as a printed specimen — label pinned
3735
+ top-left, body below, the class string under the frame. */
3736
+ .ar-plate {
3737
+ border: 1px solid var(--ar-sheet-rule);
3738
+ background: var(--ar-sheet-paper-2);
3739
+ padding: var(--ar-s-3);
3740
+ position: relative;
3741
+ min-width: 0;
3742
+ }
3743
+ .ar-plate-label {
3744
+ font-family: var(--ar-sheet-mono);
3745
+ font-size: 0.625rem;
3746
+ letter-spacing: 0.12em;
3747
+ text-transform: uppercase;
3748
+ color: var(--ar-sheet-ink-faint);
3749
+ position: absolute;
3750
+ top: var(--ar-s-2);
3751
+ left: var(--ar-s-3);
3752
+ }
3753
+ .ar-plate-body {
3754
+ margin-top: var(--ar-s-4);
3755
+ min-width: 0;
3756
+ }
3757
+ .ar-plate-tag {
3758
+ font-family: var(--ar-sheet-mono);
3759
+ font-size: 0.6875rem;
3760
+ color: var(--ar-sheet-ink-faint);
3761
+ margin-top: var(--ar-s-2);
3762
+ word-break: break-word;
3763
+ overflow-wrap: anywhere;
3764
+ min-width: 0;
3765
+ }
3766
+
3767
+ /* ============================================================
3768
+ 36f. EMPTY STATE
3769
+ ============================================================ */
3770
+ .ar-empty {
3771
+ display: flex;
3772
+ flex-direction: column;
3773
+ align-items: center;
3774
+ gap: var(--ar-s-2);
3775
+ padding: var(--ar-s-10) var(--ar-s-4);
3776
+ text-align: center;
3777
+ color: var(--ar-gray-600);
3778
+ }
3779
+ .ar-empty-icon {
3780
+ display: flex;
3781
+ align-items: center;
3782
+ justify-content: center;
3783
+ width: 3rem;
3784
+ height: 3rem;
3785
+ border-radius: var(--ar-radius-pill);
3786
+ background: var(--ar-base-200);
3787
+ color: var(--ar-gray-500);
3788
+ }
3789
+ .ar-empty-icon svg {
3790
+ width: 1.5rem;
3791
+ height: 1.5rem;
3792
+ }
3793
+ .ar-empty-title {
3794
+ font-size: 1.125rem;
3795
+ font-weight: 700;
3796
+ color: var(--ar-base-content);
3797
+ }
3798
+ .ar-empty-desc {
3799
+ max-width: 42ch;
3800
+ line-height: 1.6;
3801
+ }
3802
+ .ar-empty-action {
3803
+ margin-top: var(--ar-s-2);
3804
+ }
3805
+
3806
+ /* ============================================================
3807
+ 36g. SEGMENTED CONTROL
3808
+ ============================================================ */
3809
+ .ar-segmented {
3810
+ display: inline-flex;
3811
+ align-items: center;
3812
+ gap: var(--ar-s-1);
3813
+ padding: var(--ar-s-1);
3814
+ border-radius: var(--ar-radius-box);
3815
+ background: var(--ar-base-200);
3816
+ }
3817
+ .ar-segmented-input {
3818
+ position: absolute;
3819
+ width: 1px;
3820
+ height: 1px;
3821
+ margin: -1px;
3822
+ padding: 0;
3823
+ overflow: hidden;
3824
+ clip-path: inset(50%);
3825
+ white-space: nowrap;
3826
+ border: 0;
3827
+ }
3828
+ .ar-segmented-item {
3829
+ padding: 0.5rem 1rem;
3830
+ border-radius: calc(var(--ar-radius-box) - var(--ar-s-1));
3831
+ color: var(--ar-gray-600);
3832
+ font-family: var(--ar-font-sans);
3833
+ font-size: 0.875rem;
3834
+ font-weight: 600;
3835
+ line-height: 1.25;
3836
+ text-align: center;
3837
+ white-space: nowrap;
3838
+ cursor: pointer;
3839
+ user-select: none;
3840
+ }
3841
+ .ar-segmented-item:hover {
3842
+ color: var(--ar-base-content);
3843
+ }
3844
+ .ar-segmented-input:checked + .ar-segmented-item {
3845
+ background: var(--ar-primary);
3846
+ color: var(--ar-primary-content);
3847
+ }
3848
+ .ar-segmented-input:focus-visible + .ar-segmented-item {
3849
+ outline: 2px solid var(--ar-primary);
3850
+ outline-offset: 1px;
3851
+ }
3852
+
3853
+ /* ============================================================
3854
+ 36h. KEYBOARD KEY
3855
+ ============================================================ */
3856
+ .ar-kbd {
3857
+ display: inline-flex;
3858
+ align-items: center;
3859
+ justify-content: center;
3860
+ min-width: 1.75rem;
3861
+ padding: 0.125rem 0.375rem;
3862
+ border: var(--ar-border-width) solid var(--ar-base-300);
3863
+ border-bottom-width: calc(var(--ar-border-width) + 1px);
3864
+ border-radius: var(--ar-radius-field);
3865
+ background: var(--ar-base-200);
3866
+ color: var(--ar-base-content);
3867
+ font: 600 0.75rem/1.4 var(--ar-font-mono);
3868
+ text-align: center;
3869
+ }
3870
+
3871
+ /* ============================================================
3872
+ 36i. DESCRIPTION LIST
3873
+ ============================================================ */
3874
+ .ar-dl {
3875
+ display: grid;
3876
+ grid-template-columns: minmax(0, max-content) minmax(0, 1fr);
3877
+ margin: 0;
3878
+ }
3879
+ .ar-dt {
3880
+ padding: var(--ar-s-3) var(--ar-s-6) var(--ar-s-3) 0;
3881
+ color: var(--ar-gray-600);
3882
+ font-weight: 600;
3883
+ border-bottom: var(--ar-border-width) solid var(--ar-base-300);
3884
+ }
3885
+ .ar-dd {
3886
+ padding: var(--ar-s-3) 0;
3887
+ margin: 0;
3888
+ color: var(--ar-base-content);
3889
+ border-bottom: var(--ar-border-width) solid var(--ar-base-300);
3890
+ }
3891
+ /* The last pair closes the list without a trailing rule: -n + 2 clears the
3892
+ dt and dd of the final row in both the two-column and stacked layouts. */
3893
+ .ar-dl > :nth-last-child(-n + 2) {
3894
+ border-bottom: 0;
3895
+ }
3896
+ @media (max-width: 479px) {
3897
+ .ar-dl {
3898
+ grid-template-columns: 1fr;
3899
+ }
3900
+ .ar-dt {
3901
+ padding: var(--ar-s-3) 0 0;
3902
+ border-bottom: 0;
3903
+ }
3904
+ .ar-dd {
3905
+ padding: var(--ar-s-1) 0 var(--ar-s-3);
3906
+ }
3907
+ }
3908
+
3909
+ /* ============================================================
3910
+ 37. NEOBRUTALISM OVERRIDES
3911
+ ============================================================ */
3912
+ html[data-theme="neo"] body {
3913
+ font-family: var(--ar-font-sans);
3914
+ }
3915
+
3916
+ html[data-theme="neo"] .ar-btn {
3917
+ border: var(--ar-neo-border-width) solid var(--ar-neo-border-color);
3918
+ border-radius: 0.75rem;
3919
+ box-shadow: var(--ar-neo-shadow-md);
3920
+ font-family: var(--ar-font-sans);
3921
+ font-weight: 700;
3922
+ transition:
3923
+ box-shadow 0.15s ease-out,
3924
+ transform 0.15s ease-out;
3925
+ }
3926
+ html[data-theme="neo"] .ar-btn:hover {
3927
+ box-shadow: var(--ar-neo-shadow-sm);
3928
+ transform: translate(2px, 2px);
3929
+ }
3930
+ html[data-theme="neo"] .ar-btn:active {
3931
+ box-shadow: none;
3932
+ transform: translate(4px, 4px);
3933
+ }
3934
+ html[data-theme="neo"] .ar-btn-primary {
3935
+ background: var(--ar-neo-primary);
3936
+ color: var(--ar-neo-primary-content);
3937
+ }
3938
+ html[data-theme="neo"] .ar-btn-primary:hover {
3939
+ background: var(--ar-neo-primary);
3940
+ }
3941
+ html[data-theme="neo"] .ar-btn-outline {
3942
+ background: var(--ar-neo-base-100);
3943
+ border-color: var(--ar-neo-border-color);
3944
+ color: var(--ar-neo-base-content);
3945
+ }
3946
+ html[data-theme="neo"] .ar-btn-outline:hover {
3947
+ background: var(--ar-neo-base-content);
3948
+ color: var(--ar-neo-base-100);
3949
+ }
3950
+ html[data-theme="neo"] .ar-btn-ghost {
3951
+ background: transparent;
3952
+ border-color: transparent;
3953
+ box-shadow: none;
3954
+ }
3955
+ html[data-theme="neo"] .ar-btn-ghost:hover {
3956
+ background: var(--ar-neo-base-200);
3957
+ box-shadow: var(--ar-neo-shadow-sm);
3958
+ }
3959
+ html[data-theme="neo"] .ar-btn-neutral {
3960
+ background: var(--ar-neo-neutral);
3961
+ color: var(--ar-neo-neutral-content);
3962
+ }
3963
+ html[data-theme="neo"] .ar-btn-circle {
3964
+ border-radius: var(--ar-radius-pill);
3965
+ }
3966
+
3967
+ html[data-theme="neo"] .ar-card {
3968
+ border: var(--ar-neo-border-width) solid var(--ar-neo-border-color);
3969
+ border-radius: 1rem;
3970
+ box-shadow: var(--ar-neo-shadow-lg);
3971
+ overflow: hidden;
3972
+ }
3973
+
3974
+ html[data-theme="neo"] .ar-badge {
3975
+ border: 2px solid var(--ar-neo-border-color);
3976
+ border-radius: var(--ar-radius-pill);
3977
+ box-shadow: 2px 2px 0px 0px var(--ar-neo-border-color);
3978
+ font-weight: 700;
3979
+ }
3980
+
3981
+ html[data-theme="neo"] .ar-modal-box {
3982
+ border: var(--ar-neo-border-width) solid var(--ar-neo-border-color);
3983
+ border-radius: 1rem;
3984
+ box-shadow: var(--ar-neo-shadow-xl);
3985
+ }
3986
+
3987
+ html[data-theme="neo"] .ar-alert {
3988
+ border: var(--ar-neo-border-width) solid var(--ar-neo-border-color);
3989
+ border-radius: 0.75rem;
3990
+ box-shadow: var(--ar-neo-shadow-md);
3991
+ font-weight: 600;
3992
+ }
3993
+
3994
+ html[data-theme="neo"] .ar-table th,
3995
+ html[data-theme="neo"] .ar-table td {
3996
+ border: 2px solid var(--ar-neo-border-color);
3997
+ }
3998
+ html[data-theme="neo"] .ar-table th {
3999
+ background: var(--ar-neo-base-200);
4000
+ font-weight: 700;
4001
+ }
4002
+
4003
+ html[data-theme="neo"] .ar-tabs {
4004
+ border-bottom: var(--ar-neo-border-width) solid var(--ar-neo-border-color);
4005
+ }
4006
+ html[data-theme="neo"] .ar-tab {
4007
+ border: 2px solid transparent;
4008
+ border-bottom: 0;
4009
+ border-radius: 0.5rem 0.5rem 0 0;
4010
+ font-weight: 700;
4011
+ font-family: var(--ar-font-sans);
4012
+ }
4013
+ html[data-theme="neo"] .ar-tab-active {
4014
+ border-color: var(--ar-neo-border-color);
4015
+ background: var(--ar-neo-base-100);
4016
+ color: var(--ar-neo-primary);
4017
+ }
4018
+
4019
+ html[data-theme="neo"] .ar-accordion {
4020
+ border: var(--ar-neo-border-width) solid var(--ar-neo-border-color);
4021
+ border-radius: 0.75rem;
4022
+ box-shadow: var(--ar-neo-shadow-md);
4023
+ }
4024
+ html[data-theme="neo"] .ar-accordion details {
4025
+ border-top: 2px solid var(--ar-neo-border-color);
4026
+ }
4027
+ html[data-theme="neo"] .ar-accordion details:first-child {
4028
+ border-top: 0;
4029
+ }
4030
+
4031
+ html[data-theme="neo"] .ar-progress {
4032
+ border: 2px solid var(--ar-neo-border-color);
4033
+ border-radius: var(--ar-radius-pill);
4034
+ overflow: hidden;
4035
+ }
4036
+ html[data-theme="neo"] .ar-progress::-webkit-progress-value {
4037
+ background: var(--ar-neo-primary);
4038
+ }
4039
+
4040
+ html[data-theme="neo"] .ar-toast {
4041
+ border: var(--ar-neo-border-width) solid var(--ar-neo-border-color);
4042
+ border-radius: 0.75rem;
4043
+ box-shadow: var(--ar-neo-shadow-lg);
4044
+ font-weight: 600;
4045
+ }
4046
+
4047
+ html[data-theme="neo"] .ar-tag {
4048
+ border: 2px solid var(--ar-neo-border-color);
4049
+ border-radius: var(--ar-radius-pill);
4050
+ box-shadow: 2px 2px 0px 0px var(--ar-neo-border-color);
4051
+ font-weight: 600;
4052
+ }
4053
+
4054
+ html[data-theme="neo"] .ar-chat-bubble {
4055
+ border: var(--ar-neo-border-width) solid var(--ar-neo-border-color);
4056
+ border-radius: 1rem;
4057
+ box-shadow: var(--ar-neo-shadow-sm);
4058
+ }
4059
+ html[data-theme="neo"] .ar-chat-end .ar-chat-bubble {
4060
+ background: var(--ar-neo-primary);
4061
+ color: var(--ar-neo-primary-content);
4062
+ border-color: var(--ar-neo-border-color);
4063
+ }
4064
+
4065
+ html[data-theme="neo"] .ar-dropdown-content {
4066
+ border: var(--ar-neo-border-width) solid var(--ar-neo-border-color);
4067
+ border-radius: 0.75rem;
4068
+ box-shadow: var(--ar-neo-shadow-lg);
4069
+ }
4070
+
4071
+ html[data-theme="neo"] .ar-popover-content {
4072
+ border: var(--ar-neo-border-width) solid var(--ar-neo-border-color);
4073
+ border-radius: 0.75rem;
4074
+ box-shadow: var(--ar-neo-shadow-lg);
4075
+ }
4076
+
4077
+ html[data-theme="neo"] .ar-tooltip[data-tip]::after {
4078
+ border: 2px solid var(--ar-neo-border-color);
4079
+ border-radius: 0.5rem;
4080
+ box-shadow: 2px 2px 0px 0px var(--ar-neo-border-color);
4081
+ font-weight: 600;
4082
+ }
4083
+
4084
+ html[data-theme="neo"] .ar-input,
4085
+ html[data-theme="neo"] .ar-select,
4086
+ html[data-theme="neo"] .ar-textarea {
4087
+ border: var(--ar-neo-border-width) solid var(--ar-neo-border-color);
4088
+ border-radius: 0.5rem;
4089
+ box-shadow: var(--ar-neo-shadow-sm);
4090
+ font-family: var(--ar-font-sans);
4091
+ transition:
4092
+ box-shadow 0.15s ease-out,
4093
+ border-color 0.15s ease-out;
4094
+ }
4095
+ html[data-theme="neo"] .ar-input:focus,
4096
+ html[data-theme="neo"] .ar-select:focus,
4097
+ html[data-theme="neo"] .ar-textarea:focus {
4098
+ border-color: var(--ar-neo-primary);
4099
+ box-shadow: var(--ar-neo-shadow-md);
4100
+ outline: 0;
4101
+ }
4102
+
4103
+ html[data-theme="neo"] .ar-toggle {
4104
+ border: var(--ar-neo-border-width) solid var(--ar-neo-border-color);
4105
+ border-radius: var(--ar-radius-pill);
4106
+ box-shadow: var(--ar-neo-shadow-sm);
4107
+ transition: background 0.15s ease-out;
4108
+ }
4109
+ html[data-theme="neo"] .ar-toggle::after {
4110
+ top: 0.125rem;
4111
+ left: 0.125rem;
4112
+ width: 0.875rem;
4113
+ height: 0.875rem;
4114
+ transition: transform 0.15s ease-out;
4115
+ }
4116
+
4117
+ html[data-theme="neo"] .ar-page-item {
4118
+ border: 2px solid var(--ar-neo-border-color);
4119
+ border-radius: 0.5rem;
4120
+ font-weight: 700;
4121
+ box-shadow: 2px 2px 0px 0px var(--ar-neo-border-color);
4122
+ transition:
4123
+ box-shadow 0.15s ease-out,
4124
+ transform 0.15s ease-out;
4125
+ }
4126
+ html[data-theme="neo"] .ar-page-item:hover {
4127
+ box-shadow: 1px 1px 0px 0px var(--ar-neo-border-color);
4128
+ transform: translate(1px, 1px);
4129
+ }
4130
+ html[data-theme="neo"] .ar-page-active {
4131
+ background: var(--ar-neo-primary);
4132
+ color: var(--ar-neo-primary-content);
4133
+ border-color: var(--ar-neo-border-color);
4134
+ }
4135
+
4136
+ html[data-theme="neo"] .ar-step::before {
4137
+ border: 2px solid var(--ar-neo-border-color);
4138
+ box-shadow: 2px 2px 0px 0px var(--ar-neo-border-color);
4139
+ }
4140
+
4141
+ html[data-theme="neo"] .ar-navbar {
4142
+ border-bottom: var(--ar-neo-border-width) solid var(--ar-neo-border-color);
4143
+ background: var(--ar-neo-base-100);
4144
+ }
4145
+
4146
+ html[data-theme="neo"] .ar-footer {
4147
+ border-top: var(--ar-neo-border-width) solid var(--ar-neo-border-color);
4148
+ }
4149
+
4150
+ html[data-theme="neo"] .ar-hero {
4151
+ background: var(--ar-neo-base-200);
4152
+ }
4153
+
4154
+ html[data-theme="neo"] .ar-scroll-top {
4155
+ border: var(--ar-neo-border-width) solid var(--ar-neo-border-color);
4156
+ border-radius: var(--ar-radius-pill);
4157
+ box-shadow: var(--ar-neo-shadow-md);
4158
+ }
4159
+ html[data-theme="neo"] .ar-scroll-top:hover {
4160
+ box-shadow: var(--ar-neo-shadow-sm);
4161
+ transform: translate(2px, 2px);
4162
+ }
4163
+
4164
+ html[data-theme="neo"] .ar-sidebar-panel > .ar-menu {
4165
+ border-right: var(--ar-neo-border-width) solid var(--ar-neo-border-color);
4166
+ }
4167
+ html[data-theme="neo"] .ar-sidebar-panel-end > .ar-menu {
4168
+ border-right: 0;
4169
+ border-left: var(--ar-neo-border-width) solid var(--ar-neo-border-color);
4170
+ }
4171
+
4172
+ html[data-theme="neo"] .ar-skeleton {
4173
+ border: 2px solid var(--ar-neo-border-color);
4174
+ }
4175
+
4176
+ html[data-theme="neo"] .ar-breadcrumb-item:not(:last-child)::after {
4177
+ color: var(--ar-neo-gray-400);
4178
+ }
4179
+
4180
+ html[data-theme="neo"] .ar-file-upload {
4181
+ border: 3px dashed var(--ar-neo-border-color);
4182
+ border-radius: 0.75rem;
4183
+ transition: all 0.2s ease;
4184
+ }
4185
+ html[data-theme="neo"] .ar-file-upload:hover {
4186
+ border-color: var(--ar-neo-primary);
4187
+ background: rgba(0, 174, 239, 0.05);
4188
+ transform: scale(1.02) rotate(-1deg);
4189
+ }
4190
+ html[data-theme="neo"] .ar-file-upload.ar-file-upload-dragover {
4191
+ border-color: var(--ar-neo-primary);
4192
+ background: rgba(0, 174, 239, 0.05);
4193
+ transform: scale(1.02);
4194
+ }
4195
+
4196
+ html[data-theme="neo"] .ar-prose pre {
4197
+ border: 2px solid var(--ar-neo-border-color);
4198
+ border-radius: 0.75rem;
4199
+ box-shadow: var(--ar-neo-shadow-sm);
4200
+ }
4201
+ html[data-theme="neo"] .ar-prose code {
4202
+ border: 1px solid var(--ar-neo-border-color);
4203
+ }
4204
+ html[data-theme="neo"] .ar-prose th {
4205
+ border: 2px solid var(--ar-neo-border-color);
4206
+ }
4207
+ html[data-theme="neo"] .ar-prose td {
4208
+ border: 2px solid var(--ar-neo-border-color);
4209
+ }
4210
+ html[data-theme="neo"] .ar-prose blockquote {
4211
+ border-left: 4px solid var(--ar-neo-primary);
4212
+ }
4213
+
4214
+ html[data-theme="neo"] .ar-empty-icon {
4215
+ border: var(--ar-neo-border-width) solid var(--ar-neo-border-color);
4216
+ box-shadow: var(--ar-neo-shadow-sm);
4217
+ }
4218
+ html[data-theme="neo"] .ar-segmented {
4219
+ border: var(--ar-neo-border-width) solid var(--ar-neo-border-color);
4220
+ box-shadow: var(--ar-neo-shadow-sm);
4221
+ }
4222
+ html[data-theme="neo"] .ar-segmented-item {
4223
+ border: var(--ar-neo-border-width) solid transparent;
4224
+ }
4225
+ html[data-theme="neo"] .ar-segmented-input:checked + .ar-segmented-item {
2148
4226
  border-color: var(--ar-neo-border-color);
2149
- background: var(--ar-neo-base-100);
2150
- color: var(--ar-neo-primary);
4227
+ }
4228
+ html[data-theme="neo"] .ar-kbd {
4229
+ border-color: var(--ar-neo-border-color);
4230
+ box-shadow: var(--ar-neo-shadow-sm);
4231
+ }
4232
+ @media (min-width: 480px) {
4233
+ html[data-theme="neo"] .ar-dt {
4234
+ border-bottom: var(--ar-neo-border-width) solid var(--ar-neo-border-color);
4235
+ }
4236
+ }
4237
+ html[data-theme="neo"] .ar-dd {
4238
+ border-bottom: var(--ar-neo-border-width) solid var(--ar-neo-border-color);
4239
+ }
4240
+ html[data-theme="neo"] .ar-dl > :nth-last-child(-n + 2) {
4241
+ border-bottom: 0;
4242
+ }
4243
+
4244
+ /* ============================================================
4245
+ 37b. PIXEL-ART OVERRIDES
4246
+ ============================================================ */
4247
+ html[data-theme="pixel"] body {
4248
+ font-family: var(--ar-font-mono);
4249
+ image-rendering: pixelated;
4250
+ }
4251
+
4252
+ html[data-theme="pixel"] .ar-btn {
4253
+ border: var(--ar-pixel-border-width) solid var(--ar-pixel-border-color);
4254
+ border-radius: 0;
4255
+ box-shadow: var(--ar-pixel-shadow-md);
4256
+ font-family: var(--ar-font-mono);
4257
+ font-weight: 700;
4258
+ text-transform: uppercase;
4259
+ letter-spacing: 0.05em;
4260
+ transition:
4261
+ box-shadow 0.1s step-end,
4262
+ transform 0.1s step-end;
4263
+ }
4264
+ html[data-theme="pixel"] .ar-btn:hover {
4265
+ box-shadow: var(--ar-pixel-shadow-sm);
4266
+ transform: translate(2px, 2px);
4267
+ }
4268
+ html[data-theme="pixel"] .ar-btn:active {
4269
+ box-shadow: none;
4270
+ transform: translate(4px, 4px);
4271
+ }
4272
+ html[data-theme="pixel"] .ar-btn-primary {
4273
+ background: var(--ar-pixel-primary);
4274
+ color: var(--ar-pixel-primary-content);
4275
+ }
4276
+ html[data-theme="pixel"] .ar-btn-primary:hover {
4277
+ background: var(--ar-pixel-primary);
4278
+ }
4279
+ html[data-theme="pixel"] .ar-btn-outline {
4280
+ background: var(--ar-pixel-base-100);
4281
+ border-color: var(--ar-pixel-border-color);
4282
+ color: var(--ar-pixel-base-content);
4283
+ }
4284
+ html[data-theme="pixel"] .ar-btn-outline:hover {
4285
+ background: var(--ar-pixel-base-content);
4286
+ color: var(--ar-pixel-base-100);
4287
+ }
4288
+ html[data-theme="pixel"] .ar-btn-ghost {
4289
+ background: transparent;
4290
+ border-color: transparent;
4291
+ box-shadow: none;
4292
+ }
4293
+ html[data-theme="pixel"] .ar-btn-ghost:hover {
4294
+ background: var(--ar-pixel-base-200);
4295
+ box-shadow: var(--ar-pixel-shadow-sm);
4296
+ }
4297
+ html[data-theme="pixel"] .ar-btn-neutral {
4298
+ background: var(--ar-pixel-neutral);
4299
+ color: var(--ar-pixel-neutral-content);
4300
+ }
4301
+ html[data-theme="pixel"] .ar-btn-circle {
4302
+ border-radius: 0;
4303
+ }
4304
+
4305
+ html[data-theme="pixel"] .ar-card {
4306
+ border: var(--ar-pixel-border-width) solid var(--ar-pixel-border-color);
4307
+ border-radius: 0;
4308
+ box-shadow: var(--ar-pixel-shadow-lg);
4309
+ overflow: hidden;
4310
+ }
4311
+
4312
+ html[data-theme="pixel"] .ar-badge {
4313
+ border: 2px solid var(--ar-pixel-border-color);
4314
+ border-radius: 0;
4315
+ box-shadow: 2px 2px 0px 0px var(--ar-pixel-border-color);
4316
+ font-weight: 700;
4317
+ text-transform: uppercase;
4318
+ }
4319
+
4320
+ html[data-theme="pixel"] .ar-modal-box {
4321
+ border: var(--ar-pixel-border-width) solid var(--ar-pixel-border-color);
4322
+ border-radius: 0;
4323
+ box-shadow: var(--ar-pixel-shadow-xl);
4324
+ }
4325
+
4326
+ html[data-theme="pixel"] .ar-alert {
4327
+ border: var(--ar-pixel-border-width) solid var(--ar-pixel-border-color);
4328
+ border-radius: 0;
4329
+ box-shadow: var(--ar-pixel-shadow-md);
4330
+ font-weight: 600;
4331
+ }
4332
+
4333
+ html[data-theme="pixel"] .ar-table th,
4334
+ html[data-theme="pixel"] .ar-table td {
4335
+ border: 2px solid var(--ar-pixel-border-color);
4336
+ }
4337
+ html[data-theme="pixel"] .ar-table th {
4338
+ background: var(--ar-pixel-base-200);
4339
+ font-weight: 700;
4340
+ text-transform: uppercase;
4341
+ }
4342
+
4343
+ html[data-theme="pixel"] .ar-tabs {
4344
+ border-bottom: var(--ar-pixel-border-width) solid var(--ar-pixel-border-color);
4345
+ }
4346
+ html[data-theme="pixel"] .ar-tab {
4347
+ border: 2px solid transparent;
4348
+ border-bottom: 0;
4349
+ border-radius: 0;
4350
+ font-weight: 700;
4351
+ font-family: var(--ar-font-mono);
4352
+ text-transform: uppercase;
4353
+ }
4354
+ html[data-theme="pixel"] .ar-tab-active {
4355
+ border-color: var(--ar-pixel-border-color);
4356
+ background: var(--ar-pixel-base-100);
4357
+ color: var(--ar-pixel-primary);
4358
+ }
4359
+
4360
+ html[data-theme="pixel"] .ar-accordion {
4361
+ border: var(--ar-pixel-border-width) solid var(--ar-pixel-border-color);
4362
+ border-radius: 0;
4363
+ box-shadow: var(--ar-pixel-shadow-md);
4364
+ }
4365
+ html[data-theme="pixel"] .ar-accordion details {
4366
+ border-top: 2px solid var(--ar-pixel-border-color);
4367
+ }
4368
+ html[data-theme="pixel"] .ar-accordion details:first-child {
4369
+ border-top: 0;
4370
+ }
4371
+
4372
+ html[data-theme="pixel"] .ar-progress {
4373
+ border: 2px solid var(--ar-pixel-border-color);
4374
+ border-radius: 0;
4375
+ overflow: hidden;
4376
+ }
4377
+ html[data-theme="pixel"] .ar-progress::-webkit-progress-value {
4378
+ background: var(--ar-pixel-primary);
4379
+ }
4380
+
4381
+ html[data-theme="pixel"] .ar-toast {
4382
+ border: var(--ar-pixel-border-width) solid var(--ar-pixel-border-color);
4383
+ border-radius: 0;
4384
+ box-shadow: var(--ar-pixel-shadow-lg);
4385
+ font-weight: 600;
4386
+ }
4387
+
4388
+ html[data-theme="pixel"] .ar-tag {
4389
+ border: 2px solid var(--ar-pixel-border-color);
4390
+ border-radius: 0;
4391
+ box-shadow: 2px 2px 0px 0px var(--ar-pixel-border-color);
4392
+ font-weight: 600;
4393
+ }
4394
+
4395
+ html[data-theme="pixel"] .ar-chat-bubble {
4396
+ border: var(--ar-pixel-border-width) solid var(--ar-pixel-border-color);
4397
+ border-radius: 0;
4398
+ box-shadow: var(--ar-pixel-shadow-sm);
4399
+ }
4400
+ html[data-theme="pixel"] .ar-chat-end .ar-chat-bubble {
4401
+ background: var(--ar-pixel-primary);
4402
+ color: var(--ar-pixel-primary-content);
4403
+ border-color: var(--ar-pixel-border-color);
4404
+ }
4405
+
4406
+ html[data-theme="pixel"] .ar-dropdown-content {
4407
+ border: var(--ar-pixel-border-width) solid var(--ar-pixel-border-color);
4408
+ border-radius: 0;
4409
+ box-shadow: var(--ar-pixel-shadow-lg);
4410
+ }
4411
+
4412
+ html[data-theme="pixel"] .ar-popover-content {
4413
+ border: var(--ar-pixel-border-width) solid var(--ar-pixel-border-color);
4414
+ border-radius: 0;
4415
+ box-shadow: var(--ar-pixel-shadow-lg);
4416
+ }
4417
+
4418
+ html[data-theme="pixel"] .ar-tooltip[data-tip]::after {
4419
+ border: 2px solid var(--ar-pixel-border-color);
4420
+ border-radius: 0;
4421
+ box-shadow: 2px 2px 0px 0px var(--ar-pixel-border-color);
4422
+ font-weight: 600;
4423
+ }
4424
+
4425
+ html[data-theme="pixel"] .ar-input,
4426
+ html[data-theme="pixel"] .ar-select,
4427
+ html[data-theme="pixel"] .ar-textarea {
4428
+ border: var(--ar-pixel-border-width) solid var(--ar-pixel-border-color);
4429
+ border-radius: 0;
4430
+ box-shadow: var(--ar-pixel-shadow-sm);
4431
+ font-family: var(--ar-font-mono);
4432
+ transition:
4433
+ box-shadow 0.1s step-end,
4434
+ border-color 0.1s step-end;
4435
+ }
4436
+ html[data-theme="pixel"] .ar-input:focus,
4437
+ html[data-theme="pixel"] .ar-select:focus,
4438
+ html[data-theme="pixel"] .ar-textarea:focus {
4439
+ border-color: var(--ar-pixel-primary);
4440
+ box-shadow: var(--ar-pixel-shadow-md);
4441
+ outline: 0;
4442
+ }
4443
+
4444
+ html[data-theme="pixel"] .ar-toggle {
4445
+ border: var(--ar-pixel-border-width) solid var(--ar-pixel-border-color);
4446
+ border-radius: 0;
4447
+ box-shadow: var(--ar-pixel-shadow-sm);
4448
+ transition: background 0.1s step-end;
4449
+ }
4450
+ html[data-theme="pixel"] .ar-toggle::after {
4451
+ top: 0.125rem;
4452
+ left: 0.125rem;
4453
+ width: 1rem;
4454
+ height: 1rem;
4455
+ border-radius: 0;
4456
+ transition: transform 0.1s step-end;
4457
+ }
4458
+
4459
+ html[data-theme="pixel"] .ar-page-item {
4460
+ border: 2px solid var(--ar-pixel-border-color);
4461
+ border-radius: 0;
4462
+ font-weight: 700;
4463
+ box-shadow: 2px 2px 0px 0px var(--ar-pixel-border-color);
4464
+ transition:
4465
+ box-shadow 0.1s step-end,
4466
+ transform 0.1s step-end;
4467
+ }
4468
+ html[data-theme="pixel"] .ar-page-item:hover {
4469
+ box-shadow: 1px 1px 0px 0px var(--ar-pixel-border-color);
4470
+ transform: translate(1px, 1px);
4471
+ }
4472
+ html[data-theme="pixel"] .ar-page-active {
4473
+ background: var(--ar-pixel-primary);
4474
+ color: var(--ar-pixel-primary-content);
4475
+ border-color: var(--ar-pixel-border-color);
4476
+ }
4477
+
4478
+ html[data-theme="pixel"] .ar-step::before {
4479
+ border: 2px solid var(--ar-pixel-border-color);
4480
+ box-shadow: 2px 2px 0px 0px var(--ar-pixel-border-color);
4481
+ }
4482
+
4483
+ html[data-theme="pixel"] .ar-navbar {
4484
+ border-bottom: var(--ar-pixel-border-width) solid var(--ar-pixel-border-color);
4485
+ background: var(--ar-pixel-base-100);
4486
+ }
4487
+
4488
+ html[data-theme="pixel"] .ar-footer {
4489
+ border-top: var(--ar-pixel-border-width) solid var(--ar-pixel-border-color);
4490
+ }
4491
+
4492
+ html[data-theme="pixel"] .ar-hero {
4493
+ background: var(--ar-pixel-base-200);
4494
+ }
4495
+
4496
+ html[data-theme="pixel"] .ar-scroll-top {
4497
+ border: var(--ar-pixel-border-width) solid var(--ar-pixel-border-color);
4498
+ border-radius: 0;
4499
+ box-shadow: var(--ar-pixel-shadow-md);
4500
+ }
4501
+ html[data-theme="pixel"] .ar-scroll-top:hover {
4502
+ box-shadow: var(--ar-pixel-shadow-sm);
4503
+ transform: translate(2px, 2px);
4504
+ }
4505
+
4506
+ html[data-theme="pixel"] .ar-sidebar-panel > .ar-menu {
4507
+ border-right: var(--ar-pixel-border-width) solid var(--ar-pixel-border-color);
4508
+ }
4509
+ html[data-theme="pixel"] .ar-sidebar-panel-end > .ar-menu {
4510
+ border-right: 0;
4511
+ border-left: var(--ar-pixel-border-width) solid var(--ar-pixel-border-color);
4512
+ }
4513
+
4514
+ html[data-theme="pixel"] .ar-skeleton {
4515
+ border: 2px solid var(--ar-pixel-border-color);
4516
+ }
4517
+
4518
+ html[data-theme="pixel"] .ar-breadcrumb-item:not(:last-child)::after {
4519
+ color: var(--ar-pixel-gray-400);
4520
+ }
4521
+
4522
+ html[data-theme="pixel"] .ar-file-upload {
4523
+ border: 3px dashed var(--ar-pixel-border-color);
4524
+ border-radius: 0;
4525
+ transition: all 0.1s step-end;
4526
+ }
4527
+ html[data-theme="pixel"] .ar-file-upload:hover {
4528
+ border-color: var(--ar-pixel-primary);
4529
+ background: rgb(74 144 217 / 0.1);
4530
+ transform: scale(1.02);
4531
+ }
4532
+ html[data-theme="pixel"] .ar-file-upload.ar-file-upload-dragover {
4533
+ border-color: var(--ar-pixel-primary);
4534
+ background: rgb(74 144 217 / 0.1);
4535
+ transform: scale(1.02);
4536
+ }
4537
+
4538
+ html[data-theme="pixel"] .ar-prose pre {
4539
+ border: 2px solid var(--ar-pixel-border-color);
4540
+ border-radius: 0;
4541
+ box-shadow: var(--ar-pixel-shadow-sm);
4542
+ }
4543
+ html[data-theme="pixel"] .ar-prose code {
4544
+ border: 1px solid var(--ar-pixel-border-color);
4545
+ }
4546
+ html[data-theme="pixel"] .ar-prose th {
4547
+ border: 2px solid var(--ar-pixel-border-color);
4548
+ }
4549
+ html[data-theme="pixel"] .ar-prose td {
4550
+ border: 2px solid var(--ar-pixel-border-color);
4551
+ }
4552
+ html[data-theme="pixel"] .ar-prose blockquote {
4553
+ border-left: 4px solid var(--ar-pixel-primary);
4554
+ }
4555
+
4556
+ html[data-theme="pixel"] .ar-empty-icon {
4557
+ border: var(--ar-pixel-border-width) solid var(--ar-pixel-border-color);
4558
+ box-shadow: var(--ar-pixel-shadow-sm);
4559
+ }
4560
+ html[data-theme="pixel"] .ar-segmented {
4561
+ border: var(--ar-pixel-border-width) solid var(--ar-pixel-border-color);
4562
+ box-shadow: var(--ar-pixel-shadow-sm);
4563
+ }
4564
+ html[data-theme="pixel"] .ar-segmented-input:checked + .ar-segmented-item {
4565
+ box-shadow: var(--ar-pixel-shadow-sm);
4566
+ }
4567
+ html[data-theme="pixel"] .ar-kbd {
4568
+ border-color: var(--ar-pixel-border-color);
4569
+ box-shadow: var(--ar-pixel-shadow-sm);
4570
+ }
4571
+ @media (min-width: 480px) {
4572
+ html[data-theme="pixel"] .ar-dt {
4573
+ border-bottom-color: var(--ar-pixel-border-color);
4574
+ }
4575
+ }
4576
+ html[data-theme="pixel"] .ar-dd {
4577
+ border-bottom-color: var(--ar-pixel-border-color);
4578
+ }
4579
+ html[data-theme="pixel"] .ar-dl > :nth-last-child(-n + 2) {
4580
+ border-bottom: 0;
4581
+ }
4582
+
4583
+ /* ============================================================
4584
+ 37c. BRUTALIST OVERRIDES
4585
+ ============================================================ */
4586
+ html[data-theme="brutalist"] body {
4587
+ font-family: var(--ar-font-mono);
4588
+ }
4589
+
4590
+ html[data-theme="brutalist"] .ar-btn {
4591
+ font-family: var(--ar-font-mono);
4592
+ font-weight: 700;
4593
+ text-transform: uppercase;
4594
+ letter-spacing: 0.05em;
4595
+ border-color: var(--ar-brutalist-border-color);
4596
+ transition: all 0.1s linear;
4597
+ }
4598
+
4599
+ html[data-theme="brutalist"] .ar-btn:hover {
4600
+ background: var(--ar-base-content);
4601
+ color: var(--ar-base-100);
4602
+ }
4603
+ html[data-theme="brutalist"] .ar-btn:active {
4604
+ transform: none;
4605
+ }
4606
+ html[data-theme="brutalist"] .ar-btn-primary:hover,
4607
+ html[data-theme="brutalist"] .ar-btn-neutral:hover {
4608
+ background: var(--ar-base-100);
4609
+ color: var(--ar-base-content);
4610
+ }
4611
+ html[data-theme="brutalist"] .ar-btn-ghost {
4612
+ border-color: transparent;
4613
+ }
4614
+ html[data-theme="brutalist"] .ar-btn-ghost:hover {
4615
+ border-color: transparent;
4616
+ background: var(--ar-base-200);
4617
+ color: var(--ar-base-content);
4618
+ }
4619
+
4620
+ html[data-theme="brutalist"] .ar-card,
4621
+ html[data-theme="brutalist"] .ar-modal-box,
4622
+ html[data-theme="brutalist"] .ar-dropdown-content,
4623
+ html[data-theme="brutalist"] .ar-popover-content,
4624
+ html[data-theme="brutalist"] .ar-toast,
4625
+ html[data-theme="brutalist"] .ar-carousel-btn,
4626
+ html[data-theme="brutalist"] .ar-scroll-top {
4627
+ border: var(--ar-border-width) solid var(--ar-brutalist-border-color);
4628
+ border-radius: 0;
4629
+ }
4630
+
4631
+ html[data-theme="brutalist"] .ar-scroll-top:hover {
4632
+ background: var(--ar-base-100);
4633
+ color: var(--ar-base-content);
4634
+ transform: none;
4635
+ }
4636
+
4637
+ html[data-theme="brutalist"] .ar-alert {
4638
+ border: var(--ar-border-width) solid var(--ar-brutalist-border-color);
4639
+ border-radius: 0;
4640
+ }
4641
+
4642
+ html[data-theme="brutalist"] .ar-badge,
4643
+ html[data-theme="brutalist"] .ar-tag {
4644
+ border: var(--ar-border-width) solid var(--ar-brutalist-border-color);
4645
+ font-weight: 700;
4646
+ text-transform: uppercase;
4647
+ letter-spacing: 0.05em;
2151
4648
  }
2152
4649
 
2153
- /* --- Accordion (neo) --- */
2154
- html[data-theme="neo"] .ar-accordion {
2155
- border: var(--ar-neo-border-width) solid var(--ar-neo-border-color);
2156
- border-radius: 0.75rem;
2157
- box-shadow: var(--ar-neo-shadow-md);
2158
- }
2159
- html[data-theme="neo"] .ar-accordion details {
2160
- border-top: 2px solid var(--ar-neo-border-color);
4650
+ html[data-theme="brutalist"] .ar-table th,
4651
+ html[data-theme="brutalist"] .ar-table td {
4652
+ border-bottom: var(--ar-border-width) solid var(--ar-brutalist-border-color);
2161
4653
  }
2162
- html[data-theme="neo"] .ar-accordion details:first-child {
2163
- border-top: 0;
4654
+ html[data-theme="brutalist"] .ar-table th {
4655
+ text-transform: uppercase;
4656
+ letter-spacing: 0.05em;
2164
4657
  }
2165
4658
 
2166
- /* --- Progress (neo) --- */
2167
- html[data-theme="neo"] .ar-progress {
2168
- border: 2px solid var(--ar-neo-border-color);
2169
- border-radius: var(--ar-radius-pill);
2170
- overflow: hidden;
4659
+ html[data-theme="brutalist"] .ar-tabs {
4660
+ border-bottom: var(--ar-border-width) solid var(--ar-brutalist-border-color);
2171
4661
  }
2172
- html[data-theme="neo"] .ar-progress::-webkit-progress-value {
2173
- background: var(--ar-neo-primary);
4662
+ html[data-theme="brutalist"] .ar-tab {
4663
+ font-family: var(--ar-font-mono);
4664
+ font-weight: 700;
4665
+ text-transform: uppercase;
4666
+ letter-spacing: 0.05em;
2174
4667
  }
2175
4668
 
2176
- /* --- Toast (neo) --- */
2177
- html[data-theme="neo"] .ar-toast {
2178
- border: var(--ar-neo-border-width) solid var(--ar-neo-border-color);
2179
- border-radius: 0.75rem;
2180
- box-shadow: var(--ar-neo-shadow-lg);
2181
- font-weight: 600;
4669
+ html[data-theme="brutalist"] .ar-accordion {
4670
+ border-color: var(--ar-brutalist-border-color);
4671
+ }
4672
+ html[data-theme="brutalist"] .ar-accordion details {
4673
+ border-top-color: var(--ar-brutalist-border-color);
2182
4674
  }
2183
4675
 
2184
- /* --- Tag (neo) --- */
2185
- html[data-theme="neo"] .ar-tag {
2186
- border: 2px solid var(--ar-neo-border-color);
2187
- border-radius: var(--ar-radius-pill);
2188
- box-shadow: 2px 2px 0px 0px var(--ar-neo-border-color);
2189
- font-weight: 600;
4676
+ html[data-theme="brutalist"] .ar-progress {
4677
+ border: var(--ar-border-width) solid var(--ar-brutalist-border-color);
2190
4678
  }
2191
4679
 
2192
- /* --- Chat bubble (neo) --- */
2193
- html[data-theme="neo"] .ar-chat-bubble {
2194
- border: var(--ar-neo-border-width) solid var(--ar-neo-border-color);
2195
- border-radius: 1rem;
2196
- box-shadow: var(--ar-neo-shadow-sm);
4680
+ html[data-theme="brutalist"] .ar-input,
4681
+ html[data-theme="brutalist"] .ar-select,
4682
+ html[data-theme="brutalist"] .ar-textarea {
4683
+ border-color: var(--ar-brutalist-border-color);
4684
+ font-family: var(--ar-font-mono);
4685
+ transition: border-color 0.1s linear;
2197
4686
  }
2198
- html[data-theme="neo"] .ar-chat-end .ar-chat-bubble {
2199
- background: var(--ar-neo-primary);
2200
- color: var(--ar-neo-primary-content);
2201
- border-color: var(--ar-neo-border-color);
4687
+ html[data-theme="brutalist"] .ar-input:focus,
4688
+ html[data-theme="brutalist"] .ar-select:focus,
4689
+ html[data-theme="brutalist"] .ar-textarea:focus {
4690
+ border-color: var(--ar-brutalist-border-color);
2202
4691
  }
2203
-
2204
- /* --- Dropdown (neo) --- */
2205
- html[data-theme="neo"] .ar-dropdown-content {
2206
- border: var(--ar-neo-border-width) solid var(--ar-neo-border-color);
2207
- border-radius: 0.75rem;
2208
- box-shadow: var(--ar-neo-shadow-lg);
4692
+ html[data-theme="brutalist"] .ar-toggle {
4693
+ border: var(--ar-border-width) solid var(--ar-brutalist-border-color);
4694
+ background: var(--ar-base-200);
4695
+ }
4696
+ html[data-theme="brutalist"] .ar-toggle::after {
4697
+ background: var(--ar-base-content);
4698
+ }
4699
+ html[data-theme="brutalist"] .ar-toggle:checked::after {
4700
+ background: var(--ar-base-100);
2209
4701
  }
2210
4702
 
2211
- /* --- Popover (neo) --- */
2212
- html[data-theme="neo"] .ar-popover-content {
2213
- border: var(--ar-neo-border-width) solid var(--ar-neo-border-color);
2214
- border-radius: 0.75rem;
2215
- box-shadow: var(--ar-neo-shadow-lg);
4703
+ html[data-theme="brutalist"] .ar-file-upload {
4704
+ border: var(--ar-border-width) dashed var(--ar-brutalist-border-color);
4705
+ }
4706
+ html[data-theme="brutalist"] .ar-file-upload:hover,
4707
+ html[data-theme="brutalist"] .ar-file-upload.ar-file-upload-dragover {
4708
+ border-style: solid;
4709
+ background: var(--ar-base-300);
4710
+ color: var(--ar-base-content);
2216
4711
  }
2217
4712
 
2218
- /* --- Tooltip (neo) --- */
2219
- html[data-theme="neo"] .ar-tooltip[data-tip]::after {
2220
- border: 2px solid var(--ar-neo-border-color);
2221
- border-radius: 0.5rem;
2222
- box-shadow: 2px 2px 0px 0px var(--ar-neo-border-color);
2223
- font-weight: 600;
4713
+ html[data-theme="brutalist"] .ar-page-item {
4714
+ border-color: var(--ar-brutalist-border-color);
4715
+ font-family: var(--ar-font-mono);
4716
+ font-weight: 700;
4717
+ text-transform: uppercase;
4718
+ letter-spacing: 0.05em;
4719
+ transition: all 0.1s linear;
2224
4720
  }
2225
4721
 
2226
- /* --- Forms (neo) --- */
2227
- html[data-theme="neo"] .ar-input,
2228
- html[data-theme="neo"] .ar-select,
2229
- html[data-theme="neo"] .ar-textarea {
2230
- border: var(--ar-neo-border-width) solid var(--ar-neo-border-color);
2231
- border-radius: 0.5rem;
2232
- box-shadow: var(--ar-neo-shadow-sm);
2233
- font-family: var(--ar-font-sans);
2234
- transition:
2235
- box-shadow 0.15s ease-out,
2236
- border-color 0.15s ease-out;
4722
+ html[data-theme="brutalist"] .ar-step::before {
4723
+ border: var(--ar-border-width) solid var(--ar-brutalist-border-color);
4724
+ background: var(--ar-base-100);
2237
4725
  }
2238
- html[data-theme="neo"] .ar-input:focus,
2239
- html[data-theme="neo"] .ar-select:focus,
2240
- html[data-theme="neo"] .ar-textarea:focus {
2241
- border-color: var(--ar-neo-primary);
2242
- box-shadow: var(--ar-neo-shadow-md);
2243
- outline: 0;
4726
+ html[data-theme="brutalist"] .ar-step-active::before {
4727
+ background: var(--ar-primary);
4728
+ color: var(--ar-primary-content);
2244
4729
  }
2245
4730
 
2246
- /* --- Toggle (neo) --- */
2247
- html[data-theme="neo"] .ar-toggle {
2248
- border: 2px solid var(--ar-neo-border-color);
2249
- border-radius: var(--ar-radius-pill);
4731
+ html[data-theme="brutalist"] .ar-navbar {
4732
+ border-bottom: var(--ar-border-width) solid var(--ar-brutalist-border-color);
4733
+ background: var(--ar-base-100);
2250
4734
  }
2251
4735
 
2252
- /* --- Pagination (neo) --- */
2253
- html[data-theme="neo"] .ar-page-item {
2254
- border: 2px solid var(--ar-neo-border-color);
2255
- border-radius: 0.5rem;
2256
- font-weight: 700;
2257
- box-shadow: 2px 2px 0px 0px var(--ar-neo-border-color);
2258
- transition:
2259
- box-shadow 0.15s ease-out,
2260
- transform 0.15s ease-out;
4736
+ html[data-theme="brutalist"] .ar-sidebar-panel > .ar-menu {
4737
+ border-right: var(--ar-border-width) solid var(--ar-brutalist-border-color);
4738
+ background: var(--ar-base-100);
2261
4739
  }
2262
- html[data-theme="neo"] .ar-page-item:hover {
2263
- box-shadow: 1px 1px 0px 0px var(--ar-neo-border-color);
2264
- transform: translate(1px, 1px);
4740
+ html[data-theme="brutalist"] .ar-sidebar-panel-end > .ar-menu {
4741
+ border-right: 0;
4742
+ border-left: var(--ar-border-width) solid var(--ar-brutalist-border-color);
2265
4743
  }
2266
- html[data-theme="neo"] .ar-page-active {
2267
- background: var(--ar-neo-primary);
2268
- color: var(--ar-neo-primary-content);
2269
- border-color: var(--ar-neo-border-color);
4744
+ html[data-theme="brutalist"] .ar-sidebar-nav {
4745
+ border-bottom: var(--ar-border-width) solid var(--ar-brutalist-border-color);
4746
+ background: var(--ar-base-100);
2270
4747
  }
2271
4748
 
2272
- /* --- Stepper (neo) --- */
2273
- html[data-theme="neo"] .ar-step::before {
2274
- border: 2px solid var(--ar-neo-border-color);
2275
- box-shadow: 2px 2px 0px 0px var(--ar-neo-border-color);
4749
+ html[data-theme="brutalist"] .ar-footer {
4750
+ border-top: var(--ar-border-width) solid var(--ar-brutalist-border-color);
4751
+ background: var(--ar-base-200);
2276
4752
  }
2277
4753
 
2278
- /* --- Navbar (neo) --- */
2279
- html[data-theme="neo"] .ar-navbar {
2280
- border-bottom: var(--ar-neo-border-width) solid var(--ar-neo-border-color);
2281
- background: var(--ar-neo-base-100);
4754
+ html[data-theme="brutalist"] .ar-hero {
4755
+ background: var(--ar-base-200);
4756
+ border-bottom: var(--ar-border-width) solid var(--ar-brutalist-border-color);
2282
4757
  }
2283
4758
 
2284
- /* --- Footer (neo) --- */
2285
- html[data-theme="neo"] .ar-footer {
2286
- border-top: var(--ar-neo-border-width) solid var(--ar-neo-border-color);
4759
+ html[data-theme="brutalist"] .ar-skeleton {
4760
+ border: var(--ar-border-width) solid var(--ar-brutalist-border-color);
2287
4761
  }
2288
4762
 
2289
- /* --- Hero (neo) --- */
2290
- html[data-theme="neo"] .ar-hero {
2291
- background: var(--ar-neo-base-200);
4763
+ html[data-theme="brutalist"] .ar-breadcrumb-item:not(:last-child)::after {
4764
+ color: var(--ar-gray-600);
2292
4765
  }
2293
4766
 
2294
- /* --- Scroll to top (neo) --- */
2295
- html[data-theme="neo"] .ar-scroll-top {
2296
- border: var(--ar-neo-border-width) solid var(--ar-neo-border-color);
2297
- border-radius: var(--ar-radius-pill);
2298
- box-shadow: var(--ar-neo-shadow-md);
4767
+ html[data-theme="brutalist"] .ar-chat-bubble {
4768
+ border: var(--ar-border-width) solid var(--ar-brutalist-border-color);
2299
4769
  }
2300
- html[data-theme="neo"] .ar-scroll-top:hover {
2301
- box-shadow: var(--ar-neo-shadow-sm);
2302
- transform: translate(2px, 2px);
4770
+
4771
+ html[data-theme="brutalist"] .ar-tooltip[data-tip]::after {
4772
+ border: var(--ar-border-width) solid var(--ar-brutalist-border-color);
2303
4773
  }
2304
4774
 
2305
- /* --- Drawer (neo) --- */
2306
- html[data-theme="neo"] .ar-drawer-side .ar-menu {
2307
- border-right: var(--ar-neo-border-width) solid var(--ar-neo-border-color);
4775
+ html[data-theme="brutalist"] .ar-prose pre,
4776
+ html[data-theme="brutalist"] .ar-prose code {
4777
+ border: var(--ar-border-width) solid var(--ar-brutalist-border-color);
4778
+ }
4779
+ html[data-theme="brutalist"] .ar-prose th,
4780
+ html[data-theme="brutalist"] .ar-prose td,
4781
+ html[data-theme="brutalist"] .ar-prose hr {
4782
+ border-color: var(--ar-brutalist-border-color);
4783
+ }
4784
+ html[data-theme="brutalist"] .ar-prose blockquote {
4785
+ border-left-color: var(--ar-brutalist-border-color);
2308
4786
  }
2309
4787
 
2310
- /* --- Skeleton (neo) --- */
2311
- html[data-theme="neo"] .ar-skeleton {
2312
- border: 2px solid var(--ar-neo-border-color);
4788
+ html[data-theme="brutalist"] .ar-heading-title {
4789
+ text-transform: uppercase;
4790
+ letter-spacing: 0;
2313
4791
  }
2314
4792
 
2315
- /* --- Breadcrumb (neo) --- */
2316
- html[data-theme="neo"] .ar-breadcrumb-item:not(:last-child)::after {
2317
- color: var(--ar-neo-gray-400);
4793
+ html[data-theme="brutalist"] .ar-divider::before,
4794
+ html[data-theme="brutalist"] .ar-divider::after {
4795
+ background: var(--ar-brutalist-border-color);
2318
4796
  }
2319
4797
 
2320
- /* --- File upload (neo) --- */
2321
- html[data-theme="neo"] .ar-file-upload {
2322
- border: 3px dashed var(--ar-neo-border-color);
2323
- border-radius: 0.75rem;
2324
- transition: all 0.2s ease;
4798
+ html[data-theme="brutalist"] .ar-timeline-item::after {
4799
+ background: var(--ar-brutalist-border-color);
2325
4800
  }
2326
- html[data-theme="neo"] .ar-file-upload:hover {
2327
- border-color: var(--ar-neo-primary);
2328
- background: rgba(0, 174, 239, 0.05);
2329
- transform: scale(1.02) rotate(-1deg);
4801
+
4802
+ html[data-theme="brutalist"] .ar-empty-title {
4803
+ text-transform: uppercase;
4804
+ letter-spacing: 0;
2330
4805
  }
2331
- html[data-theme="neo"] .ar-file-upload.ar-file-upload-dragover {
2332
- border-color: var(--ar-neo-primary);
2333
- background: rgba(0, 174, 239, 0.05);
2334
- transform: scale(1.02);
4806
+ html[data-theme="brutalist"] .ar-empty-icon {
4807
+ border: var(--ar-border-width) solid var(--ar-brutalist-border-color);
2335
4808
  }
2336
-
2337
- /* --- Prose (neo) --- */
2338
- html[data-theme="neo"] .ar-prose pre {
2339
- border: 2px solid var(--ar-neo-border-color);
2340
- border-radius: 0.75rem;
2341
- box-shadow: var(--ar-neo-shadow-sm);
4809
+ html[data-theme="brutalist"] .ar-segmented {
4810
+ border: var(--ar-border-width) solid var(--ar-brutalist-border-color);
2342
4811
  }
2343
- html[data-theme="neo"] .ar-prose code {
2344
- border: 1px solid var(--ar-neo-border-color);
4812
+ html[data-theme="brutalist"] .ar-segmented-item {
4813
+ font-family: var(--ar-font-mono);
4814
+ font-weight: 700;
4815
+ text-transform: uppercase;
4816
+ letter-spacing: 0.05em;
2345
4817
  }
2346
- html[data-theme="neo"] .ar-prose th {
2347
- border: 2px solid var(--ar-neo-border-color);
4818
+ html[data-theme="brutalist"] .ar-kbd {
4819
+ border-color: var(--ar-brutalist-border-color);
4820
+ font-weight: 700;
4821
+ text-transform: uppercase;
4822
+ letter-spacing: 0.05em;
2348
4823
  }
2349
- html[data-theme="neo"] .ar-prose td {
2350
- border: 2px solid var(--ar-neo-border-color);
4824
+ html[data-theme="brutalist"] .ar-dt {
4825
+ font-weight: 700;
4826
+ text-transform: uppercase;
4827
+ letter-spacing: 0.05em;
2351
4828
  }
2352
- html[data-theme="neo"] .ar-prose blockquote {
2353
- border-left: 4px solid var(--ar-neo-primary);
4829
+ @media (min-width: 480px) {
4830
+ html[data-theme="brutalist"] .ar-dt {
4831
+ border-bottom-color: var(--ar-brutalist-border-color);
4832
+ }
4833
+ }
4834
+ html[data-theme="brutalist"] .ar-dd {
4835
+ border-bottom-color: var(--ar-brutalist-border-color);
4836
+ }
4837
+ html[data-theme="brutalist"] .ar-dl > :nth-last-child(-n + 2) {
4838
+ border-bottom: 0;
2354
4839
  }
2355
4840
 
2356
4841
  /* ============================================================
2357
- 38. UTILITIES — spacing
4842
+ 38. UTILITIES - spacing
2358
4843
  ============================================================ */
2359
4844
  .ar-p-0 {
2360
4845
  padding: var(--ar-s-0);
@@ -2467,6 +4952,9 @@ html[data-theme="neo"] .ar-prose blockquote {
2467
4952
  .ar-mb-2 {
2468
4953
  margin-bottom: var(--ar-s-2);
2469
4954
  }
4955
+ .ar-mb-4 {
4956
+ margin-bottom: var(--ar-s-4);
4957
+ }
2470
4958
  .ar-mb-8 {
2471
4959
  margin-bottom: var(--ar-s-8);
2472
4960
  }
@@ -2631,6 +5119,9 @@ html[data-theme="neo"] .ar-prose blockquote {
2631
5119
  .ar-text-9xl {
2632
5120
  font-size: 8rem;
2633
5121
  }
5122
+ .ar-text-hero {
5123
+ font-size: clamp(3rem, 11vw, 6.5rem);
5124
+ }
2634
5125
  .ar-font-thin {
2635
5126
  font-weight: 100;
2636
5127
  }
@@ -2692,17 +5183,26 @@ html[data-theme="neo"] .ar-prose blockquote {
2692
5183
  .ar-w-8 {
2693
5184
  width: var(--ar-s-8);
2694
5185
  }
5186
+ .ar-w-16 {
5187
+ width: var(--ar-s-16);
5188
+ }
5189
+ .ar-w-24 {
5190
+ width: var(--ar-s-24);
5191
+ }
5192
+ .ar-w-32 {
5193
+ width: var(--ar-s-32);
5194
+ }
2695
5195
  .ar-w-40 {
2696
- width: var(--ar-s-40, 10rem);
5196
+ width: var(--ar-s-40);
2697
5197
  }
2698
5198
  .ar-w-48 {
2699
- width: var(--ar-s-48, 12rem);
5199
+ width: var(--ar-s-48);
2700
5200
  }
2701
5201
  .ar-w-60 {
2702
- width: 15rem;
5202
+ width: var(--ar-s-60);
2703
5203
  }
2704
5204
  .ar-w-80 {
2705
- width: 20rem;
5205
+ width: var(--ar-s-80);
2706
5206
  }
2707
5207
  .ar-w-full {
2708
5208
  width: 100%;
@@ -2723,7 +5223,7 @@ html[data-theme="neo"] .ar-prose blockquote {
2723
5223
  height: var(--ar-s-8);
2724
5224
  }
2725
5225
  .ar-h-48 {
2726
- height: 12rem;
5226
+ height: var(--ar-s-48);
2727
5227
  }
2728
5228
  .ar-h-full {
2729
5229
  height: 100%;
@@ -2813,11 +5313,19 @@ html[data-theme="neo"] .ar-prose blockquote {
2813
5313
  .ar-bg-gray-700 {
2814
5314
  background: var(--ar-gray-700);
2815
5315
  }
5316
+ /* Opt-in dot-grid paper background. The dots are a faint wash of the current
5317
+ theme's ink, so they adapt to every theme (light, dark, neo, pixel,
5318
+ brutalist). --ar-dot-grid-size tweaks the density. */
5319
+ .ar-bg-dot-grid {
5320
+ background-image: radial-gradient(circle, var(--ar-gray-400) 1px, transparent 1px);
5321
+ background-image: radial-gradient(circle, color-mix(in srgb, var(--ar-base-content) 18%, transparent) 1px, transparent 1px);
5322
+ background-size: var(--ar-dot-grid-size, 24px) var(--ar-dot-grid-size, 24px);
5323
+ }
2816
5324
  .ar-text-base-content {
2817
5325
  color: var(--ar-base-content);
2818
5326
  }
2819
5327
  .ar-text-primary {
2820
- color: var(--ar-primary);
5328
+ color: var(--ar-primary-text);
2821
5329
  }
2822
5330
  .ar-text-primary-content {
2823
5331
  color: var(--ar-primary-content);
@@ -3050,6 +5558,11 @@ html[data-theme="neo"] .ar-prose blockquote {
3050
5558
  /* ============================================================
3051
5559
  34. UTILITIES — responsive
3052
5560
  ============================================================ */
5561
+ @media (max-width: 479px) {
5562
+ .ar-hide-xs {
5563
+ display: none;
5564
+ }
5565
+ }
3053
5566
  @media (min-width: 768px) {
3054
5567
  .ar-md\:flex {
3055
5568
  display: flex;
@@ -3180,10 +5693,8 @@ html[data-theme="neo"] .ar-prose blockquote {
3180
5693
 
3181
5694
  /* ============================================================
3182
5695
  39. NEOBRUTALISM UTILITIES
3183
- Explicit classes for neobrutalism styling, usable with any theme.
3184
5696
  ============================================================ */
3185
5697
 
3186
- /* Hard shadows */
3187
5698
  .ar-neo-shadow-sm {
3188
5699
  box-shadow: var(--ar-neo-shadow-sm);
3189
5700
  }
@@ -3200,7 +5711,6 @@ html[data-theme="neo"] .ar-prose blockquote {
3200
5711
  box-shadow: var(--ar-neo-shadow-2xl);
3201
5712
  }
3202
5713
 
3203
- /* Thick borders */
3204
5714
  .ar-neo-border {
3205
5715
  border: var(--ar-neo-border-width) solid var(--ar-neo-border-color);
3206
5716
  }
@@ -3208,7 +5718,6 @@ html[data-theme="neo"] .ar-prose blockquote {
3208
5718
  border: 2px solid var(--ar-neo-border-color);
3209
5719
  }
3210
5720
 
3211
- /* Border radius */
3212
5721
  .ar-neo-rounded {
3213
5722
  border-radius: 0.5rem;
3214
5723
  }
@@ -3219,7 +5728,6 @@ html[data-theme="neo"] .ar-prose blockquote {
3219
5728
  border-radius: 1rem;
3220
5729
  }
3221
5730
 
3222
- /* Interactive press effect */
3223
5731
  .ar-neo-press {
3224
5732
  transition:
3225
5733
  box-shadow 0.15s ease-out,
@@ -3234,7 +5742,6 @@ html[data-theme="neo"] .ar-prose blockquote {
3234
5742
  transform: translate(4px, 4px);
3235
5743
  }
3236
5744
 
3237
- /* Neo color accents */
3238
5745
  .ar-neo-primary {
3239
5746
  background: var(--ar-neo-primary);
3240
5747
  color: var(--ar-neo-primary-content);
@@ -3252,7 +5759,6 @@ html[data-theme="neo"] .ar-prose blockquote {
3252
5759
  color: var(--ar-neo-error-content);
3253
5760
  }
3254
5761
 
3255
- /* Neo text colors */
3256
5762
  .ar-neo-text-primary {
3257
5763
  color: var(--ar-neo-primary);
3258
5764
  }
@@ -3269,7 +5775,6 @@ html[data-theme="neo"] .ar-prose blockquote {
3269
5775
  color: var(--ar-neo-base-content);
3270
5776
  }
3271
5777
 
3272
- /* Playful hover animations */
3273
5778
  .ar-neo-hover-tilt:hover {
3274
5779
  transform: rotate(-1deg);
3275
5780
  }
@@ -3277,3 +5782,149 @@ html[data-theme="neo"] .ar-prose blockquote {
3277
5782
  transform: translateY(-2px);
3278
5783
  box-shadow: var(--ar-neo-shadow-lg);
3279
5784
  }
5785
+
5786
+ /* ============================================================
5787
+ 40. PIXEL-ART UTILITIES
5788
+ ============================================================ */
5789
+
5790
+ .ar-pixel-shadow-sm {
5791
+ box-shadow: var(--ar-pixel-shadow-sm);
5792
+ }
5793
+ .ar-pixel-shadow-md {
5794
+ box-shadow: var(--ar-pixel-shadow-md);
5795
+ }
5796
+ .ar-pixel-shadow-lg {
5797
+ box-shadow: var(--ar-pixel-shadow-lg);
5798
+ }
5799
+ .ar-pixel-shadow-xl {
5800
+ box-shadow: var(--ar-pixel-shadow-xl);
5801
+ }
5802
+ .ar-pixel-shadow-2xl {
5803
+ box-shadow: var(--ar-pixel-shadow-2xl);
5804
+ }
5805
+
5806
+ .ar-pixel-border {
5807
+ border: var(--ar-pixel-border-width) solid var(--ar-pixel-border-color);
5808
+ }
5809
+ .ar-pixel-border-2 {
5810
+ border: 2px solid var(--ar-pixel-border-color);
5811
+ }
5812
+
5813
+ .ar-pixel-blocky {
5814
+ border-radius: 0;
5815
+ }
5816
+
5817
+ .ar-pixel-press {
5818
+ transition:
5819
+ box-shadow 0.1s step-end,
5820
+ transform 0.1s step-end;
5821
+ }
5822
+ .ar-pixel-press:hover {
5823
+ box-shadow: var(--ar-pixel-shadow-sm);
5824
+ transform: translate(2px, 2px);
5825
+ }
5826
+ .ar-pixel-press:active {
5827
+ box-shadow: none;
5828
+ transform: translate(4px, 4px);
5829
+ }
5830
+
5831
+ .ar-pixel-primary {
5832
+ background: var(--ar-pixel-primary);
5833
+ color: var(--ar-pixel-primary-content);
5834
+ }
5835
+ .ar-pixel-secondary {
5836
+ background: var(--ar-pixel-secondary);
5837
+ color: var(--ar-pixel-secondary-content);
5838
+ }
5839
+ .ar-pixel-accent {
5840
+ background: var(--ar-pixel-accent);
5841
+ color: var(--ar-pixel-accent-content);
5842
+ }
5843
+ .ar-pixel-danger {
5844
+ background: var(--ar-pixel-error);
5845
+ color: var(--ar-pixel-error-content);
5846
+ }
5847
+
5848
+ .ar-pixel-text-primary {
5849
+ color: var(--ar-pixel-primary);
5850
+ }
5851
+ .ar-pixel-text-secondary {
5852
+ color: var(--ar-pixel-secondary);
5853
+ }
5854
+ .ar-pixel-text-accent {
5855
+ color: var(--ar-pixel-accent);
5856
+ }
5857
+ .ar-pixel-text-danger {
5858
+ color: var(--ar-pixel-error);
5859
+ }
5860
+ .ar-pixel-text-dark {
5861
+ color: var(--ar-pixel-base-content);
5862
+ }
5863
+
5864
+ .ar-pixel-image {
5865
+ image-rendering: pixelated;
5866
+ image-rendering: crisp-edges;
5867
+ }
5868
+
5869
+ .ar-pixel-hover-lift:hover {
5870
+ transform: translateY(-2px);
5871
+ box-shadow: var(--ar-pixel-shadow-lg);
5872
+ }
5873
+ .ar-pixel-hover-shift:hover {
5874
+ transform: translate(-2px, -2px);
5875
+ box-shadow: var(--ar-pixel-shadow-lg);
5876
+ }
5877
+
5878
+ /* ============================================================
5879
+ 41. BRUTALIST UTILITIES
5880
+ ============================================================ */
5881
+
5882
+ .ar-brutalist-label {
5883
+ font-family: var(--ar-font-mono);
5884
+ font-size: 0.625rem;
5885
+ font-weight: 700;
5886
+ text-transform: uppercase;
5887
+ letter-spacing: 0.1em;
5888
+ color: var(--ar-gray-500);
5889
+ }
5890
+
5891
+ .ar-brutalist-frame {
5892
+ border: var(--ar-border-width) solid var(--ar-base-content);
5893
+ }
5894
+
5895
+ .ar-brutalist-rule {
5896
+ border-top: 3px solid var(--ar-base-content);
5897
+ }
5898
+
5899
+ .ar-brutalist-primary {
5900
+ background: var(--ar-primary);
5901
+ color: var(--ar-primary-content);
5902
+ }
5903
+ .ar-brutalist-secondary {
5904
+ background: var(--ar-secondary);
5905
+ color: var(--ar-secondary-content);
5906
+ }
5907
+ .ar-brutalist-accent {
5908
+ background: var(--ar-accent);
5909
+ color: var(--ar-accent-content);
5910
+ }
5911
+ .ar-brutalist-danger {
5912
+ background: var(--ar-error);
5913
+ color: var(--ar-error-content);
5914
+ }
5915
+
5916
+ .ar-brutalist-text-primary {
5917
+ color: var(--ar-primary-text);
5918
+ }
5919
+ .ar-brutalist-text-secondary {
5920
+ color: var(--ar-secondary);
5921
+ }
5922
+ .ar-brutalist-text-accent {
5923
+ color: var(--ar-accent);
5924
+ }
5925
+ .ar-brutalist-text-danger {
5926
+ color: var(--ar-error);
5927
+ }
5928
+ .ar-brutalist-text-dark {
5929
+ color: var(--ar-base-content);
5930
+ }