ui-style-kit-css 2.1.0 → 2.3.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 (64) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/README.md +169 -54
  3. package/STYLE-MAP.md +55 -0
  4. package/dist/ui-style-kit.css +23744 -7015
  5. package/dist/ui-style-kit.min.css +2 -2
  6. package/dist/ui-style-kit.visual.css +22948 -6669
  7. package/dist/ui-style-kit.visual.min.css +2 -2
  8. package/dist/ui-style-kit.with-bridge.css +23941 -7205
  9. package/dist/ui-style-kit.with-bridge.min.css +2 -2
  10. package/dist/visual/art-deco.css +4776 -0
  11. package/dist/visual/bauhaus.css +1894 -147
  12. package/dist/visual/bento.css +1910 -166
  13. package/dist/visual/brutalism.css +1853 -98
  14. package/dist/visual/clay.css +4789 -0
  15. package/dist/visual/cyberpunk.css +1840 -94
  16. package/dist/visual/data-terminal.css +4804 -0
  17. package/dist/visual/editorial-luxe.css +4804 -0
  18. package/dist/visual/industrial-utility.css +4797 -0
  19. package/dist/visual/maximalist.css +1862 -112
  20. package/dist/visual/minimal-saas.css +1886 -147
  21. package/dist/visual/neo-noir.css +4790 -0
  22. package/dist/visual/neumorphism.css +1896 -151
  23. package/dist/visual/organic-modern.css +4767 -0
  24. package/dist/visual/paper-editorial.css +4799 -0
  25. package/dist/visual/retro-glass.css +1859 -93
  26. package/dist/visual/retrofuturism.css +1852 -113
  27. package/dist/visual/tactile.css +1851 -111
  28. package/dist/visual/technical-blueprint.css +4791 -0
  29. package/dist/visual/y2k.css +1840 -92
  30. package/docs/BRIDGE-MIGRATION.md +20 -0
  31. package/docs/ECOSYSTEM.md +39 -4
  32. package/docs/PUBLISHING.md +38 -13
  33. package/docs/STYLE-GUIDE.md +53 -13
  34. package/docs/TOKENS.md +50 -1
  35. package/docs/superpowers/plans/2026-08-29-preset-identity-system-refinement.md +649 -0
  36. package/docs/superpowers/specs/2026-08-29-preset-identity-system-refinement-design.md +212 -0
  37. package/manifest.json +482 -2
  38. package/package.json +77 -7
  39. package/styles/art-deco.css +683 -0
  40. package/styles/bauhaus.css +237 -3
  41. package/styles/bento.css +266 -7
  42. package/styles/brutalism.css +235 -3
  43. package/styles/clay.css +692 -0
  44. package/styles/components.css +608 -14
  45. package/styles/content-overflow.css +423 -4
  46. package/styles/cyberpunk.css +234 -3
  47. package/styles/data-terminal.css +691 -0
  48. package/styles/editorial-luxe.css +687 -0
  49. package/styles/industrial-utility.css +690 -0
  50. package/styles/interactive-surface-bridge.css +17 -10
  51. package/styles/interactive-surface-theme.css +17 -8
  52. package/styles/maximalist.css +238 -4
  53. package/styles/minimal-saas.css +234 -3
  54. package/styles/native-elements.css +80 -12
  55. package/styles/neo-noir.css +690 -0
  56. package/styles/neumorphism.css +234 -3
  57. package/styles/organic-modern.css +683 -0
  58. package/styles/paper-editorial.css +688 -0
  59. package/styles/retro-glass.css +242 -3
  60. package/styles/retrofuturism.css +233 -3
  61. package/styles/tactile.css +235 -3
  62. package/styles/technical-blueprint.css +686 -0
  63. package/styles/theme-colors.css +796 -5
  64. package/styles/y2k.css +237 -3
