affora 0.1.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.
@@ -0,0 +1,1068 @@
1
+ /* Fonts held to SYSTEM DEFAULTS (no custom/Google fonts) to keep font out of the
2
+ visual-channel comparison; archetypes are distinguished by color/shape/space/
3
+ density/weight, not typeface. Editorial keeps a SYSTEM serif (ui-serif) — still a
4
+ default font — as the one meaningful serif/sans design axis. */
5
+ /* Flagship design-system token themes — generated from the token workshop
6
+ (5 archetypes; critique-fixed for WCAG AA + distinctiveness). Do not hand-edit;
7
+ regenerate. Each component consumes ONLY these variables (substrate stays fixed). */
8
+
9
+
10
+ /* ===== precision — Structure is carried by single 1px hairline borders and tabular-lining numerals rather tha */
11
+ [data-flagship="precision"] {
12
+ --bg: #ffffff;
13
+ --surface: #f8f9fa;
14
+ --surface-2: #f1f2f4;
15
+ --fg: #0d0e10;
16
+ --fg-muted: #585e68;
17
+ --fg-subtle: #767C86;
18
+ --border: #e7e9ec;
19
+ --border-strong: #d2d5da;
20
+ --accent: #5B4BD6;
21
+ --accent-fg: #ffffff;
22
+ --accent-weak: #EDEBFB;
23
+ --ring: rgba(91,75,214,0.40);
24
+ --success: #1a7f37;
25
+ --warning: #9a6700;
26
+ --danger: #cf222e;
27
+ --font: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
28
+ --font-display: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
29
+ --font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
30
+ --text-base: 13px;
31
+ --scale-ratio: 1.2;
32
+ --weight-normal: 400;
33
+ --weight-medium: 500;
34
+ --weight-bold: 600;
35
+ --weight-display: 600;
36
+ --leading: 1.5;
37
+ --tracking-tight: -0.011em;
38
+ --radius-sm: 4px;
39
+ --radius: 8px;
40
+ --radius-lg: 10px;
41
+ --radius-full: 9999px;
42
+ --shadow-sm: 0 1px 2px rgba(16,18,20,0.06);
43
+ --shadow: 0 4px 12px rgba(16,18,20,0.08);
44
+ --shadow-lg: 0 12px 32px rgba(16,18,20,0.12);
45
+ --pad-tight: 6px;
46
+ --pad: 12px;
47
+ --pad-loose: 20px;
48
+ --gap: 8px;
49
+ --dur-fast: 120ms;
50
+ --dur: 180ms;
51
+ --ease: cubic-bezier(0.2, 0, 0, 1);
52
+ --ease-emphasis: cubic-bezier(0.3, 0.7, 0, 1);
53
+ }
54
+ [data-flagship="precision"][data-mode="dark"] {
55
+ --bg: #08090a;
56
+ --surface: #101114;
57
+ --surface-2: #17181c;
58
+ --fg: #f6f7f8;
59
+ --fg-muted: #9ba0a8;
60
+ --fg-subtle: #7E848D;
61
+ --border: #212327;
62
+ --border-strong: #303339;
63
+ --accent: #5e6ad2;
64
+ --accent-weak: #191b2e;
65
+ --ring: rgba(94,106,210,0.55);
66
+ --success: #3fb950;
67
+ --warning: #d29922;
68
+ --danger: #f85149;
69
+ --shadow-sm: 0 1px 2px rgba(0,0,0,0.32);
70
+ --shadow: 0 4px 12px rgba(0,0,0,0.45);
71
+ --shadow-lg: 0 12px 32px rgba(0,0,0,0.55);
72
+ }
73
+
74
+ /* ===== warm — Soft-optical Fraunces serif headings sitting warmly above rounded Plus Jakarta Sans body, */
75
+ [data-flagship="warm"] {
76
+ --bg: #FDF8F4;
77
+ --surface: #FFFFFF;
78
+ --surface-2: #FBF2EB;
79
+ --fg: #2E2723;
80
+ --fg-muted: #6E635B;
81
+ --fg-subtle: #7E7268;
82
+ --border: #EEE3DA;
83
+ --border-strong: #DFD0C4;
84
+ --accent: #C24A28;
85
+ --accent-fg: #FFFFFF;
86
+ --accent-weak: #FBE7DE;
87
+ --ring: #EE9679;
88
+ --success: #1F8A59;
89
+ --warning: #955F0F;
90
+ --danger: #C93E30;
91
+ --font: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
92
+ --font-display: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
93
+ --font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
94
+ --text-base: 15px;
95
+ --scale-ratio: 1.2;
96
+ --weight-normal: 400;
97
+ --weight-medium: 500;
98
+ --weight-bold: 700;
99
+ --weight-display: 600;
100
+ --leading: 1.6;
101
+ --tracking-tight: -0.01em;
102
+ --radius-sm: 8px;
103
+ --radius: 12px;
104
+ --radius-lg: 20px;
105
+ --radius-full: 999px;
106
+ --shadow-sm: 0 1px 2px rgba(74, 48, 32, 0.06);
107
+ --shadow: 0 4px 16px rgba(74, 48, 32, 0.10);
108
+ --shadow-lg: 0 14px 36px rgba(74, 48, 32, 0.14);
109
+ --pad-tight: 10px;
110
+ --pad: 16px;
111
+ --pad-loose: 24px;
112
+ --gap: 16px;
113
+ --dur-fast: 140ms;
114
+ --dur: 220ms;
115
+ --ease: cubic-bezier(0.32, 0.72, 0, 1);
116
+ --ease-emphasis: cubic-bezier(0.34, 1.56, 0.64, 1);
117
+ }
118
+ [data-flagship="warm"][data-mode="dark"] {
119
+ --bg: #1C1613;
120
+ --surface: #26201A;
121
+ --surface-2: #322A22;
122
+ --fg: #F5EDE6;
123
+ --fg-muted: #C0B2A7;
124
+ --fg-subtle: #8E8177;
125
+ --border: #3A302A;
126
+ --border-strong: #4F4239;
127
+ --accent: #F0805E;
128
+ --accent-fg: #2A1710;
129
+ --accent-weak: #3B251B;
130
+ --ring: #F0805E;
131
+ --success: #4FBE8A;
132
+ --warning: #F0AE4E;
133
+ --danger: #EF6A5A;
134
+ --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.30);
135
+ --shadow: 0 4px 16px rgba(0, 0, 0, 0.40);
136
+ --shadow-lg: 0 14px 36px rgba(0, 0, 0, 0.50);
137
+ }
138
+
139
+ /* ===== editorial — Every division on the page is a 1px hairline rule (true-black in light, warm-white in dark */
140
+ [data-flagship="editorial"] {
141
+ --bg: #FFFFFF;
142
+ --surface: #FFFFFF;
143
+ --surface-2: #F4F2EF;
144
+ --fg: #0A0A0A;
145
+ --fg-muted: #55524C;
146
+ --fg-subtle: #6F6A63;
147
+ --border: #E4E1DB;
148
+ --border-strong: #1C1C1C;
149
+ --accent: #7A1F2B;
150
+ --accent-fg: #FFFFFF;
151
+ --accent-weak: #F6E9E7;
152
+ --ring: #7A1F2B;
153
+ --success: #2E5D3A;
154
+ --warning: #8A5A12;
155
+ --danger: #9B2226;
156
+ --font: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
157
+ --font-display: ui-serif, Georgia, "Times New Roman", Times, serif;
158
+ --font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
159
+ --text-base: 17px;
160
+ --scale-ratio: 1.333;
161
+ --weight-normal: 400;
162
+ --weight-medium: 500;
163
+ --weight-bold: 600;
164
+ --weight-display: 400;
165
+ --leading: 1.55;
166
+ --tracking-tight: -0.02em;
167
+ --radius-sm: 0px;
168
+ --radius: 1px;
169
+ --radius-lg: 2px;
170
+ --radius-full: 9999px;
171
+ --shadow-sm: 0 0 0 1px rgba(10,10,10,0.05);
172
+ --shadow: 0 1px 0 0 rgba(10,10,10,0.06), 0 0 0 1px rgba(10,10,10,0.04);
173
+ --shadow-lg: 0 24px 48px -24px rgba(10,10,10,0.20);
174
+ --pad-tight: 10px;
175
+ --pad: 20px;
176
+ --pad-loose: 40px;
177
+ --gap: 28px;
178
+ --dur-fast: 180ms;
179
+ --dur: 320ms;
180
+ --ease: cubic-bezier(0.22, 1, 0.36, 1);
181
+ --ease-emphasis: cubic-bezier(0.65, 0, 0.35, 1);
182
+ }
183
+ [data-flagship="editorial"][data-mode="dark"] {
184
+ --bg: #0A0A0A;
185
+ --surface: #141414;
186
+ --surface-2: #1C1B19;
187
+ --fg: #F5F3EF;
188
+ --fg-muted: #B0ABA2;
189
+ --fg-subtle: #85807A;
190
+ --border: #2A2A2A;
191
+ --border-strong: #EDEAE4;
192
+ --accent: #A62D3B;
193
+ --accent-weak: #2A1518;
194
+ --ring: #C25A67;
195
+ --success: #6FB07E;
196
+ --warning: #D9A441;
197
+ --danger: #E06B6E;
198
+ --shadow-sm: 0 0 0 1px rgba(255,255,255,0.06);
199
+ --shadow: 0 1px 0 0 rgba(0,0,0,0.6), 0 0 0 1px rgba(255,255,255,0.06);
200
+ --shadow-lg: 0 24px 48px -24px rgba(0,0,0,0.70);
201
+ }
202
+
203
+ /* ===== enterprise — A solid 2px accent-colored focus ring drawn tight to near-square 4px corners — every contr */
204
+ [data-flagship="enterprise"] {
205
+ --bg: #f4f4f4;
206
+ --surface: #ffffff;
207
+ --surface-2: #e8e8e8;
208
+ --fg: #161616;
209
+ --fg-muted: #525252;
210
+ --fg-subtle: #636363;
211
+ --border: #e0e0e0;
212
+ --border-strong: #8d8d8d;
213
+ --accent: #0f62fe;
214
+ --accent-fg: #ffffff;
215
+ --accent-weak: #d0e2ff;
216
+ --ring: #0f62fe;
217
+ --success: #147A33;
218
+ --warning: #8A6100;
219
+ --danger: #da1e28;
220
+ --font: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
221
+ --font-display: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
222
+ --font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
223
+ --text-base: 14px;
224
+ --scale-ratio: 1.2;
225
+ --weight-normal: 400;
226
+ --weight-medium: 500;
227
+ --weight-bold: 600;
228
+ --weight-display: 600;
229
+ --leading: 1.45;
230
+ --tracking-tight: -0.01em;
231
+ --radius-sm: 2px;
232
+ --radius: 4px;
233
+ --radius-lg: 8px;
234
+ --radius-full: 9999px;
235
+ --shadow-sm: 0 1px 2px rgba(22,22,22,0.10);
236
+ --shadow: 0 2px 6px rgba(22,22,22,0.16);
237
+ --shadow-lg: 0 8px 20px rgba(22,22,22,0.22);
238
+ --pad-tight: 8px;
239
+ --pad: 12px;
240
+ --pad-loose: 20px;
241
+ --gap: 16px;
242
+ --dur-fast: 100ms;
243
+ --dur: 150ms;
244
+ --ease: cubic-bezier(0.2, 0, 0.38, 0.9);
245
+ --ease-emphasis: cubic-bezier(0.4, 0.14, 0.3, 1);
246
+ }
247
+ [data-flagship="enterprise"][data-mode="dark"] {
248
+ --bg: #161616;
249
+ --surface: #262626;
250
+ --surface-2: #393939;
251
+ --fg: #f4f4f4;
252
+ --fg-muted: #c6c6c6;
253
+ --fg-subtle: #8d8d8d;
254
+ --border: #393939;
255
+ --border-strong: #6f6f6f;
256
+ --accent-weak: #002d9c;
257
+ --ring: #ffffff;
258
+ --success: #42be65;
259
+ --warning: #f1c21b;
260
+ --danger: #fa4d56;
261
+ --shadow-sm: 0 1px 2px rgba(0,0,0,0.30);
262
+ --shadow: 0 2px 6px rgba(0,0,0,0.44);
263
+ --shadow-lg: 0 8px 20px rgba(0,0,0,0.56);
264
+ }
265
+
266
+ /* ===== expressive — Every interactive surface floats on a hard, blur-free offset shadow — pure ink in light mo */
267
+ [data-flagship="expressive"] {
268
+ --bg: #FBF6EF;
269
+ --surface: #FFFFFF;
270
+ --surface-2: #F3ECE0;
271
+ --fg: #17110D;
272
+ --fg-muted: #5C544B;
273
+ --fg-subtle: #6F675E;
274
+ --border: #1A130E;
275
+ --border-strong: #000000;
276
+ --accent: #FF2E88;
277
+ --accent-fg: #17110D;
278
+ --accent-weak: #FFD6EA;
279
+ --ring: #6D4BFF;
280
+ --success: #0E7A45;
281
+ --warning: #A65600;
282
+ --danger: #C2202A;
283
+ --font: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
284
+ --font-display: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
285
+ --font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
286
+ --text-base: 16px;
287
+ --scale-ratio: 1.25;
288
+ --weight-normal: 400;
289
+ --weight-medium: 500;
290
+ --weight-bold: 700;
291
+ --weight-display: 800;
292
+ --leading: 1.5;
293
+ --tracking-tight: -0.03em;
294
+ --radius-sm: 4px;
295
+ --radius: 10px;
296
+ --radius-lg: 20px;
297
+ --radius-full: 999px;
298
+ --shadow-sm: 2px 2px 0 #17110D;
299
+ --shadow: 4px 4px 0 #17110D;
300
+ --shadow-lg: 8px 8px 0 #17110D;
301
+ --pad-tight: 8px;
302
+ --pad: 16px;
303
+ --pad-loose: 28px;
304
+ --gap: 16px;
305
+ --dur-fast: 120ms;
306
+ --dur: 240ms;
307
+ --ease: cubic-bezier(0.34, 1.56, 0.64, 1);
308
+ --ease-emphasis: cubic-bezier(0.68, -0.6, 0.32, 1.6);
309
+ }
310
+ [data-flagship="expressive"][data-mode="dark"] {
311
+ --bg: #14100C;
312
+ --surface: #1E1813;
313
+ --surface-2: #2A231C;
314
+ --fg: #FBF6EF;
315
+ --fg-muted: #C4B8A9;
316
+ --fg-subtle: #8E8375;
317
+ --border: #4A4038;
318
+ --border-strong: #FBF6EF;
319
+ --accent-weak: #3A1526;
320
+ --ring: #8B6DFF;
321
+ --success: #3ED686;
322
+ --warning: #FFB020;
323
+ --danger: #FF6166;
324
+ --shadow-sm: 2px 2px 0 #FF2E88;
325
+ --shadow: 4px 4px 0 #FF2E88;
326
+ --shadow-lg: 6px 6px 0 #FF2E88;
327
+ }
328
+ /* ============================================================
329
+ PREMIUM / ELEVATED themes (glass, aurora, dark-luxe, neumorph, bento, swiss).
330
+ Extended surface tokens: --surface-bg (page backdrop), --glass-bg/--glass-blur/
331
+ --glass-border (frosted panels), --glow, --gradient-accent, --elevation-inset.
332
+ Fonts held to system defaults; all critique-verified body text >= WCAG AA.
333
+ ============================================================ */
334
+ /* --- glass : A frosted 72%-opaque panel floats on a calm three-stop aurora backdrop, sealed by a brig */
335
+ [data-flagship="glass"] {
336
+ --bg: #eef1fb;
337
+ --surface: #ffffff;
338
+ --surface-2: #f5f7fe;
339
+ --fg: #191c2b;
340
+ --fg-muted: #4a5069;
341
+ --fg-subtle: #767c96;
342
+ --border: rgba(23,28,43,0.10);
343
+ --border-strong: rgba(23,28,43,0.20);
344
+ --accent: #5b6cff;
345
+ --accent-fg: #ffffff;
346
+ --accent-weak: #e6e9ff;
347
+ --ring: rgba(91,108,255,0.55);
348
+ --success: #1f9d6b;
349
+ --warning: #c77800;
350
+ --danger: #d64545;
351
+ --font: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
352
+ --font-display: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
353
+ --font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
354
+ --text-base: 16px;
355
+ --scale-ratio: 1.25;
356
+ --weight-normal: 400;
357
+ --weight-medium: 550;
358
+ --weight-bold: 680;
359
+ --weight-display: 720;
360
+ --leading: 1.55;
361
+ --tracking-tight: -0.02em;
362
+ --radius-sm: 10px;
363
+ --radius: 16px;
364
+ --radius-lg: 24px;
365
+ --radius-full: 999px;
366
+ --shadow-sm: 0 1px 2px rgba(20,24,50,0.06), 0 1px 1px rgba(20,24,50,0.04);
367
+ --shadow: 0 8px 24px rgba(20,24,50,0.12), 0 2px 6px rgba(20,24,50,0.08);
368
+ --shadow-lg: 0 24px 60px rgba(20,24,50,0.20), 0 8px 20px rgba(20,24,50,0.12);
369
+ --pad-tight: 10px;
370
+ --pad: 18px;
371
+ --pad-loose: 28px;
372
+ --gap: 14px;
373
+ --dur-fast: 130ms;
374
+ --dur: 220ms;
375
+ --ease: cubic-bezier(0.4, 0, 0.2, 1);
376
+ --ease-emphasis: cubic-bezier(0.2, 0.9, 0.25, 1);
377
+ --surface-bg: radial-gradient(100% 120% at 82% -12%, #d7e2ff 0%, rgba(215,226,255,0) 55%), radial-gradient(95% 115% at 0% 105%, #ffe0ec 0%, rgba(255,224,236,0) 52%), linear-gradient(158deg, #eef1fb 0%, #f3eefb 60%, #eaf1ff 100%);
378
+ --glass-bg: rgba(255,255,255,0.72);
379
+ --glass-blur: blur(22px) saturate(1.5);
380
+ --glass-border: rgba(255,255,255,0.85);
381
+ --glow: 0 0 0 4px rgba(91,108,255,0.18), 0 8px 30px rgba(91,108,255,0.28);
382
+ --gradient-accent: linear-gradient(135deg, #6b7bff 0%, #8a5bff 55%, #b25bff 100%);
383
+ --elevation-inset: inset 0 1px 0 rgba(255,255,255,0.9);
384
+ }
385
+ [data-flagship="glass"][data-mode="dark"] {
386
+ --bg: #0c0d16;
387
+ --surface: #171826;
388
+ --surface-2: #1e2032;
389
+ --fg: #f0f1f7;
390
+ --fg-muted: #b3b7c9;
391
+ --fg-subtle: #868ba3;
392
+ --border: rgba(255,255,255,0.12);
393
+ --border-strong: rgba(255,255,255,0.22);
394
+ --accent: #8b9bff;
395
+ --accent-fg: #0c0d16;
396
+ --accent-weak: rgba(139,155,255,0.16);
397
+ --ring: rgba(139,155,255,0.60);
398
+ --success: #43c98d;
399
+ --warning: #e0a23b;
400
+ --danger: #ff6b6b;
401
+ --shadow-sm: 0 1px 2px rgba(0,0,0,0.50);
402
+ --shadow: 0 10px 30px rgba(0,0,0,0.55), 0 2px 8px rgba(0,0,0,0.40);
403
+ --shadow-lg: 0 30px 70px rgba(0,0,0,0.65), 0 10px 24px rgba(0,0,0,0.50);
404
+ --surface-bg: radial-gradient(100% 120% at 82% -12%, #24203f 0%, rgba(36,32,63,0) 55%), radial-gradient(95% 115% at 0% 105%, #10233f 0%, rgba(16,35,63,0) 50%), linear-gradient(158deg, #0b0c15 0%, #12101f 60%, #0d1420 100%);
405
+ --glass-bg: rgba(255,255,255,0.07);
406
+ --glass-blur: blur(24px) saturate(1.4);
407
+ --glass-border: rgba(255,255,255,0.14);
408
+ --glow: 0 0 0 4px rgba(139,155,255,0.22), 0 10px 40px rgba(139,155,255,0.35);
409
+ --gradient-accent: linear-gradient(135deg, #7d8bff 0%, #9a6bff 55%, #c06bff 100%);
410
+ --elevation-inset: inset 0 1px 0 rgba(255,255,255,0.16);
411
+ }
412
+
413
+ /* --- aurora : A living three-hue gradient-mesh backdrop (indigo, cyan, violet blobs) sits behind mostl */
414
+ [data-flagship="aurora"] {
415
+ --bg: #E9ECF8;
416
+ --surface: #FBFCFE;
417
+ --surface-2: #F2F4FC;
418
+ --fg: #0F1729;
419
+ --fg-muted: #4A5578;
420
+ --fg-subtle: #78829D;
421
+ --border: rgba(15,23,41,0.10);
422
+ --border-strong: rgba(15,23,41,0.18);
423
+ --accent: #6D5EF6;
424
+ --accent-fg: #FFFFFF;
425
+ --accent-weak: #ECEBFE;
426
+ --ring: rgba(109,94,246,0.45);
427
+ --success: #0E9C86;
428
+ --warning: #B8760C;
429
+ --danger: #D93A40;
430
+ --font: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
431
+ --font-display: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
432
+ --font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
433
+ --text-base: 16px;
434
+ --scale-ratio: 1.25;
435
+ --weight-normal: 400;
436
+ --weight-medium: 500;
437
+ --weight-bold: 680;
438
+ --weight-display: 620;
439
+ --leading: 1.55;
440
+ --tracking-tight: -0.02em;
441
+ --radius-sm: 8px;
442
+ --radius: 14px;
443
+ --radius-lg: 24px;
444
+ --radius-full: 999px;
445
+ --shadow-sm: 0 1px 2px rgba(23,27,70,0.06), 0 1px 1px rgba(23,27,70,0.04);
446
+ --shadow: 0 8px 24px -6px rgba(30,27,90,0.14), 0 2px 6px -2px rgba(30,27,90,0.08);
447
+ --shadow-lg: 0 32px 64px -16px rgba(30,27,90,0.26), 0 8px 24px -8px rgba(30,27,90,0.16);
448
+ --pad-tight: 10px;
449
+ --pad: 16px;
450
+ --pad-loose: 24px;
451
+ --gap: 12px;
452
+ --dur-fast: 140;
453
+ --dur: 250;
454
+ --ease: cubic-bezier(0.22, 1, 0.36, 1);
455
+ --ease-emphasis: cubic-bezier(0.16, 1, 0.3, 1);
456
+ --surface-bg: radial-gradient(120% 120% at 12% 8%, #DCE4FF 0%, rgba(220,228,255,0) 42%), radial-gradient(100% 100% at 88% 12%, #CFF6F3 0%, rgba(207,246,243,0) 40%), radial-gradient(120% 120% at 70% 96%, #E7DBFF 0%, rgba(231,219,255,0) 46%), linear-gradient(180deg, #F4F6FE 0%, #EDF0FB 100%);
457
+ --glass-bg: rgba(255,255,255,0.72);
458
+ --glass-blur: blur(20px) saturate(1.6);
459
+ --glass-border: rgba(255,255,255,0.85);
460
+ --glow: 0 0 0 1px rgba(109,94,246,0.35), 0 0 28px rgba(109,94,246,0.35);
461
+ --gradient-accent: linear-gradient(120deg, #6D5EF6 0%, #4F8DF9 50%, #22D3EE 100%);
462
+ --elevation-inset: none;
463
+ }
464
+ [data-flagship="aurora"][data-mode="dark"] {
465
+ --bg: #080B18;
466
+ --surface: #121628;
467
+ --surface-2: #1A1F35;
468
+ --fg: #EAF0FF;
469
+ --fg-muted: #A6B0D0;
470
+ --fg-subtle: #6E789C;
471
+ --border: rgba(255,255,255,0.10);
472
+ --border-strong: rgba(255,255,255,0.18);
473
+ --accent-weak: rgba(124,116,255,0.16);
474
+ --ring: rgba(139,131,255,0.55);
475
+ --success: #3DD68C;
476
+ --warning: #F5C147;
477
+ --danger: #FF6369;
478
+ --shadow-sm: 0 1px 2px rgba(0,0,0,0.40);
479
+ --shadow: 0 8px 28px -6px rgba(0,0,0,0.55), 0 2px 8px -2px rgba(0,0,0,0.40);
480
+ --shadow-lg: 0 36px 72px -16px rgba(0,0,0,0.70), 0 10px 30px -10px rgba(0,0,0,0.50);
481
+ --surface-bg: radial-gradient(120% 120% at 10% 6%, #1E2A66 0%, rgba(30,42,102,0) 44%), radial-gradient(100% 100% at 90% 10%, #0E4D57 0%, rgba(14,77,87,0) 42%), radial-gradient(120% 120% at 72% 98%, #2B1E68 0%, rgba(43,30,104,0) 46%), linear-gradient(180deg, #0A0E1F 0%, #070A16 100%);
482
+ --glass-bg: rgba(22,27,48,0.62);
483
+ --glass-blur: blur(22px) saturate(1.5);
484
+ --glass-border: rgba(255,255,255,0.12);
485
+ --glow: 0 0 0 1px rgba(139,131,255,0.40), 0 0 32px rgba(109,94,246,0.50);
486
+ --gradient-accent: linear-gradient(120deg, #7C74FF 0%, #5B8DF9 50%, #34D8EE 100%);
487
+ }
488
+
489
+ /* --- darkluxe : A single electric-cyan accent that stays inert as a hairline until focus or hover, when */
490
+ [data-flagship="darkluxe"] {
491
+ --bg: #EDEFF3;
492
+ --surface: #FFFFFF;
493
+ --surface-2: #F6F7FA;
494
+ --fg: #14161C;
495
+ --fg-muted: #565C6B;
496
+ --fg-subtle: #8A909E;
497
+ --border: #E3E6EC;
498
+ --border-strong: #CCD1DB;
499
+ --accent: #0AB3A9;
500
+ --accent-fg: #032B27;
501
+ --accent-weak: rgba(10,179,169,0.12);
502
+ --ring: rgba(10,179,169,0.45);
503
+ --success: #0E9F6E;
504
+ --warning: #C77700;
505
+ --danger: #D64545;
506
+ --font: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
507
+ --font-display: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
508
+ --font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
509
+ --text-base: 15px;
510
+ --scale-ratio: 1.25;
511
+ --weight-normal: 400;
512
+ --weight-medium: 500;
513
+ --weight-bold: 600;
514
+ --weight-display: 640;
515
+ --leading: 1.55;
516
+ --tracking-tight: -0.02em;
517
+ --radius-sm: 6px;
518
+ --radius: 10px;
519
+ --radius-lg: 16px;
520
+ --radius-full: 999px;
521
+ --shadow-sm: 0 1px 2px rgba(16,20,30,0.06);
522
+ --shadow: 0 6px 20px rgba(16,20,30,0.10);
523
+ --shadow-lg: 0 24px 60px rgba(16,20,30,0.16);
524
+ --pad-tight: 8px;
525
+ --pad: 14px;
526
+ --pad-loose: 22px;
527
+ --gap: 12px;
528
+ --dur-fast: 120ms;
529
+ --dur: 180ms;
530
+ --ease: cubic-bezier(0.2,0,0,1);
531
+ --ease-emphasis: cubic-bezier(0.22,1,0.36,1);
532
+ --surface-bg: radial-gradient(120% 90% at 15% 0%, #FFFFFF 0%, #EEF1F5 55%, #E7EBF1 100%);
533
+ --glass-bg: rgba(255,255,255,0.72);
534
+ --glass-blur: blur(18px) saturate(1.4);
535
+ --glass-border: rgba(255,255,255,0.9);
536
+ --glow: 0 0 20px rgba(10,179,169,0.35);
537
+ --gradient-accent: linear-gradient(135deg, #14C9BE 0%, #0E8FD0 100%);
538
+ --elevation-inset: inset 0 1px 0 rgba(255,255,255,0.65);
539
+ }
540
+ [data-flagship="darkluxe"][data-mode="dark"] {
541
+ --bg: #08090C;
542
+ --surface: #0E1014;
543
+ --surface-2: #16181F;
544
+ --fg: #ECEDF1;
545
+ --fg-muted: #A2A7B4;
546
+ --fg-subtle: #6B7180;
547
+ --border: #212530;
548
+ --border-strong: #343A48;
549
+ --accent: #3DE4E0;
550
+ --accent-fg: #04120F;
551
+ --accent-weak: rgba(61,228,224,0.12);
552
+ --ring: rgba(61,228,224,0.55);
553
+ --success: #4ADE80;
554
+ --warning: #FBBF24;
555
+ --danger: #FB6E6E;
556
+ --shadow-sm: 0 1px 2px rgba(0,0,0,0.40);
557
+ --shadow: 0 4px 16px rgba(0,0,0,0.50);
558
+ --shadow-lg: 0 24px 60px rgba(0,0,0,0.62);
559
+ --surface-bg: radial-gradient(130% 100% at 12% -5%, #12151C 0%, #0B0D12 55%, #08090C 100%);
560
+ --glass-bg: rgba(20,23,30,0.72);
561
+ --glass-blur: blur(20px) saturate(1.3);
562
+ --glass-border: rgba(255,255,255,0.08);
563
+ --glow: 0 0 24px rgba(61,228,224,0.45);
564
+ --gradient-accent: linear-gradient(135deg, #3DE4E0 0%, #2AA8F0 100%);
565
+ --elevation-inset: inset 0 1px 0 rgba(255,255,255,0.05);
566
+ }
567
+
568
+ /* --- neumorph : Every control is the same porcelain color as the page and is defined purely by a dual-sh */
569
+ [data-flagship="neumorph"] {
570
+ --bg: #e4e8ef;
571
+ --surface: #e4e8ef;
572
+ --surface-2: #eaeef4;
573
+ --fg: #2b3140;
574
+ --fg-muted: #5a6478;
575
+ --fg-subtle: #8b95a8;
576
+ --border: #c9d0dc;
577
+ --border-strong: #a9b4c6;
578
+ --accent: #4f5bd5;
579
+ --accent-fg: #ffffff;
580
+ --accent-weak: #dfe2f7;
581
+ --ring: #4f5bd5;
582
+ --success: #1f8f5f;
583
+ --warning: #a9741a;
584
+ --danger: #c23a52;
585
+ --font: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
586
+ --font-display: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
587
+ --font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
588
+ --text-base: 16px;
589
+ --scale-ratio: 1.25;
590
+ --weight-normal: 400;
591
+ --weight-medium: 500;
592
+ --weight-bold: 700;
593
+ --weight-display: 600;
594
+ --leading: 1.6;
595
+ --tracking-tight: -0.02em;
596
+ --radius-sm: 10px;
597
+ --radius: 18px;
598
+ --radius-lg: 28px;
599
+ --radius-full: 999px;
600
+ --shadow-sm: 3px 3px 6px #c4ccd8, -3px -3px 6px #ffffff;
601
+ --shadow: 6px 6px 14px #bcc4d4, -6px -6px 14px #ffffff;
602
+ --shadow-lg: 14px 14px 30px #b3bccb, -12px -12px 26px #ffffff;
603
+ --pad-tight: 10px;
604
+ --pad: 18px;
605
+ --pad-loose: 28px;
606
+ --gap: 16px;
607
+ --dur-fast: 140ms;
608
+ --dur: 240ms;
609
+ --ease: cubic-bezier(0.4, 0, 0.2, 1);
610
+ --ease-emphasis: cubic-bezier(0.34, 1.4, 0.64, 1);
611
+ --surface-bg: radial-gradient(circle at 30% 18%, #eef1f6 0%, #e4e8ef 58%, #dbe1ea 100%);
612
+ --glass-bg: #e4e8ef;
613
+ --glass-blur: none;
614
+ --glass-border: rgba(255, 255, 255, 0.9);
615
+ --glow: 0 0 24px rgba(79, 91, 213, 0.42);
616
+ --gradient-accent: linear-gradient(135deg, #5b67ef 0%, #4f5bd5 100%);
617
+ --elevation-inset: inset 3px 3px 6px #bcc4d4, inset -3px -3px 6px #ffffff;
618
+ }
619
+ [data-flagship="neumorph"][data-mode="dark"] {
620
+ --bg: #23272e;
621
+ --surface: #23272e;
622
+ --surface-2: #272c34;
623
+ --fg: #e6e9f0;
624
+ --fg-muted: #9aa4b8;
625
+ --fg-subtle: #6c7686;
626
+ --border: #30353f;
627
+ --border-strong: #40464f;
628
+ --accent: #6d79ef;
629
+ --accent-fg: #161922;
630
+ --accent-weak: #2b2f4a;
631
+ --ring: #8b95f7;
632
+ --success: #46c98d;
633
+ --warning: #e0a83a;
634
+ --danger: #ef6079;
635
+ --shadow-sm: 3px 3px 7px #191c22, -3px -3px 7px #2d323b;
636
+ --shadow: 6px 6px 16px #171a1f, -6px -6px 16px #2f343d;
637
+ --shadow-lg: 14px 14px 32px #141619, -12px -12px 26px #313742;
638
+ --surface-bg: radial-gradient(circle at 30% 18%, #272c34 0%, #23272e 58%, #1d2026 100%);
639
+ --glass-bg: #23272e;
640
+ --glass-border: rgba(255, 255, 255, 0.06);
641
+ --glow: 0 0 28px rgba(123, 134, 245, 0.5);
642
+ --gradient-accent: linear-gradient(135deg, #7b86f5 0%, #6d79ef 100%);
643
+ --elevation-inset: inset 3px 3px 7px #171a1f, inset -3px -3px 7px #2f343d;
644
+ }
645
+
646
+ /* --- bento : Crisp white (dark: graphite) tiles float on a softly radial-tinted page backdrop with la */
647
+ [data-flagship="bento"] {
648
+ --bg: #eef1f6;
649
+ --surface: #ffffff;
650
+ --surface-2: #f6f8fb;
651
+ --fg: #0f1216;
652
+ --fg-muted: #565f6b;
653
+ --fg-subtle: #8b94a1;
654
+ --border: #e6e9ee;
655
+ --border-strong: #d3d8e0;
656
+ --accent: #2563eb;
657
+ --accent-fg: #ffffff;
658
+ --accent-weak: #e8eeff;
659
+ --ring: rgba(37,99,235,0.35);
660
+ --success: #0f7a52;
661
+ --warning: #b45309;
662
+ --danger: #dc2626;
663
+ --font: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
664
+ --font-display: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
665
+ --font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
666
+ --text-base: 15px;
667
+ --scale-ratio: 1.25;
668
+ --weight-normal: 400;
669
+ --weight-medium: 500;
670
+ --weight-bold: 600;
671
+ --weight-display: 700;
672
+ --leading: 1.55;
673
+ --tracking-tight: -0.02em;
674
+ --radius-sm: 10px;
675
+ --radius: 16px;
676
+ --radius-lg: 24px;
677
+ --radius-full: 9999px;
678
+ --shadow-sm: 0 1px 2px rgba(16,24,40,0.04), 0 1px 3px rgba(16,24,40,0.06);
679
+ --shadow: 0 4px 12px rgba(16,24,40,0.06), 0 12px 28px rgba(16,24,40,0.08);
680
+ --shadow-lg: 0 8px 24px rgba(16,24,40,0.08), 0 24px 56px rgba(16,24,40,0.12);
681
+ --pad-tight: 12px;
682
+ --pad: 20px;
683
+ --pad-loose: 32px;
684
+ --gap: 16px;
685
+ --dur-fast: 140ms;
686
+ --dur: 240ms;
687
+ --ease: cubic-bezier(0.22, 1, 0.36, 1);
688
+ --ease-emphasis: cubic-bezier(0.34, 1.56, 0.64, 1);
689
+ --surface-bg: radial-gradient(120% 120% at 50% 0%, #ffffff 0%, #eef1f6 55%, #e7ebf2 100%);
690
+ --glass-bg: rgba(255,255,255,0.72);
691
+ --glass-blur: blur(20px) saturate(1.3);
692
+ --glass-border: rgba(255,255,255,0.85);
693
+ --glow: 0 0 0 4px rgba(37,99,235,0.12), 0 8px 24px rgba(37,99,235,0.18);
694
+ --gradient-accent: linear-gradient(135deg, #2f6bff 0%, #2563eb 55%, #1e4fd0 100%);
695
+ --elevation-inset: inset 0 1px 0 rgba(255,255,255,0.6), inset 0 2px 4px rgba(16,24,40,0.04);
696
+ }
697
+ [data-flagship="bento"][data-mode="dark"] {
698
+ --bg: #0b0d10;
699
+ --surface: #16191e;
700
+ --surface-2: #1e2229;
701
+ --fg: #f4f6f8;
702
+ --fg-muted: #a2abb8;
703
+ --fg-subtle: #6b7480;
704
+ --border: #262b32;
705
+ --border-strong: #363c45;
706
+ --accent: #3b6bf0;
707
+ --accent-weak: #1a2340;
708
+ --ring: rgba(59,107,240,0.5);
709
+ --success: #34d399;
710
+ --warning: #fbbf24;
711
+ --danger: #f87171;
712
+ --shadow-sm: 0 1px 2px rgba(0,0,0,0.4);
713
+ --shadow: 0 4px 16px rgba(0,0,0,0.5), 0 2px 6px rgba(0,0,0,0.4);
714
+ --shadow-lg: 0 12px 40px rgba(0,0,0,0.6), 0 8px 20px rgba(0,0,0,0.45);
715
+ --surface-bg: radial-gradient(120% 120% at 50% 0%, #14181f 0%, #0b0d10 55%, #070809 100%);
716
+ --glass-bg: rgba(24,28,34,0.66);
717
+ --glass-blur: blur(24px) saturate(1.4);
718
+ --glass-border: rgba(255,255,255,0.08);
719
+ --glow: 0 0 0 4px rgba(59,107,240,0.22), 0 8px 28px rgba(59,107,240,0.32);
720
+ --gradient-accent: linear-gradient(135deg, #3a63ea 0%, #3b6bf0 50%, #2f56d8 100%);
721
+ --elevation-inset: inset 0 1px 0 rgba(255,255,255,0.06), inset 0 0 0 1px rgba(255,255,255,0.02);
722
+ }
723
+
724
+ /* --- swiss : A faint hairline column grid is printed into the page backdrop and shows through an ~85% */
725
+ [data-flagship="swiss"] {
726
+ --bg: #FFFFFF;
727
+ --surface: #FFFFFF;
728
+ --surface-2: #F5F4F1;
729
+ --fg: #0A0A0A;
730
+ --fg-muted: #4A4A48;
731
+ --fg-subtle: #7A7A76;
732
+ --border: #E2E1DD;
733
+ --border-strong: #0A0A0A;
734
+ --accent: #E4002B;
735
+ --accent-fg: #FFFFFF;
736
+ --accent-weak: #FCE6EA;
737
+ --ring: #E4002B;
738
+ --success: #0F7B3B;
739
+ --warning: #B45309;
740
+ --danger: #C20016;
741
+ --font: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
742
+ --font-display: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
743
+ --font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
744
+ --text-base: 16px;
745
+ --scale-ratio: 1.2;
746
+ --weight-normal: 400;
747
+ --weight-medium: 500;
748
+ --weight-bold: 700;
749
+ --weight-display: 700;
750
+ --leading: 1.45;
751
+ --tracking-tight: -0.02em;
752
+ --radius-sm: 0px;
753
+ --radius: 0px;
754
+ --radius-lg: 2px;
755
+ --radius-full: 9999px;
756
+ --shadow-sm: 0 0 0 1px rgba(10,10,10,0.08);
757
+ --shadow: 0 1px 0 0 rgba(10,10,10,0.12);
758
+ --shadow-lg: 8px 8px 0 0 rgba(10,10,10,1);
759
+ --pad-tight: 8px;
760
+ --pad: 16px;
761
+ --pad-loose: 32px;
762
+ --gap: 24px;
763
+ --dur-fast: 120ms;
764
+ --dur: 200ms;
765
+ --ease: cubic-bezier(0.2, 0, 0, 1);
766
+ --ease-emphasis: cubic-bezier(0.7, 0, 0.2, 1);
767
+ --surface-bg: repeating-linear-gradient(90deg, #EDECE8 0 1px, transparent 1px 64px), linear-gradient(180deg, #F6F5F2 0%, #EFEEEA 100%);
768
+ --glass-bg: color-mix(in srgb, #FFFFFF 88%, transparent);
769
+ --glass-blur: blur(8px) saturate(1.05);
770
+ --glass-border: rgba(255,255,255,0.8);
771
+ --glow: 0 0 0 3px rgba(228,0,43,0.30), 0 0 20px rgba(228,0,43,0.18);
772
+ --gradient-accent: linear-gradient(180deg, #E8102E 0%, #E4002B 50%, #C7001F 100%);
773
+ --elevation-inset: inset 0 1px 0 0 rgba(10,10,10,0.10);
774
+ }
775
+ [data-flagship="swiss"][data-mode="dark"] {
776
+ --bg: #0A0A0A;
777
+ --surface: #111110;
778
+ --surface-2: #171715;
779
+ --fg: #F5F4F1;
780
+ --fg-muted: #A6A5A0;
781
+ --fg-subtle: #6E6D68;
782
+ --border: #262624;
783
+ --border-strong: #F5F4F1;
784
+ --accent: #FF333F;
785
+ --accent-fg: #0A0A0A;
786
+ --accent-weak: #2A0D12;
787
+ --ring: #FF333F;
788
+ --success: #2FB463;
789
+ --warning: #E0A63A;
790
+ --danger: #FF4D4D;
791
+ --shadow-sm: 0 0 0 1px rgba(255,255,255,0.10);
792
+ --shadow: 0 1px 0 0 rgba(255,255,255,0.14);
793
+ --shadow-lg: 8px 8px 0 0 rgba(255,51,63,0.9);
794
+ --surface-bg: repeating-linear-gradient(90deg, #1A1A18 0 1px, transparent 1px 64px), radial-gradient(120% 120% at 50% 0%, #141412 0%, #0A0A0A 100%);
795
+ --glass-bg: color-mix(in srgb, #131311 82%, transparent);
796
+ --glass-blur: blur(10px) saturate(1.1);
797
+ --glass-border: rgba(255,255,255,0.08);
798
+ --glow: 0 0 0 3px rgba(255,51,63,0.35), 0 0 24px rgba(255,51,63,0.22);
799
+ --gradient-accent: linear-gradient(180deg, #FF4351 0%, #FF333F 55%, #E0202D 100%);
800
+ --elevation-inset: inset 0 1px 0 0 rgba(255,255,255,0.06);
801
+ }
802
+
803
+ /* ============================================================
804
+ TEMPLATE-PLATFORM styles (learned from Wix / Canva / Figma template
805
+ vocabularies, 2026): collage (Canva scrapbook), retro (70s revival),
806
+ pastelpop (playful presentation), boutique (Wix luxury/hotel),
807
+ organic (Wix wellness/restaurant). System fonts; body text AA.
808
+ ============================================================ */
809
+
810
+ /* --- collage : Canva scrapbook — paper cream, sticker chips, marker-pink accent, hard paper shadows */
811
+ [data-flagship="collage"] {
812
+ --bg: #FAF3E9; --surface: #FFFFFF; --surface-2: #FFF8EE;
813
+ --fg: #33302B; --fg-muted: #6B6459; --fg-subtle: #8C8577;
814
+ --border: #E8DCC9; --border-strong: #33302B;
815
+ --accent: #D6336C; --accent-fg: #FFFFFF; --accent-weak: #FBE3EC;
816
+ --ring: rgba(214,51,108,0.45);
817
+ --success: #2F7D4F; --warning: #9A6700; --danger: #C13B2E;
818
+ --font: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
819
+ --font-display: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
820
+ --font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
821
+ --text-base: 15px; --scale-ratio: 1.25;
822
+ --weight-normal: 400; --weight-medium: 600; --weight-bold: 700; --weight-display: 800;
823
+ --leading: 1.55; --tracking-tight: -0.005em;
824
+ --radius-sm: 10px; --radius: 14px; --radius-lg: 18px; --radius-full: 999px;
825
+ --shadow-sm: 1px 2px 0 rgba(51,48,43,0.14);
826
+ --shadow: 2px 3px 0 rgba(51,48,43,0.16);
827
+ --shadow-lg: 4px 6px 0 rgba(51,48,43,0.18);
828
+ --pad-tight: 10px; --pad: 16px; --pad-loose: 22px; --gap: 12px;
829
+ --dur-fast: 140ms; --dur: 220ms;
830
+ --ease: cubic-bezier(0.3, 0.9, 0.4, 1); --ease-emphasis: cubic-bezier(0.34, 1.56, 0.64, 1);
831
+ --surface-bg: linear-gradient(180deg, #FAF3E9 0%, #F7EDDF 100%);
832
+ --glass-bg: #FFFFFF; --glass-blur: none; --glass-border: #E8DCC9;
833
+ --glow: none; --gradient-accent: linear-gradient(120deg, #D6336C 0%, #E8590C 100%);
834
+ --elevation-inset: none;
835
+ }
836
+ [data-flagship="collage"][data-mode="dark"] {
837
+ --bg: #221E19; --surface: #2C2721; --surface-2: #35302A;
838
+ --fg: #F4EDE2; --fg-muted: #BDB3A4; --fg-subtle: #918778;
839
+ --border: #453E35; --border-strong: #F4EDE2;
840
+ --accent: #F06595; --accent-fg: #2A1219; --accent-weak: #3D2530;
841
+ --ring: rgba(240,101,149,0.55);
842
+ --success: #69B98A; --warning: #D9A33C; --danger: #E8705F;
843
+ --shadow-sm: 1px 2px 0 rgba(0,0,0,0.45); --shadow: 2px 3px 0 rgba(0,0,0,0.5);
844
+ --shadow-lg: 4px 6px 0 rgba(0,0,0,0.55);
845
+ --surface-bg: linear-gradient(180deg, #221E19 0%, #1C1813 100%);
846
+ --glass-bg: #2C2721; --glass-border: #453E35;
847
+ --gradient-accent: linear-gradient(120deg, #F06595 0%, #F0875E 100%);
848
+ }
849
+
850
+ /* --- retro : 70s revival — warm cream, burnt orange, chunky offset shadows, mustard/brown */
851
+ [data-flagship="retro"] {
852
+ --bg: #F6EBDB; --surface: #FFF6E9; --surface-2: #F3E3CB;
853
+ --fg: #3B2F23; --fg-muted: #6E5C49; --fg-subtle: #8C7A64;
854
+ --border: #E0CDB2; --border-strong: #3B2F23;
855
+ --accent: #B54A16; --accent-fg: #FFF6E9; --accent-weak: #F6DCC8;
856
+ --ring: rgba(181,74,22,0.45);
857
+ --success: #4E7A3A; --warning: #8F5F0B; --danger: #A83C2C;
858
+ --font: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
859
+ --font-display: ui-serif, Georgia, "Times New Roman", Times, serif;
860
+ --font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
861
+ --text-base: 15px; --scale-ratio: 1.3;
862
+ --weight-normal: 400; --weight-medium: 600; --weight-bold: 700; --weight-display: 800;
863
+ --leading: 1.55; --tracking-tight: 0em;
864
+ --radius-sm: 8px; --radius: 12px; --radius-lg: 22px; --radius-full: 999px;
865
+ --shadow-sm: 0 2px 0 #D9B98F; --shadow: 0 3px 0 #D9B98F; --shadow-lg: 0 5px 0 #CBA878;
866
+ --pad-tight: 10px; --pad: 16px; --pad-loose: 24px; --gap: 13px;
867
+ --dur-fast: 150ms; --dur: 240ms;
868
+ --ease: cubic-bezier(0.33, 1, 0.68, 1); --ease-emphasis: cubic-bezier(0.34, 1.4, 0.64, 1);
869
+ --surface-bg: linear-gradient(180deg, #F6EBDB 0%, #F1E1CB 100%);
870
+ --glass-bg: #FFF6E9; --glass-blur: none; --glass-border: #E0CDB2;
871
+ --glow: none; --gradient-accent: linear-gradient(120deg, #B54A16 0%, #C98A1B 100%);
872
+ --elevation-inset: none;
873
+ }
874
+ [data-flagship="retro"][data-mode="dark"] {
875
+ --bg: #241B12; --surface: #2E2318; --surface-2: #382B1D;
876
+ --fg: #F3E7D3; --fg-muted: #C4B097; --fg-subtle: #97846B;
877
+ --border: #4A3A27; --border-strong: #F3E7D3;
878
+ --accent: #E07B3C; --accent-fg: #241B12; --accent-weak: #453022;
879
+ --ring: rgba(224,123,60,0.55);
880
+ --success: #8FBB6E; --warning: #D9A33C; --danger: #E0684F;
881
+ --shadow-sm: 0 2px 0 #120D07; --shadow: 0 3px 0 #120D07; --shadow-lg: 0 5px 0 #0C0804;
882
+ --surface-bg: linear-gradient(180deg, #241B12 0%, #1D150D 100%);
883
+ --glass-bg: #2E2318; --glass-border: #4A3A27;
884
+ --gradient-accent: linear-gradient(120deg, #E07B3C 0%, #D9A33C 100%);
885
+ }
886
+
887
+ /* --- pastelpop : playful presentation — lilac tint, candy violet, big radius, soft candy shadows */
888
+ [data-flagship="pastelpop"] {
889
+ --bg: #F4F1FB; --surface: #FFFFFF; --surface-2: #F8F5FE;
890
+ --fg: #2B2640; --fg-muted: #5D5578; --fg-subtle: #837BA0;
891
+ --border: #E5DFF5; --border-strong: #CFC5EC;
892
+ --accent: #6D4AEF; --accent-fg: #FFFFFF; --accent-weak: #EAE3FE;
893
+ --ring: rgba(109,74,239,0.45);
894
+ --success: #178A5B; --warning: #96640A; --danger: #D02F55;
895
+ --font: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
896
+ --font-display: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
897
+ --font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
898
+ --text-base: 15px; --scale-ratio: 1.22;
899
+ --weight-normal: 400; --weight-medium: 600; --weight-bold: 700; --weight-display: 800;
900
+ --leading: 1.6; --tracking-tight: -0.01em;
901
+ --radius-sm: 12px; --radius: 16px; --radius-lg: 24px; --radius-full: 999px;
902
+ --shadow-sm: 0 2px 8px rgba(109,74,239,0.08);
903
+ --shadow: 0 6px 16px rgba(109,74,239,0.12);
904
+ --shadow-lg: 0 14px 34px rgba(109,74,239,0.16);
905
+ --pad-tight: 10px; --pad: 16px; --pad-loose: 24px; --gap: 14px;
906
+ --dur-fast: 150ms; --dur: 230ms;
907
+ --ease: cubic-bezier(0.34, 1.2, 0.64, 1); --ease-emphasis: cubic-bezier(0.34, 1.56, 0.64, 1);
908
+ --surface-bg: linear-gradient(160deg, #F6F2FD 0%, #F0EDFA 55%, #EFF5F8 100%);
909
+ --glass-bg: #FFFFFF; --glass-blur: none; --glass-border: #E5DFF5;
910
+ --glow: 0 0 0 4px rgba(109,74,239,0.12);
911
+ --gradient-accent: linear-gradient(120deg, #6D4AEF 0%, #B44AEF 60%, #EF4AA8 100%);
912
+ --elevation-inset: none;
913
+ }
914
+ [data-flagship="pastelpop"][data-mode="dark"] {
915
+ --bg: #1D1930; --surface: #272140; --surface-2: #2F2950;
916
+ --fg: #EFEBFB; --fg-muted: #B9B1D6; --fg-subtle: #8880AA;
917
+ --border: #3B3460; --border-strong: #4E4680;
918
+ --accent: #9B82FF; --accent-fg: #171226; --accent-weak: #322A58;
919
+ --ring: rgba(155,130,255,0.55);
920
+ --success: #5CC493; --warning: #D9A33C; --danger: #F06A8A;
921
+ --shadow-sm: 0 2px 8px rgba(0,0,0,0.35); --shadow: 0 6px 16px rgba(0,0,0,0.4);
922
+ --shadow-lg: 0 14px 34px rgba(0,0,0,0.5);
923
+ --surface-bg: linear-gradient(160deg, #201A38 0%, #1B1730 55%, #172030 100%);
924
+ --glass-bg: #272140; --glass-border: #3B3460;
925
+ --glow: 0 0 0 4px rgba(155,130,255,0.2);
926
+ --gradient-accent: linear-gradient(120deg, #9B82FF 0%, #C87BFF 60%, #FF7BC1 100%);
927
+ }
928
+
929
+ /* --- boutique : Wix luxury/hotel — ivory + bronze, hairlines, near-zero radius, wide tracking */
930
+ [data-flagship="boutique"] {
931
+ --bg: #F7F4EE; --surface: #FDFBF7; --surface-2: #F1ECE2;
932
+ --fg: #262117; --fg-muted: #5C5546; --fg-subtle: #7E7663;
933
+ --border: #DCD3C2; --border-strong: #262117;
934
+ --accent: #8A6D2F; --accent-fg: #FDFBF7; --accent-weak: #EFE7D3;
935
+ --ring: rgba(138,109,47,0.45);
936
+ --success: #3F7052; --warning: #8A6100; --danger: #A04236;
937
+ --font: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
938
+ --font-display: ui-serif, Georgia, "Times New Roman", Times, serif;
939
+ --font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
940
+ --text-base: 14px; --scale-ratio: 1.32;
941
+ --weight-normal: 400; --weight-medium: 500; --weight-bold: 600; --weight-display: 500;
942
+ --leading: 1.62; --tracking-tight: 0.01em;
943
+ --radius-sm: 1px; --radius: 2px; --radius-lg: 3px; --radius-full: 999px;
944
+ --shadow-sm: none; --shadow: 0 1px 0 rgba(38,33,23,0.08); --shadow-lg: 0 10px 30px rgba(38,33,23,0.10);
945
+ --pad-tight: 12px; --pad: 18px; --pad-loose: 28px; --gap: 16px;
946
+ --dur-fast: 180ms; --dur: 300ms;
947
+ --ease: cubic-bezier(0.25, 0.8, 0.25, 1); --ease-emphasis: cubic-bezier(0.25, 0.9, 0.2, 1);
948
+ --surface-bg: #F7F4EE;
949
+ --glass-bg: #FDFBF7; --glass-blur: none; --glass-border: #DCD3C2;
950
+ --glow: none; --gradient-accent: linear-gradient(120deg, #8A6D2F 0%, #B08D45 100%);
951
+ --elevation-inset: none;
952
+ }
953
+ [data-flagship="boutique"][data-mode="dark"] {
954
+ --bg: #17150F; --surface: #1F1C14; --surface-2: #27231A;
955
+ --fg: #EFE9DC; --fg-muted: #BDB39D; --fg-subtle: #8D8570;
956
+ --border: #383223; --border-strong: #EFE9DC;
957
+ --accent: #C8A85C; --accent-fg: #17150F; --accent-weak: #332C1B;
958
+ --ring: rgba(200,168,92,0.5);
959
+ --success: #7FAF8E; --warning: #D9A33C; --danger: #CF6B58;
960
+ --shadow-sm: none; --shadow: 0 1px 0 rgba(0,0,0,0.5); --shadow-lg: 0 12px 34px rgba(0,0,0,0.6);
961
+ --surface-bg: #17150F;
962
+ --glass-bg: #1F1C14; --glass-border: #383223;
963
+ --gradient-accent: linear-gradient(120deg, #C8A85C 0%, #E0C88A 100%);
964
+ }
965
+
966
+ /* --- organic : Wix wellness/restaurant — stone + sage + terracotta, organic radius, natural shadow */
967
+ [data-flagship="organic"] {
968
+ --bg: #F3F1EA; --surface: #FBFAF5; --surface-2: #EDEADF;
969
+ --fg: #2E332B; --fg-muted: #5C6355; --fg-subtle: #7E8574;
970
+ --border: #DEDACB; --border-strong: #A8A28D;
971
+ --accent: #4F7250; --accent-fg: #FBFAF5; --accent-weak: #E2EADF;
972
+ --ring: rgba(79,114,80,0.45);
973
+ --success: #3F7A4E; --warning: #96700F; --danger: #B65C3F;
974
+ --font: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
975
+ --font-display: ui-serif, Georgia, "Times New Roman", Times, serif;
976
+ --font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
977
+ --text-base: 15px; --scale-ratio: 1.26;
978
+ --weight-normal: 400; --weight-medium: 500; --weight-bold: 650; --weight-display: 550;
979
+ --leading: 1.62; --tracking-tight: 0em;
980
+ --radius-sm: 12px; --radius: 18px; --radius-lg: 26px; --radius-full: 999px;
981
+ --shadow-sm: 0 1px 3px rgba(46,51,43,0.07);
982
+ --shadow: 0 6px 18px rgba(46,51,43,0.09);
983
+ --shadow-lg: 0 16px 40px rgba(46,51,43,0.12);
984
+ --pad-tight: 11px; --pad: 17px; --pad-loose: 26px; --gap: 14px;
985
+ --dur-fast: 170ms; --dur: 260ms;
986
+ --ease: cubic-bezier(0.3, 0.85, 0.3, 1); --ease-emphasis: cubic-bezier(0.3, 1.1, 0.3, 1);
987
+ --surface-bg: linear-gradient(180deg, #F3F1EA 0%, #EFECE2 100%);
988
+ --glass-bg: #FBFAF5; --glass-blur: none; --glass-border: #DEDACB;
989
+ --glow: none; --gradient-accent: linear-gradient(120deg, #4F7250 0%, #7C9A5E 100%);
990
+ --elevation-inset: none;
991
+ }
992
+ [data-flagship="organic"][data-mode="dark"] {
993
+ --bg: #1C1F1A; --surface: #252921; --surface-2: #2D3228;
994
+ --fg: #EDEEE6; --fg-muted: #B7BCA9; --fg-subtle: #878D7A;
995
+ --border: #3A4033; --border-strong: #EDEEE6;
996
+ --accent: #8FB98B; --accent-fg: #161913; --accent-weak: #2C3A2B;
997
+ --ring: rgba(143,185,139,0.5);
998
+ --success: #7FBF8E; --warning: #D9A33C; --danger: #D97B5B;
999
+ --shadow-sm: 0 1px 3px rgba(0,0,0,0.4); --shadow: 0 6px 18px rgba(0,0,0,0.45);
1000
+ --shadow-lg: 0 16px 40px rgba(0,0,0,0.55);
1001
+ --surface-bg: linear-gradient(180deg, #1C1F1A 0%, #171A15 100%);
1002
+ --glass-bg: #252921; --glass-border: #3A4033;
1003
+ --gradient-accent: linear-gradient(120deg, #8FB98B 0%, #B9CF8A 100%);
1004
+ }
1005
+
1006
+ /* ============================================================
1007
+ LAYOUT AXIS — structure as tokens, orthogonal to the style axis.
1008
+ Style tokens answer "what does it look like"; these answer "how is it
1009
+ arranged". Named by the product archetype each arrangement comes from,
1010
+ because that is how the difference actually reaches a designer: a portfolio
1011
+ and a dashboard disagree about density and measure far more than they
1012
+ disagree about hue.
1013
+
1014
+ The discipline that makes this an experiment: DOM ORDER NEVER CHANGES. Only
1015
+ box arrangement does (direction, width, column count, label placement,
1016
+ density, whether decorative media renders). If the substrate is right, an
1017
+ agent reading a linearised DOM should be indifferent to all of it — which is
1018
+ a stronger claim than skin-invariance and is separately measurable.
1019
+
1020
+ --lay-dir stack direction of the component's main sections
1021
+ --lay-width max inline size
1022
+ --lay-cols columns used by a repeating group (options, specs, fields)
1023
+ --lay-label label placement: block (above) | inline (beside)
1024
+ --lay-density multiplier on padding and gaps
1025
+ --lay-media block | none — decorative media
1026
+ --lay-rule hairline separators between sections: none | 1px
1027
+ ============================================================ */
1028
+
1029
+ /* card — the default product card / form panel most component libraries ship */
1030
+ [data-layout="card"] {
1031
+ --lay-dir: column; --lay-width: 360px; --lay-cols: 3;
1032
+ --lay-label: block; --lay-density: 1; --lay-media: block; --lay-rule: 0px;
1033
+ }
1034
+
1035
+ /* dashboard — data-dense console tile: narrow, tight, no decoration, rules
1036
+ between sections so scanning is by row */
1037
+ [data-layout="dashboard"] {
1038
+ --lay-dir: column; --lay-width: 296px; --lay-cols: 2;
1039
+ --lay-label: inline; --lay-density: 0.68; --lay-media: none; --lay-rule: 1px;
1040
+ }
1041
+
1042
+ /* commerce — product-detail row: media beside the buy controls, wide measure,
1043
+ the arrangement a complex storefront uses above the fold */
1044
+ [data-layout="commerce"] {
1045
+ --lay-dir: row; --lay-width: 660px; --lay-cols: 3;
1046
+ --lay-label: block; --lay-density: 1.05; --lay-media: block; --lay-rule: 0px;
1047
+ }
1048
+
1049
+ /* saas — settings/console form: labels beside their controls, moderate width,
1050
+ single column of options so each is a full-width row */
1051
+ [data-layout="saas"] {
1052
+ --lay-dir: column; --lay-width: 520px; --lay-cols: 1;
1053
+ --lay-label: inline; --lay-density: 0.9; --lay-media: none; --lay-rule: 1px;
1054
+ }
1055
+
1056
+ /* portfolio — personal/editorial site: generous measure and rhythm, media
1057
+ forward, one option per row, nothing packed */
1058
+ [data-layout="portfolio"] {
1059
+ --lay-dir: column; --lay-width: 480px; --lay-cols: 1;
1060
+ --lay-label: block; --lay-density: 1.55; --lay-media: block; --lay-rule: 0px;
1061
+ }
1062
+
1063
+ /* catalog — grid/listing idiom: compact repeating cells, media kept but small,
1064
+ the arrangement a category page repeats dozens of times */
1065
+ [data-layout="catalog"] {
1066
+ --lay-dir: column; --lay-width: 260px; --lay-cols: 3;
1067
+ --lay-label: block; --lay-density: 0.8; --lay-media: block; --lay-rule: 0px;
1068
+ }