@@ -1,7 +1,7 @@
1
1
  /* =========================================================
2
2
  Glassmorphism + Retrofuturism Hybrid Theme System
3
3
  Includes:
4
- - 10 color schemes
4
+ - 20 color schemes
5
5
  - light / dark / contrast modes
6
6
  - themed UI components and utilities
7
7
 
@@ -143,7 +143,7 @@
143
143
  --rg-fg: var(--rg-text);
144
144
  --rg-surface-fg: var(--rg-text);
145
145
  --rg-muted: var(--rg-text-muted);
146
- --rg-border: rgb(var(--rg-border-rgb) / var(--rg-border-alpha));
146
+ --rg-border: rgb(var(--rg-border-rgb) / max(var(--rg-border-alpha), var(--usk-border-min-alpha)));
147
147
  --rg-control-fg: var(--rg-text);
148
148
  --rg-primary: rgb(var(--rg-primary-rgb));
149
149
  --rg-primary-hover: rgb(var(--rg-primary-hover-rgb));
@@ -178,6 +178,10 @@
178
178
  --rg-spinner-accent: var(--rg-accent);
179
179
  }
180
180
 
181
+ @supports (color: color-mix(in srgb, black, white)) {
182
+ [data-ui="retro-glass"][data-theme][data-mode] { --rg-border: color-mix(in srgb, rgb(var(--rg-border-rgb) / max(var(--rg-border-alpha), var(--usk-border-min-alpha))), var(--rg-text) var(--usk-border-text-mix)); }
183
+ }
184
+
181
185
  /* =========================================================
182
186
  1. Midnight Gold
183
187
  ========================================================= */
@@ -333,6 +337,241 @@
333
337
  @keyframes rg-spin { to { transform: rotate(360deg); } }
334
338
 
335
339
 
340
+
341
+ /* =========================================================
342
+ Marketing / Commercial Component Modifiers
343
+ Reusable visual patterns derived from service-oriented brand systems.
344
+ ========================================================= */
345
+
346
+ .rg-card-media {
347
+ display: block;
348
+ inline-size: 100%;
349
+ aspect-ratio: 16 / 9;
350
+ object-fit: cover;
351
+ border: 1px solid rgb(var(--rg-border-rgb) / .72);
352
+ border-radius: var(--rg-radius-lg);
353
+ }
354
+
355
+ .rg-card-service {
356
+ position: relative;
357
+ display: grid;
358
+ gap: var(--rg-space-3);
359
+ align-content: start;
360
+ text-align: center;
361
+ overflow: visible;
362
+ }
363
+ .rg-card-service > .rg-icon-medallion {
364
+ justify-self: center;
365
+ margin-block-start: -2.15rem;
366
+ position: relative;
367
+ z-index: 2;
368
+ }
369
+ .rg-card-service > .rg-card-media + .rg-icon-medallion { margin-block-start: -2.15rem; }
370
+
371
+ .rg-card-feature {
372
+ display: grid;
373
+ grid-template-columns: auto minmax(0, 1fr);
374
+ gap: var(--rg-space-4);
375
+ align-items: start;
376
+ }
377
+
378
+ .rg-card-accent-edge {
379
+ border-inline-start: .35rem solid var(--rg-primary);
380
+ }
381
+
382
+ .rg-icon-medallion {
383
+ display: inline-grid;
384
+ place-items: center;
385
+ inline-size: 3.75rem;
386
+ block-size: 3.75rem;
387
+ flex: 0 0 auto;
388
+ padding: .7rem;
389
+ background: var(--rg-primary);
390
+ color: var(--rg-on-primary);
391
+ border: 2px solid rgb(var(--rg-border-rgb) / .82);
392
+ border-radius: 50%;
393
+ line-height: 1;
394
+ }
395
+ .rg-icon-medallion > :where(svg, img) { inline-size: 100%; block-size: 100%; object-fit: contain; }
396
+
397
+ .rg-button.rg-button-cut,
398
+ .rg-button-cut {
399
+ border-radius: 0;
400
+ clip-path: polygon(.6rem 0, 100% 0, 100% calc(100% - .6rem), calc(100% - .6rem) 100%, 0 100%, 0 .6rem);
401
+ }
402
+ .rg-button.rg-button-cut:focus-visible,
403
+ .rg-button-cut:focus-visible { outline-offset: -3px; }
404
+
405
+ .rg-button.rg-button-outline-heavy,
406
+ .rg-button-outline-heavy {
407
+ background: transparent;
408
+ color: var(--rg-primary);
409
+ border-style: solid;
410
+ border-width: 2px;
411
+ border-color: var(--rg-primary);
412
+ box-shadow: none;
413
+ }
414
+ .rg-button.rg-button-outline-heavy:hover,
415
+ .rg-button-outline-heavy:hover {
416
+ background: var(--rg-primary);
417
+ color: var(--rg-on-primary);
418
+ border-color: var(--rg-primary-hover);
419
+ }
420
+
421
+ .rg-badge-seal {
422
+ display: inline-grid;
423
+ place-items: center;
424
+ align-content: center;
425
+ inline-size: 5rem;
426
+ min-inline-size: 5rem;
427
+ aspect-ratio: 1;
428
+ padding: .65rem;
429
+ background: var(--rg-surface-strong);
430
+ color: var(--rg-text);
431
+ border: 2px solid var(--rg-primary);
432
+ border-radius: 50%;
433
+ text-align: center;
434
+ font-family: var(--rg-font-heading);
435
+ font-size: .72rem;
436
+ font-weight: 900;
437
+ line-height: 1.05;
438
+ letter-spacing: .04em;
439
+ }
440
+
441
+ .rg-feature-strip {
442
+ display: grid;
443
+ grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr));
444
+ overflow: hidden;
445
+ background: var(--rg-card-bg);
446
+ color: var(--rg-text);
447
+ border: 1px solid var(--rg-border);
448
+ border-radius: var(--rg-radius-lg);
449
+ }
450
+
451
+ .rg-feature-item {
452
+ display: grid;
453
+ grid-template-columns: auto minmax(0, 1fr);
454
+ align-items: center;
455
+ gap: var(--rg-space-3);
456
+ min-inline-size: 0;
457
+ padding: var(--rg-space-4);
458
+ border-inline-end: 1px solid rgb(var(--rg-border-rgb) / .62);
459
+ }
460
+ .rg-feature-item:last-child { border-inline-end: 0; }
461
+ .rg-feature-item > :where(p, small) { margin: 0; color: var(--rg-text-muted); }
462
+
463
+ .rg-callout-bar {
464
+ display: grid;
465
+ grid-template-columns: auto minmax(0, 1fr) auto;
466
+ align-items: center;
467
+ gap: var(--rg-space-4);
468
+ padding: var(--rg-space-4) var(--rg-space-5);
469
+ background: var(--rg-card-bg);
470
+ color: var(--rg-text);
471
+ border: 1px solid var(--rg-border);
472
+ border-radius: var(--rg-radius-lg);
473
+ }
474
+ .rg-callout-bar > :where(p, div) { min-inline-size: 0; }
475
+ .rg-callout-bar > :where(.rg-button, a, button):last-child { justify-self: end; }
476
+
477
+ .rg-eyebrow {
478
+ margin: 0;
479
+ color: var(--rg-primary);
480
+ font-family: var(--rg-font-heading);
481
+ font-size: .76rem;
482
+ font-weight: 900;
483
+ line-height: 1.2;
484
+ letter-spacing: .14em;
485
+ text-transform: uppercase;
486
+ }
487
+
488
+ .rg-media-scrim {
489
+ position: relative;
490
+ overflow: hidden;
491
+ isolation: isolate;
492
+ min-block-size: 12rem;
493
+ background: var(--rg-surface-soft);
494
+ border: 1px solid var(--rg-border);
495
+ border-radius: var(--rg-radius-lg);
496
+ }
497
+ .rg-media-scrim > :where(img, picture, video) {
498
+ display: block;
499
+ inline-size: 100%;
500
+ block-size: 100%;
501
+ min-block-size: inherit;
502
+ object-fit: cover;
503
+ }
504
+ .rg-media-scrim > :where(figcaption, [data-media-caption]) {
505
+ position: absolute;
506
+ z-index: 1;
507
+ inset-inline: 0;
508
+ inset-block-end: 0;
509
+ padding: clamp(1rem, 4vw, 2rem);
510
+ color: #fff;
511
+ background: linear-gradient(to top, rgb(0 0 0 / .9), rgb(0 0 0 / .58) 56%, transparent);
512
+ }
513
+ .rg-media-scrim > :where(figcaption, [data-media-caption]) * {
514
+ color: inherit;
515
+ }
516
+
517
+ @media (max-width: 42rem) {
518
+ .rg-callout-bar { grid-template-columns: 1fr; align-items: start; }
519
+ .rg-callout-bar > :where(.rg-button, a, button):last-child { justify-self: stretch; }
520
+ .rg-feature-item { border-inline-end: 0; border-block-end: 1px solid rgb(var(--rg-border-rgb) / .62); }
521
+ .rg-feature-item:last-child { border-block-end: 0; }
522
+ }
523
+
524
+ .rg-card-service, .rg-card-feature, .rg-feature-strip, .rg-callout-bar { background: linear-gradient(135deg, rgb(255 255 255 / .16), rgb(255 255 255 / .03)), var(--rg-card-bg); -webkit-backdrop-filter: blur(18px) saturate(150%); backdrop-filter: blur(18px) saturate(150%); box-shadow: var(--rg-shadow-md), 0 0 1.8rem rgb(var(--rg-primary-rgb) / .18); }
525
+ .rg-icon-medallion, .rg-badge-seal { background: linear-gradient(145deg, rgb(255 255 255 / .3), rgb(255 255 255 / .05)), rgb(var(--rg-primary-rgb) / .72); border-color: rgb(255 255 255 / .32); -webkit-backdrop-filter: blur(12px) saturate(150%); backdrop-filter: blur(12px) saturate(150%); box-shadow: 0 0 1.35rem rgb(var(--rg-primary-rgb) / .28); }
526
+ .rg-button-outline-heavy { background: rgb(255 255 255 / .06); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
527
+
528
+ /* Filled and framed actions use complementary frosted tabs and inner highlights. */
529
+ .rg-button.rg-button-cut, .rg-button-cut {
530
+ inline-size: min(100%, 16rem);
531
+ min-inline-size: 6rem;
532
+ max-inline-size: 100%;
533
+ justify-self: center;
534
+ justify-content: center;
535
+ clip-path: polygon(.8rem 0, 100% 0, 100% calc(100% - .35rem), calc(100% - .8rem) 100%, 0 100%, 0 .35rem);
536
+ }
537
+ .rg-button.rg-button-outline-heavy, .rg-button-outline-heavy {
538
+ border-width: 1px;
539
+ border-radius: 0;
540
+ background: rgb(var(--rg-surface-strong-rgb) / .2);
541
+ clip-path: polygon(0 0, calc(100% - .8rem) 0, 100% .35rem, 100% 100%, .8rem 100%, 0 calc(100% - .35rem));
542
+ box-shadow: inset 0 1px 0 rgb(var(--rg-surface-strong-rgb) / .78), 0 .45rem 1rem rgb(var(--rg-primary-rgb) / .14);
543
+ }
544
+
545
+ /* Marketing and native surfaces repeat the frosted shell and inner highlight. */
546
+ .rg-card-service, .rg-media-scrim, .rg-feature-strip, .rg-callout-bar, .rg-well {
547
+ background: rgb(var(--rg-surface-strong-rgb) / .34);
548
+ border: 1px solid rgb(var(--rg-border-rgb) / .72);
549
+ border-radius: .75rem 1.35rem .75rem 1.15rem;
550
+ box-shadow: inset 0 1px 0 rgb(var(--rg-surface-strong-rgb) / .78), 0 .8rem 1.6rem rgb(var(--rg-primary-rgb) / .14);
551
+ -webkit-backdrop-filter: blur(12px);
552
+ backdrop-filter: blur(12px);
553
+ }
554
+ [data-ui="retro-glass"][data-theme][data-mode] :where(button:not([class]), input[type="button"]:not([class]), input[type="submit"]:not([class]), input[type="reset"]:not([class])) {
555
+ color: var(--rg-text);
556
+ background: rgb(var(--rg-surface-strong-rgb) / .24);
557
+ border: 1px solid var(--rg-primary);
558
+ border-radius: .55rem .9rem .55rem .78rem;
559
+ box-shadow: inset 0 1px 0 rgb(var(--rg-surface-strong-rgb) / .78), 0 .35rem .85rem rgb(var(--rg-primary-rgb) / .14);
560
+ }
561
+ [data-ui="retro-glass"][data-theme][data-mode] :where(dialog) {
562
+ background: rgb(var(--rg-surface-strong-rgb) / .72);
563
+ border: 1px solid rgb(var(--rg-border-rgb) / .78);
564
+ border-radius: .85rem 1.45rem .85rem 1.2rem;
565
+ box-shadow: inset 0 1px 0 rgb(var(--rg-surface-strong-rgb) / .8), 0 1rem 2.2rem rgb(var(--rg-primary-rgb) / .18);
566
+ -webkit-backdrop-filter: blur(14px);
567
+ backdrop-filter: blur(14px);
568
+ }
569
+
570
+ /* Busy indicators retain the irregular frosted-glass tab silhouette. */
571
+ .rg-button[aria-busy="true"]::after, .rg-icon-button[aria-busy="true"]::after, [data-ui="retro-glass"] :where(button[aria-busy="true"], input[type="button"][aria-busy="true"], input[type="submit"][aria-busy="true"], input[type="reset"][aria-busy="true"])::after {
572
+ border: .09em solid rgb(255 255 255 / .45); border-block-start-color: currentColor; border-radius: 38% 62% 48% 52%; background: linear-gradient(135deg, rgb(255 255 255 / .35), transparent 45%), conic-gradient(currentColor, transparent 44%, currentColor); box-shadow: 0 0 .42em currentColor, inset 0 0 .2em rgb(255 255 255 / .26); clip-path: none; animation: rg-spin .96s linear infinite;
573
+ }
574
+
336
575
  @media (prefers-reduced-motion: reduce) {
337
576
  [data-ui="retro-glass"] *, [data-ui="retro-glass"] *::before, [data-ui="retro-glass"] *::after { scroll-behavior: auto !important; transition-duration: 1ms !important; animation-duration: 1ms !important; animation-iteration-count: 1 !important; }
338
577
  }
@@ -340,7 +579,7 @@
340
579
  [data-ui="retro-glass"] { --rg-border-alpha: 1; }
341
580
  }
342
581
  @media (forced-colors: active) {
343
- [data-ui="retro-glass"] * { forced-color-adjust: auto; }
582
+ @supports (forced-color-adjust: auto) { [data-ui="retro-glass"] * { forced-color-adjust: auto; } }
344
583
  [data-ui="retro-glass"] :where(:focus-visible) { outline: 3px solid CanvasText; box-shadow: none; }
345
584
  }
346
585
  @media print {
@@ -1,6 +1,6 @@
1
1
  /* =========================================================
2
2
  UI Style Kit CSS — Retrofuturism Theme System
3
- Includes 10 color schemes, light/dark/contrast modes,
3
+ Includes 20 color schemes, light/dark/contrast modes,
4
4
  component classes, native element coverage, and CSS-only
5
5
  accessibility presentation helpers.
6
6
 
@@ -132,7 +132,7 @@
132
132
  --retro-fg: var(--retro-text);
133
133
  --retro-surface-fg: var(--retro-text);
134
134
  --retro-muted: var(--retro-text-muted);
135
- --retro-border: rgb(var(--retro-border-rgb) / var(--retro-border-alpha));
135
+ --retro-border: rgb(var(--retro-border-rgb) / max(var(--retro-border-alpha), var(--usk-border-min-alpha)));
136
136
  --retro-control-fg: var(--retro-text);
137
137
  --retro-primary: rgb(var(--retro-primary-rgb));
138
138
  --retro-primary-hover: rgb(var(--retro-primary-hover-rgb));
@@ -162,6 +162,10 @@
162
162
  --retro-spinner-accent: var(--retro-accent);
163
163
  }
164
164
 
165
+ @supports (color: color-mix(in srgb, black, white)) {
166
+ [data-ui="retrofuturism"][data-theme][data-mode] { --retro-border: color-mix(in srgb, rgb(var(--retro-border-rgb) / max(var(--retro-border-alpha), var(--usk-border-min-alpha))), var(--retro-text) var(--usk-border-text-mix)); }
167
+ }
168
+
165
169
 
166
170
 
167
171
 
@@ -443,6 +447,232 @@
443
447
  @keyframes retro-spin { to { transform: rotate(360deg); } }
444
448
 
445
449
 
450
+
451
+ /* =========================================================
452
+ Marketing / Commercial Component Modifiers
453
+ Reusable visual patterns derived from service-oriented brand systems.
454
+ ========================================================= */
455
+
456
+ .retro-card-media {
457
+ display: block;
458
+ inline-size: 100%;
459
+ aspect-ratio: 16 / 9;
460
+ object-fit: cover;
461
+ border: 1px solid rgb(var(--retro-border-rgb) / .72);
462
+ border-radius: var(--retro-radius-lg);
463
+ }
464
+
465
+ .retro-card-service {
466
+ position: relative;
467
+ display: grid;
468
+ gap: var(--retro-space-3);
469
+ align-content: start;
470
+ text-align: center;
471
+ overflow: visible;
472
+ }
473
+ .retro-card-service > .retro-icon-medallion {
474
+ justify-self: center;
475
+ margin-block-start: -2.15rem;
476
+ position: relative;
477
+ z-index: 2;
478
+ }
479
+ .retro-card-service > .retro-card-media + .retro-icon-medallion { margin-block-start: -2.15rem; }
480
+
481
+ .retro-card-feature {
482
+ display: grid;
483
+ grid-template-columns: auto minmax(0, 1fr);
484
+ gap: var(--retro-space-4);
485
+ align-items: start;
486
+ }
487
+
488
+ .retro-card-accent-edge {
489
+ border-inline-start: .35rem solid var(--retro-primary);
490
+ }
491
+
492
+ .retro-icon-medallion {
493
+ display: inline-grid;
494
+ place-items: center;
495
+ inline-size: 3.75rem;
496
+ block-size: 3.75rem;
497
+ flex: 0 0 auto;
498
+ padding: .7rem;
499
+ background: var(--retro-primary);
500
+ color: var(--retro-on-primary);
501
+ border: 2px solid rgb(var(--retro-border-rgb) / .82);
502
+ border-radius: 50%;
503
+ line-height: 1;
504
+ }
505
+ .retro-icon-medallion > :where(svg, img) { inline-size: 100%; block-size: 100%; object-fit: contain; }
506
+
507
+ .retro-button.retro-button-cut,
508
+ .retro-button-cut {
509
+ border-radius: 0;
510
+ clip-path: polygon(.6rem 0, 100% 0, 100% calc(100% - .6rem), calc(100% - .6rem) 100%, 0 100%, 0 .6rem);
511
+ }
512
+ .retro-button.retro-button-cut:focus-visible,
513
+ .retro-button-cut:focus-visible { outline-offset: -3px; }
514
+
515
+ .retro-button.retro-button-outline-heavy,
516
+ .retro-button-outline-heavy {
517
+ background: transparent;
518
+ color: var(--retro-primary);
519
+ border-style: solid;
520
+ border-width: 2px;
521
+ border-color: var(--retro-primary);
522
+ box-shadow: none;
523
+ }
524
+ .retro-button.retro-button-outline-heavy:hover,
525
+ .retro-button-outline-heavy:hover {
526
+ background: var(--retro-primary);
527
+ color: var(--retro-on-primary);
528
+ border-color: var(--retro-primary-hover);
529
+ }
530
+
531
+ .retro-badge-seal {
532
+ display: inline-grid;
533
+ place-items: center;
534
+ align-content: center;
535
+ inline-size: 5rem;
536
+ min-inline-size: 5rem;
537
+ aspect-ratio: 1;
538
+ padding: .65rem;
539
+ background: var(--retro-surface-strong);
540
+ color: var(--retro-text);
541
+ border: 2px solid var(--retro-primary);
542
+ border-radius: 50%;
543
+ text-align: center;
544
+ font-family: var(--retro-font-heading);
545
+ font-size: .72rem;
546
+ font-weight: 900;
547
+ line-height: 1.05;
548
+ letter-spacing: .04em;
549
+ }
550
+
551
+ .retro-feature-strip {
552
+ display: grid;
553
+ grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr));
554
+ overflow: hidden;
555
+ background: var(--retro-card-bg);
556
+ color: var(--retro-text);
557
+ border: 1px solid var(--retro-border);
558
+ border-radius: var(--retro-radius-lg);
559
+ }
560
+
561
+ .retro-feature-item {
562
+ display: grid;
563
+ grid-template-columns: auto minmax(0, 1fr);
564
+ align-items: center;
565
+ gap: var(--retro-space-3);
566
+ min-inline-size: 0;
567
+ padding: var(--retro-space-4);
568
+ border-inline-end: 1px solid rgb(var(--retro-border-rgb) / .62);
569
+ }
570
+ .retro-feature-item:last-child { border-inline-end: 0; }
571
+ .retro-feature-item > :where(p, small) { margin: 0; color: var(--retro-text-muted); }
572
+
573
+ .retro-callout-bar {
574
+ display: grid;
575
+ grid-template-columns: auto minmax(0, 1fr) auto;
576
+ align-items: center;
577
+ gap: var(--retro-space-4);
578
+ padding: var(--retro-space-4) var(--retro-space-5);
579
+ background: var(--retro-card-bg);
580
+ color: var(--retro-text);
581
+ border: 1px solid var(--retro-border);
582
+ border-radius: var(--retro-radius-lg);
583
+ }
584
+ .retro-callout-bar > :where(p, div) { min-inline-size: 0; }
585
+ .retro-callout-bar > :where(.retro-button, a, button):last-child { justify-self: end; }
586
+
587
+ .retro-eyebrow {
588
+ margin: 0;
589
+ color: var(--retro-primary);
590
+ font-family: var(--retro-font-heading);
591
+ font-size: .76rem;
592
+ font-weight: 900;
593
+ line-height: 1.2;
594
+ letter-spacing: .14em;
595
+ text-transform: uppercase;
596
+ }
597
+
598
+ .retro-media-scrim {
599
+ position: relative;
600
+ overflow: hidden;
601
+ isolation: isolate;
602
+ min-block-size: 12rem;
603
+ background: var(--retro-surface-soft);
604
+ border: 1px solid var(--retro-border);
605
+ border-radius: var(--retro-radius-lg);
606
+ }
607
+ .retro-media-scrim > :where(img, picture, video) {
608
+ display: block;
609
+ inline-size: 100%;
610
+ block-size: 100%;
611
+ min-block-size: inherit;
612
+ object-fit: cover;
613
+ }
614
+ .retro-media-scrim > :where(figcaption, [data-media-caption]) {
615
+ position: absolute;
616
+ z-index: 1;
617
+ inset-inline: 0;
618
+ inset-block-end: 0;
619
+ padding: clamp(1rem, 4vw, 2rem);
620
+ color: #fff;
621
+ background: linear-gradient(to top, rgb(0 0 0 / .9), rgb(0 0 0 / .58) 56%, transparent);
622
+ }
623
+ .retro-media-scrim > :where(figcaption, [data-media-caption]) * {
624
+ color: inherit;
625
+ }
626
+
627
+ @media (max-width: 42rem) {
628
+ .retro-callout-bar { grid-template-columns: 1fr; align-items: start; }
629
+ .retro-callout-bar > :where(.retro-button, a, button):last-child { justify-self: stretch; }
630
+ .retro-feature-item { border-inline-end: 0; border-block-end: 1px solid rgb(var(--retro-border-rgb) / .62); }
631
+ .retro-feature-item:last-child { border-block-end: 0; }
632
+ }
633
+
634
+ .retro-card-service, .retro-card-feature, .retro-feature-strip, .retro-callout-bar { border-width: 2px; box-shadow: 0 0 0 2px rgb(var(--retro-primary-rgb) / .18), 0 1rem 2rem rgb(0 0 0 / .22); }
635
+ .retro-icon-medallion, .retro-badge-seal { border: .2rem double var(--retro-border); box-shadow: 0 0 0 .18rem rgb(var(--retro-primary-rgb) / .18); }
636
+ .retro-eyebrow { letter-spacing: .2em; }
637
+
638
+ /* Filled and framed actions read as paired instrument-panel controls. */
639
+ .retro-button.retro-button-cut, .retro-button-cut {
640
+ inline-size: min(100%, 18rem);
641
+ min-inline-size: 6rem;
642
+ max-inline-size: 100%;
643
+ justify-self: center;
644
+ justify-content: center;
645
+ clip-path: polygon(.9rem 0, calc(100% - .9rem) 0, 100% 50%, calc(100% - .9rem) 100%, .9rem 100%, 0 50%);
646
+ }
647
+ .retro-button.retro-button-outline-heavy, .retro-button-outline-heavy {
648
+ border: 3px double var(--retro-primary);
649
+ border-radius: 0;
650
+ clip-path: polygon(1.1rem 0, calc(100% - .55rem) 0, 100% 50%, calc(100% - .55rem) 100%, 1.1rem 100%, 0 50%);
651
+ box-shadow: inset 0 0 0 1px rgb(var(--retro-surface-strong-rgb) / .78), 0 .25rem .8rem rgb(var(--retro-primary-rgb) / .18);
652
+ }
653
+
654
+ /* Marketing and native surfaces share an instrument rim and metallic inner line. */
655
+ .retro-card-service, .retro-media-scrim, .retro-feature-strip, .retro-callout-bar, .retro-well {
656
+ border: 3px double var(--retro-border);
657
+ border-radius: var(--retro-radius-lg);
658
+ box-shadow: inset 0 0 0 1px rgb(var(--retro-surface-strong-rgb) / .7), 0 .75rem 1.6rem rgb(var(--retro-text-rgb) / .18);
659
+ }
660
+ [data-ui="retrofuturism"][data-theme][data-mode] :where(button:not([class]), input[type="button"]:not([class]), input[type="submit"]:not([class]), input[type="reset"]:not([class])) {
661
+ border: 3px double var(--retro-primary);
662
+ border-radius: var(--retro-radius-pill);
663
+ box-shadow: inset 0 0 0 1px rgb(var(--retro-surface-strong-rgb) / .72), 0 .3rem .8rem rgb(var(--retro-primary-rgb) / .2);
664
+ }
665
+ [data-ui="retrofuturism"][data-theme][data-mode] :where(dialog) {
666
+ border: 3px double var(--retro-border);
667
+ border-radius: var(--retro-radius-lg);
668
+ box-shadow: inset 0 0 0 1px rgb(var(--retro-surface-strong-rgb) / .72), 0 1rem 2.2rem rgb(var(--retro-text-rgb) / .24);
669
+ }
670
+
671
+ /* Busy indicators become a luminous console dial with a central locator. */
672
+ .retro-button[aria-busy="true"]::after, .retro-icon-button[aria-busy="true"]::after, [data-ui="retrofuturism"] :where(button[aria-busy="true"], input[type="button"][aria-busy="true"], input[type="submit"][aria-busy="true"], input[type="reset"][aria-busy="true"])::after {
673
+ border: .09em solid currentColor; border-radius: 50%; background: radial-gradient(circle, currentColor 0 .1em, transparent .12em), conic-gradient(currentColor, transparent 45%, currentColor); box-shadow: 0 0 0 .1em rgb(var(--retro-primary-rgb) / .2), 0 0 .45em rgb(var(--retro-accent-rgb) / .6); clip-path: circle(50%); animation: retro-spin 1.08s linear infinite;
674
+ }
675
+
446
676
  @media (prefers-reduced-motion: reduce) {
447
677
  [data-ui="retrofuturism"] *, [data-ui="retrofuturism"] *::before, [data-ui="retrofuturism"] *::after { scroll-behavior: auto !important; transition-duration: 1ms !important; animation-duration: 1ms !important; animation-iteration-count: 1 !important; }
448
678
  }
@@ -450,7 +680,7 @@
450
680
  [data-ui="retrofuturism"] { --retro-border-alpha: 1; --retro-focus-alpha: .75; }
451
681
  }
452
682
  @media (forced-colors: active) {
453
- [data-ui="retrofuturism"] * { forced-color-adjust: auto; }
683
+ @supports (forced-color-adjust: auto) { [data-ui="retrofuturism"] * { forced-color-adjust: auto; } }
454
684
  [data-ui="retrofuturism"] :where(:focus-visible) { outline: 3px solid CanvasText; }
455
685
  }
456
686
  @media print {