@riverbankcms/sdk 0.76.0 → 0.77.1

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 (151) hide show
  1. package/dist/{PreviewEditorSidebar-X2HWXFOL.mjs → PreviewEditorSidebar-DVUG7GK4.mjs} +1019 -442
  2. package/dist/{PreviewEditorUI-AQXIXPOH.mjs → PreviewEditorUI-P7RN4CDS.mjs} +2 -2
  3. package/dist/SdkPreviewModeRuntime-KLPX47SE.mjs +8 -0
  4. package/dist/_dts/ai/src/contracts/proposals.d.ts +538 -20
  5. package/dist/_dts/api/src/contentRuntime.d.ts +5 -0
  6. package/dist/_dts/api/src/siteAssets.d.ts +1 -0
  7. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +26 -2
  8. package/dist/_dts/block-form/src/blockDraftSaveability.d.ts +28 -0
  9. package/dist/_dts/block-form/src/client/index.d.ts +2 -2
  10. package/dist/_dts/block-form/src/index.d.ts +2 -1
  11. package/dist/_dts/block-form/src/widgets/DateField/dateFieldSchema.d.ts +1 -1
  12. package/dist/_dts/block-form/src/widgets/DateTimeField/dateTimeFieldSchema.d.ts +1 -1
  13. package/dist/_dts/block-form/src/widgets/TimeField/timeFieldSchema.d.ts +1 -1
  14. package/dist/_dts/blocks/src/PageRenderer.d.ts +10 -10
  15. package/dist/_dts/blocks/src/client/site-chrome.d.ts +22 -0
  16. package/dist/_dts/blocks/src/customBlockRegistry.d.ts +57 -0
  17. package/dist/_dts/blocks/src/index.d.ts +2 -0
  18. package/dist/_dts/blocks/src/system/blocks/faq.d.ts +20 -2
  19. package/dist/_dts/blocks/src/system/blocks/feature-cards.d.ts +25 -0
  20. package/dist/_dts/blocks/src/system/blocks/index.d.ts +2 -0
  21. package/dist/_dts/blocks/src/system/blocks/intro.d.ts +24 -0
  22. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +3 -34
  23. package/dist/_dts/blocks/src/system/blocks/site-header.d.ts +2 -2
  24. package/dist/_dts/blocks/src/system/constants/blockKinds.d.ts +1 -1
  25. package/dist/_dts/blocks/src/system/fields/aspectRatio.d.ts +30 -0
  26. package/dist/_dts/blocks/src/system/fields/boxStyles.d.ts +4 -1
  27. package/dist/_dts/blocks/src/system/fields/ctas.d.ts +7 -0
  28. package/dist/_dts/blocks/src/system/manifest/fieldValidation/index.d.ts +16 -2
  29. package/dist/_dts/blocks/src/system/node/validation-constants.d.ts +1 -1
  30. package/dist/_dts/blocks/src/system/runtime/components/multi-step/runtimeFormValidation.d.ts +28 -0
  31. package/dist/_dts/blocks/src/system/runtime/nodes/accordion.d.ts +2 -0
  32. package/dist/_dts/blocks/src/system/runtime/nodes/accordion.server.d.ts +2 -0
  33. package/dist/_dts/blocks/src/system/runtime/nodes/accordionIconTreatment.d.ts +5 -0
  34. package/dist/_dts/blocks/src/system/transforms/registry/layout.d.ts +5 -4
  35. package/dist/_dts/blocks/src/system/transforms/typed.d.ts +2 -1
  36. package/dist/_dts/content-editor/src/controller/EntryControllerProvider.d.ts +2 -0
  37. package/dist/_dts/content-editor/src/hooks/blockDraftLifecycle.d.ts +48 -0
  38. package/dist/_dts/content-editor/src/hooks/invalidBlockSelectors.d.ts +4 -0
  39. package/dist/_dts/content-editor/src/hooks/publishability.d.ts +47 -0
  40. package/dist/_dts/content-editor/src/index.d.ts +1 -0
  41. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +20 -0
  42. package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +2 -1
  43. package/dist/_dts/editor-blocks/src/block-editor/SortableBlockItem.d.ts +2 -1
  44. package/dist/_dts/editor-blocks/src/block-editor/customBlockRegistry.d.ts +2 -0
  45. package/dist/_dts/editor-blocks/src/block-editor/sdkBlockMerger.d.ts +9 -37
  46. package/dist/_dts/editor-blocks/src/index.d.ts +2 -2
  47. package/dist/_dts/preview-next/src/client/index.d.ts +3 -0
  48. package/dist/_dts/preview-next/src/client/layout/PreviewLayoutContext.d.ts +5 -1
  49. package/dist/_dts/preview-next/src/client/preview/PreviewDesignCoordinatorContext.d.ts +20 -0
  50. package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +7 -2
  51. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +7 -2
  52. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +7 -2
  53. package/dist/_dts/preview-next/src/client/preview/PreviewThemedSiteDocument.d.ts +18 -0
  54. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +20 -3
  55. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.d.ts +6 -1
  56. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +14 -4
  57. package/dist/_dts/preview-next/src/client/preview/previewDesignCoordinator.d.ts +73 -0
  58. package/dist/_dts/preview-next/src/client/preview/siteChromeLookRows.d.ts +12 -4
  59. package/dist/_dts/preview-next/src/client/preview/siteStylePreviewPlanner.d.ts +46 -0
  60. package/dist/_dts/preview-next/src/client/preview/styleConfiguratorSnapshot.d.ts +6 -1
  61. package/dist/_dts/preview-next/src/client/preview/typographySelectionInput.d.ts +14 -0
  62. package/dist/_dts/preview-next/src/client/sdk/SdkPreviewModeRuntime.d.ts +1 -1
  63. package/dist/_dts/sdk/src/cli/commands/style.d.ts +8 -0
  64. package/dist/_dts/sdk/src/client/management/types.d.ts +6 -1
  65. package/dist/_dts/sdk/src/client/types.d.ts +9 -0
  66. package/dist/_dts/sdk/src/client.d.ts +1 -1
  67. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +35 -0
  68. package/dist/_dts/sdk/src/contracts/theme.d.ts +1 -1
  69. package/dist/_dts/sdk/src/index.d.ts +2 -1
  70. package/dist/_dts/sdk/src/public-api/contracts.d.ts +5 -0
  71. package/dist/_dts/sdk/src/rendering/components/Layout.d.ts +2 -2
  72. package/dist/_dts/sdk/src/types/block-kinds.d.ts +1 -1
  73. package/dist/_dts/sdk/src/version.d.ts +1 -1
  74. package/dist/_dts/site-commands/src/commands.d.ts +15 -0
  75. package/dist/_dts/theme-core/src/buttons/personalities/earth-pill.d.ts +16 -0
  76. package/dist/_dts/theme-core/src/buttons/personalities/index.d.ts +11 -0
  77. package/dist/_dts/theme-core/src/fonts/types.d.ts +1 -1
  78. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  79. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +72 -27
  80. package/dist/_dts/theme-core/src/palette/variants/index.d.ts +15 -0
  81. package/dist/_dts/theme-core/src/palette/variants/warm-neutral.d.ts +16 -0
  82. package/dist/_dts/theme-core/src/schema.d.ts +306 -30
  83. package/dist/_dts/theme-core/src/site-styles/appearancePresetCatalog.d.ts +81 -0
  84. package/dist/_dts/theme-core/src/site-styles/appearancePresetTypes.d.ts +6 -4
  85. package/dist/_dts/theme-core/src/site-styles/blockAppearancePresets.d.ts +81 -0
  86. package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +119 -3
  87. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +4 -4
  88. package/dist/_dts/theme-core/src/site-styles/footerLooks.d.ts +13 -0
  89. package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +4 -2
  90. package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +402 -13
  91. package/dist/_dts/theme-core/src/site-styles/headerOpeningSection.d.ts +6 -0
  92. package/dist/_dts/theme-core/src/site-styles/index.d.ts +2 -0
  93. package/dist/_dts/theme-core/src/site-styles/persistedIdParseResult.d.ts +9 -0
  94. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +20 -4
  95. package/dist/_dts/theme-core/src/site-styles/types.d.ts +74 -2
  96. package/dist/_dts/theme-core/src/site-styles/typographyPresets.d.ts +189 -0
  97. package/dist/{chunk-Q4OLG66B.mjs → chunk-2SPENC5M.mjs} +476 -153
  98. package/dist/{chunk-Z7JLNTJR.mjs → chunk-6SMUFTXD.mjs} +2 -1
  99. package/dist/{chunk-TW2Y4RR5.mjs → chunk-IENWFSLO.mjs} +365 -52
  100. package/dist/{chunk-LYI7TEMH.mjs → chunk-KWJPDZH2.mjs} +4682 -1463
  101. package/dist/{chunk-V5VORNEJ.mjs → chunk-ZYEJLCTN.mjs} +1 -1
  102. package/dist/cli/index.mjs +2314 -267
  103. package/dist/client/{accordion-2YHIBOZH.mjs → accordion-RZMQSYLR.mjs} +1 -1
  104. package/dist/client/{bookingForm-35IBDWAS.mjs → bookingForm-NF4ASVNV.mjs} +2 -2
  105. package/dist/client/bookings.mjs +92 -0
  106. package/dist/client/{carousel-K6XG7NZQ.mjs → carousel-LDX47ZIK.mjs} +1 -1
  107. package/dist/client/{cart-HCFYUTTU.mjs → cart-RGXDS5F4.mjs} +3 -3
  108. package/dist/client/{checkout-J3U4XR7K.mjs → checkout-P7WWSNNY.mjs} +3 -3
  109. package/dist/client/{chunk-BOIHIU7E.mjs → chunk-E2TDNXCL.mjs} +1 -1
  110. package/dist/client/{chunk-PFBX3IQL.mjs → chunk-GMVTOKYG.mjs} +2 -2
  111. package/dist/client/{chunk-FGUIVT2B.mjs → chunk-JNC7CGHX.mjs} +1 -1
  112. package/dist/client/{chunk-SNSWVZEP.mjs → chunk-L3DNHIJX.mjs} +3 -3
  113. package/dist/client/{chunk-7UOSCYY4.mjs → chunk-R56FQ3RR.mjs} +92 -0
  114. package/dist/client/{chunk-J227A3CQ.mjs → chunk-UFSWADAO.mjs} +1 -1
  115. package/dist/client/client.mjs +3579 -1351
  116. package/dist/client/{courseRegistration-ZBXS7VGI.mjs → courseRegistration-7F65K5ZR.mjs} +2 -2
  117. package/dist/client/{eventCalendar-EQQZHJBA.mjs → eventCalendar-GLSC5KTL.mjs} +4 -4
  118. package/dist/client/{eventCombined-JCFTGBFQ.mjs → eventCombined-ZHK4WKUR.mjs} +4 -4
  119. package/dist/client/{eventDetails-HLUTQSYY.mjs → eventDetails-E3PJYBIN.mjs} +4 -4
  120. package/dist/client/{eventListing-FG4MICVB.mjs → eventListing-EMS3WC3E.mjs} +4 -4
  121. package/dist/client/{eventRegistration-GUEB7LBT.mjs → eventRegistration-NZOTVNPI.mjs} +4 -4
  122. package/dist/client/{form-YQEW4YIT.mjs → form-ETFZFATW.mjs} +1 -1
  123. package/dist/client/{headerSection-GTR3TTRM.mjs → headerSection-4LBP7ULT.mjs} +2 -2
  124. package/dist/client/hooks.mjs +2226 -402
  125. package/dist/client/{locationMap-SPC7VGUH.mjs → locationMap-5M655YSJ.mjs} +1 -1
  126. package/dist/client/{newsletterForm-4IW5BLID.mjs → newsletterForm-QOUYW44O.mjs} +1 -1
  127. package/dist/client/{productDetail-KP5H2WJO.mjs → productDetail-O4DOCWQG.mjs} +3 -3
  128. package/dist/client/{productList-3M3M72XZ.mjs → productList-A5RO5WIS.mjs} +3 -3
  129. package/dist/client/rendering/client.mjs +198 -32
  130. package/dist/client/rendering/islands.mjs +18 -18
  131. package/dist/client/rendering.mjs +3573 -1355
  132. package/dist/client/{shop-ACQKVGOM.mjs → shop-L4MZH4I2.mjs} +3 -3
  133. package/dist/preview-next/client/runtime.mjs +4 -4
  134. package/dist/{sdk-runtime-K7HNB4U2.mjs → sdk-runtime-6UT2S7KZ.mjs} +5 -5
  135. package/dist/server/components.mjs +3497 -1333
  136. package/dist/server/config-validation.mjs +2229 -402
  137. package/dist/server/config.mjs +2229 -402
  138. package/dist/server/data.mjs +2226 -402
  139. package/dist/server/index.mjs +31 -2
  140. package/dist/server/next.mjs +3503 -1329
  141. package/dist/server/page-converter.mjs +2213 -403
  142. package/dist/server/prebuild.mjs +1 -1
  143. package/dist/server/rendering/server.mjs +3497 -1333
  144. package/dist/server/rendering.mjs +3497 -1333
  145. package/dist/server/routing.mjs +2250 -363
  146. package/dist/server/server.mjs +2243 -400
  147. package/dist/server/theme-bridge.mjs +1313 -1035
  148. package/dist/server/theme.mjs +237 -12
  149. package/dist/styles/index.css +1081 -1028
  150. package/package.json +1 -1
  151. package/dist/SdkPreviewModeRuntime-ZQNDCASH.mjs +0 -8
@@ -532,6 +532,97 @@ var confidentChip = defineButtonPersonality({
532
532
  }
533
533
  });
534
534
 
535
+ // ../theme-core/src/buttons/personalities/earth-pill.ts
536
+ var earthPill = defineButtonPersonality({
537
+ id: "earth-pill",
538
+ name: "Earth Pill",
539
+ description: "Compact terracotta pills with quiet primary-coloured ghost CTAs.",
540
+ tags: { tone: "classic", energy: "calm", motion: "subtle", era: "organic" },
541
+ buttonSystem: {
542
+ global: {
543
+ cornerStyle: "pill",
544
+ shadow: "low",
545
+ textTransform: "none",
546
+ fontWeight: 500,
547
+ borderWidth: 1,
548
+ hoverTransform: "lift",
549
+ hoverColor: "none",
550
+ typography: "body",
551
+ paddingPreset: "default"
552
+ },
553
+ sizes: {
554
+ sm: { padding: "0.5rem 1rem", fontSize: "text-sm" },
555
+ md: { padding: "0.625rem 1.35rem" },
556
+ lg: { padding: "0.75rem 1.65rem", fontSize: "text-lg" },
557
+ xl: { padding: "0.875rem 2rem", fontSize: "text-xl" }
558
+ },
559
+ variants: [
560
+ {
561
+ id: "primary",
562
+ name: "Primary",
563
+ enabled: true,
564
+ priority: 1,
565
+ background: { type: "solid", colorToken: "primary" },
566
+ textColorToken: "primaryForeground",
567
+ borderRadius: "rounded-full",
568
+ shadow: { elevation: "low", softness: "soft", position: "bottom" },
569
+ effects: {
570
+ hover: [
571
+ { effectId: "lift", options: { translateY: "-1px" } },
572
+ { effectId: "background-on-hover", options: { colorToken: "accent" } }
573
+ ],
574
+ active: [{ effectId: "scale-down", options: { scale: "0.98" } }]
575
+ }
576
+ },
577
+ {
578
+ id: "secondary",
579
+ name: "Secondary",
580
+ enabled: true,
581
+ priority: 2,
582
+ background: { type: "transparent" },
583
+ textColorToken: "primary",
584
+ borderRadius: "rounded-full",
585
+ border: { widthClass: "border", colorToken: "primary" },
586
+ effects: {
587
+ hover: [{ effectId: "background-on-hover", options: { colorToken: "muted" } }]
588
+ }
589
+ },
590
+ {
591
+ id: "outline",
592
+ name: "Outline",
593
+ enabled: true,
594
+ priority: 3,
595
+ background: { type: "transparent" },
596
+ textColorToken: "text",
597
+ borderRadius: "rounded-full",
598
+ border: { widthClass: "border", colorToken: "border" },
599
+ effects: {
600
+ hover: [{ effectId: "background-on-hover", options: { colorToken: "surfaceAlt" } }]
601
+ }
602
+ },
603
+ {
604
+ id: "ghost",
605
+ name: "Ghost",
606
+ enabled: true,
607
+ priority: 3,
608
+ background: { type: "transparent" },
609
+ textColorToken: "primary",
610
+ borderRadius: "rounded-full",
611
+ shadow: { elevation: "none", softness: null, position: "bottom" },
612
+ sizes: {
613
+ sm: { padding: "0.25rem 0", fontSize: "text-sm" },
614
+ md: { padding: "0.375rem 0" },
615
+ lg: { padding: "0.5rem 0", fontSize: "text-lg" },
616
+ xl: { padding: "0.625rem 0", fontSize: "text-xl" }
617
+ },
618
+ effects: {
619
+ hover: [{ effectId: "opacity-reduce", options: { reduction: 25 } }]
620
+ }
621
+ }
622
+ ]
623
+ }
624
+ });
625
+
535
626
  // ../theme-core/src/buttons/personalities/editorial-link.ts
536
627
  var editorialLink = defineButtonPersonality({
537
628
  id: "editorial-link",
@@ -990,6 +1081,7 @@ var softPill = defineButtonPersonality({
990
1081
  // ../theme-core/src/buttons/personalities/index.ts
991
1082
  var buttonPersonalities = [
992
1083
  softPill,
1084
+ earthPill,
993
1085
  confidentChip,
994
1086
  editorialLink,
995
1087
  pebble,
@@ -1711,6 +1803,47 @@ var eyebrowTreatmentValues = [
1711
1803
  "pill-bounce",
1712
1804
  "accent-pill-bounce"
1713
1805
  ];
1806
+ var visibleHeadingDecorationFamilyValues = [
1807
+ "organic-squiggle",
1808
+ "short-center-rule"
1809
+ ];
1810
+ var visibleHeadingDecorationPlacementValues = [
1811
+ "after-heading",
1812
+ "between-heading-and-body",
1813
+ "under-centered-heading"
1814
+ ];
1815
+ var headingDecorationOverrideValues = [
1816
+ "site-default",
1817
+ "on",
1818
+ "off"
1819
+ ];
1820
+ var headingDecorationColorTokenValues = [
1821
+ "text",
1822
+ "primary",
1823
+ "secondary",
1824
+ "accent",
1825
+ "border",
1826
+ "muted"
1827
+ ];
1828
+ var accordionIconSetValues = [
1829
+ "plus",
1830
+ "chevron",
1831
+ "caret",
1832
+ "minimal-cross"
1833
+ ];
1834
+ var accordionIconColorTokenValues = [
1835
+ "text",
1836
+ "muted",
1837
+ "primary",
1838
+ "secondary",
1839
+ "accent",
1840
+ "current"
1841
+ ];
1842
+ var accordionIconMotionValues = [
1843
+ "none",
1844
+ "rotate",
1845
+ "swap"
1846
+ ];
1714
1847
 
1715
1848
  // ../theme-core/src/utils/tokenOrColor.ts
1716
1849
  import { z as z15 } from "zod";
@@ -1761,8 +1894,19 @@ var headingTypographyStyleSchema = typographyStyleSchema.extend({
1761
1894
  colorToken: themeColorTokenSchema.nullable().optional()
1762
1895
  });
1763
1896
  var proseLinkUnderlineStyleSchema = z16.enum(["solid", "dotted", "dashed"]);
1764
- var proseLinkUnderlineThicknessSchema = z16.enum(["auto", "fromFont", "thin", "medium", "thick"]);
1765
- var proseLinkUnderlineOffsetSchema = z16.enum(["auto", "tight", "normal", "loose"]);
1897
+ var proseLinkUnderlineThicknessSchema = z16.enum([
1898
+ "auto",
1899
+ "fromFont",
1900
+ "thin",
1901
+ "medium",
1902
+ "thick"
1903
+ ]);
1904
+ var proseLinkUnderlineOffsetSchema = z16.enum([
1905
+ "auto",
1906
+ "tight",
1907
+ "normal",
1908
+ "loose"
1909
+ ]);
1766
1910
  var proseLinkStyleSchema = z16.object({
1767
1911
  colorToken: themeColorTokenSchema.optional(),
1768
1912
  hoverColorToken: themeColorTokenSchema.optional(),
@@ -1773,7 +1917,14 @@ var proseLinkStyleSchema = z16.object({
1773
1917
  underlineThickness: proseLinkUnderlineThicknessSchema.optional(),
1774
1918
  underlineOffset: proseLinkUnderlineOffsetSchema.optional()
1775
1919
  });
1776
- var semanticSpacingSchema = z16.enum(["none", "compact", "cozy", "medium", "comfortable", "spacious"]);
1920
+ var semanticSpacingSchema = z16.enum([
1921
+ "none",
1922
+ "compact",
1923
+ "cozy",
1924
+ "medium",
1925
+ "comfortable",
1926
+ "spacious"
1927
+ ]);
1777
1928
  var boxRoundedSchema = z16.enum(["none", "sm", "md", "lg", "xl", "2xl", "full"]);
1778
1929
  var boxBackgroundOverlaySchema = z16.object({
1779
1930
  type: z16.enum(["none", "color", "gradient"]).nullable().optional(),
@@ -1795,12 +1946,36 @@ var boxBackgroundSchema = z16.object({
1795
1946
  textColor: tokenOrCssColorValueSchema.nullable().optional(),
1796
1947
  headingColor: tokenOrCssColorValueSchema.nullable().optional()
1797
1948
  });
1949
+ var noHeadingDecorationSchema = z16.object({
1950
+ family: z16.literal("none"),
1951
+ placement: z16.literal("none")
1952
+ });
1953
+ var visibleHeadingDecorationSchema = z16.object({
1954
+ family: z16.enum(visibleHeadingDecorationFamilyValues),
1955
+ placement: z16.enum(visibleHeadingDecorationPlacementValues),
1956
+ colorToken: z16.enum(headingDecorationColorTokenValues).optional()
1957
+ });
1958
+ var headingDecorationSchema = z16.union([
1959
+ noHeadingDecorationSchema,
1960
+ visibleHeadingDecorationSchema
1961
+ ]);
1962
+ var accordionIconTreatmentSchema = z16.object({
1963
+ iconSet: z16.enum(accordionIconSetValues),
1964
+ colorToken: z16.enum(accordionIconColorTokenValues),
1965
+ openColorToken: z16.enum(accordionIconColorTokenValues).optional(),
1966
+ motion: z16.enum(accordionIconMotionValues)
1967
+ });
1798
1968
  var sectionStylesOverrideSchema = z16.object({
1799
1969
  background: boxBackgroundSchema.nullable().optional(),
1800
1970
  spacing: semanticSpacingSchema.nullable().optional(),
1801
1971
  minHeight: z16.enum(["none", "banner", "hero", "immersive"]).nullable().optional(),
1802
1972
  tileTreatment: z16.enum(tileTreatmentValues).nullable().optional(),
1803
- eyebrowTreatment: z16.enum(eyebrowTreatmentValues).nullable().optional()
1973
+ eyebrowTreatment: z16.enum(eyebrowTreatmentValues).nullable().optional(),
1974
+ headingDecoration: headingDecorationSchema.nullable().optional(),
1975
+ // Author-level override consumed by later block/editor rendering phases.
1976
+ // Keeping it in section styles lets existing block save APIs persist it.
1977
+ headingDecorationOverride: z16.enum(headingDecorationOverrideValues).nullable().optional(),
1978
+ accordionIconTreatment: accordionIconTreatmentSchema.nullable().optional()
1804
1979
  });
1805
1980
  var containerStylesOverrideSchema = z16.object({
1806
1981
  background: boxBackgroundSchema.nullable().optional(),
@@ -1893,9 +2068,17 @@ var inputStyle = z16.object({
1893
2068
  focus: z16.enum(["glow", "ring", "underline"]),
1894
2069
  label: z16.enum(["inside", "above"])
1895
2070
  });
1896
- var headerVariant = z16.enum(["classic", "centered", "transparent", "floating", "editorial"]);
2071
+ var headerVariant = z16.enum(["classic", "centered", "transparent", "floating"]);
1897
2072
  var headerPositioning = z16.enum(["static", "sticky", "fixed"]);
1898
- var headerNavStyle = z16.enum(["minimal", "underline", "underline-grow", "capsule", "scale", "frosted", "solid"]);
2073
+ var headerNavStyle = z16.enum([
2074
+ "minimal",
2075
+ "underline",
2076
+ "underline-grow",
2077
+ "capsule",
2078
+ "scale",
2079
+ "frosted",
2080
+ "solid"
2081
+ ]);
1899
2082
  var navFontWeight = z16.enum(["regular", "medium", "semibold", "bold"]);
1900
2083
  var headerMaxWidth = z16.enum(["container", "full"]);
1901
2084
  var headerContainerSchema = z16.object({
@@ -1943,8 +2126,22 @@ var dropdownStyleSchema = z16.object({
1943
2126
  textSize: z16.enum(["xs", "sm", "base", "lg"]).optional()
1944
2127
  // optional = no override (browser default)
1945
2128
  }).optional();
1946
- var headerCtaGapSchema = z16.enum(["none", "tight", "compact", "default", "relaxed", "spacious"]);
1947
- var headerCtaTreatmentSchema = z16.enum(["default", "primary", "secondary", "inverted", "outline", "ghost"]);
2129
+ var headerCtaGapSchema = z16.enum([
2130
+ "none",
2131
+ "tight",
2132
+ "compact",
2133
+ "default",
2134
+ "relaxed",
2135
+ "spacious"
2136
+ ]);
2137
+ var headerCtaTreatmentSchema = z16.enum([
2138
+ "default",
2139
+ "primary",
2140
+ "secondary",
2141
+ "inverted",
2142
+ "outline",
2143
+ "ghost"
2144
+ ]);
1948
2145
  var navContainerSchema = z16.object({
1949
2146
  type: z16.enum(["none", "pill", "glass"]).default("none"),
1950
2147
  tint: z16.string().nullable().optional(),
@@ -1999,7 +2196,14 @@ var footerMaxWidth = z16.enum(["container", "full"]);
1999
2196
  var footerMode = z16.enum(["default", "blocks", "default+blocks", "none"]);
2000
2197
  var footerNavLayoutMode = z16.enum(["stack", "inline", "inline-wrap"]);
2001
2198
  var footerNavLayoutAlign = z16.enum(["start", "center", "end", "space-between"]);
2002
- var footerSpacing = z16.enum(["none", "tight", "compact", "default", "relaxed", "spacious"]);
2199
+ var footerSpacing = z16.enum([
2200
+ "none",
2201
+ "tight",
2202
+ "compact",
2203
+ "default",
2204
+ "relaxed",
2205
+ "spacious"
2206
+ ]);
2003
2207
  var footerLogoPlacement = z16.enum(["left", "right", "above", "below"]);
2004
2208
  var footerLogoSize = z16.enum(["sm", "md", "lg", "xl"]);
2005
2209
  var footerLogoMaxHeight = z16.enum(["sm", "md", "lg", "xl"]);
@@ -2064,7 +2268,12 @@ var footerSchema = z16.object({
2064
2268
  logo: footerLogoSchema.optional(),
2065
2269
  bottomBar: footerBottomBarSchema.optional()
2066
2270
  });
2067
- var containerPaddingPresetSchema = z16.enum(["tight", "compact", "default", "relaxed"]);
2271
+ var containerPaddingPresetSchema = z16.enum([
2272
+ "tight",
2273
+ "compact",
2274
+ "default",
2275
+ "relaxed"
2276
+ ]);
2068
2277
  var layoutSchema = z16.object({
2069
2278
  containerPadding: z16.object({
2070
2279
  mobile: containerPaddingPresetSchema.optional(),
@@ -2072,8 +2281,24 @@ var layoutSchema = z16.object({
2072
2281
  desktop: containerPaddingPresetSchema.optional()
2073
2282
  }).optional()
2074
2283
  }).optional();
2075
- var heroTypographySizeSchema = z16.enum(["sm", "base", "lg", "xl", "2xl", "3xl", "4xl", "5xl", "6xl", "editorial"]);
2076
- var heroTypographyLineHeightSchema = z16.enum(["tight", "snug", "normal", "relaxed"]);
2284
+ var heroTypographySizeSchema = z16.enum([
2285
+ "sm",
2286
+ "base",
2287
+ "lg",
2288
+ "xl",
2289
+ "2xl",
2290
+ "3xl",
2291
+ "4xl",
2292
+ "5xl",
2293
+ "6xl",
2294
+ "editorial"
2295
+ ]);
2296
+ var heroTypographyLineHeightSchema = z16.enum([
2297
+ "tight",
2298
+ "snug",
2299
+ "normal",
2300
+ "relaxed"
2301
+ ]);
2077
2302
  var heroResponsiveTypographySchema = z16.object({
2078
2303
  headlineSize: heroTypographySizeSchema.optional(),
2079
2304
  headlineLineHeight: heroTypographyLineHeightSchema.optional(),
@@ -4792,9 +5017,9 @@ var containerResponsiveThemeCss = `/*
4792
5017
  }
4793
5018
 
4794
5019
  @layer rb-theme {
4795
- /* Fallback defaults so preview doesn't look broken before ThemeScope injects vars */
4796
- :root {
4797
- /* --tb-primary: 17 24 39;
5020
+ /* Fallback defaults so preview doesn't look broken before ThemeScope injects vars */
5021
+ :root {
5022
+ /* --tb-primary: 17 24 39;
4798
5023
  --tb-text: 17 24 39;
4799
5024
  --tb-muted: 107 114 128;
4800
5025
  --tb-bg: 255 255 255;
@@ -4816,159 +5041,164 @@ var containerResponsiveThemeCss = `/*
4816
5041
 
4817
5042
  --motion-duration: 180ms;
4818
5043
  --motion-ease: cubic-bezier(.2,.8,.2,1); */
4819
- }
5044
+ }
4820
5045
 
4821
- /* -------------------------------------------------------------------------- */
4822
- /* Shared: Modal */
4823
- /* -------------------------------------------------------------------------- */
5046
+ /* -------------------------------------------------------------------------- */
5047
+ /* Shared: Modal */
5048
+ /* -------------------------------------------------------------------------- */
4824
5049
 
4825
- :where(.theme-scope) .rb-modal-overlay {
4826
- position: fixed;
4827
- inset: 0;
4828
- z-index: var(--rb-modal-z-index, 20000);
4829
- display: grid;
4830
- place-items: center;
4831
- padding: 1rem;
4832
- /* Keep a hard fallback so the overlay never becomes transparent due to invalid vars. */
4833
- background-color: rgba(0, 0, 0, 0.6);
4834
- background: var(--rb-modal-overlay-bg, rgba(0, 0, 0, 0.6));
4835
- }
5050
+ :where(.theme-scope) .rb-modal-overlay {
5051
+ position: fixed;
5052
+ inset: 0;
5053
+ z-index: var(--rb-modal-z-index, 20000);
5054
+ display: grid;
5055
+ place-items: center;
5056
+ padding: 1rem;
5057
+ /* Keep a hard fallback so the overlay never becomes transparent due to invalid vars. */
5058
+ background-color: rgba(0, 0, 0, 0.6);
5059
+ background: var(--rb-modal-overlay-bg, rgba(0, 0, 0, 0.6));
5060
+ }
4836
5061
 
4837
- :where(.theme-scope) .rb-modal {
4838
- width: min(var(--rb-modal-max-width, 560px), 100%);
4839
- background: var(--rb-modal-bg, rgb(var(--tb-surface)));
4840
- border: 1px solid var(--rb-modal-border, rgb(var(--tb-border)));
4841
- border-radius: var(--rb-modal-radius, var(--radius-card));
4842
- box-shadow: var(--rb-modal-shadow, var(--shadow-lg, var(--shadow-elev)));
4843
- }
5062
+ :where(.theme-scope) .rb-modal {
5063
+ width: min(var(--rb-modal-max-width, 560px), 100%);
5064
+ background: var(--rb-modal-bg, rgb(var(--tb-surface)));
5065
+ border: 1px solid var(--rb-modal-border, rgb(var(--tb-border)));
5066
+ border-radius: var(--rb-modal-radius, var(--radius-card));
5067
+ box-shadow: var(--rb-modal-shadow, var(--shadow-lg, var(--shadow-elev)));
5068
+ }
4844
5069
 
4845
- :where(.theme-scope) .rb-modal__header {
4846
- display: flex;
4847
- align-items: center;
4848
- justify-content: space-between;
4849
- gap: 1rem;
4850
- padding: 1rem 1rem 0.75rem;
4851
- border-bottom: 1px solid var(--rb-modal-border, rgb(var(--tb-border)));
4852
- }
5070
+ :where(.theme-scope) .rb-modal__header {
5071
+ display: flex;
5072
+ align-items: center;
5073
+ justify-content: space-between;
5074
+ gap: 1rem;
5075
+ padding: 1rem 1rem 0.75rem;
5076
+ border-bottom: 1px solid var(--rb-modal-border, rgb(var(--tb-border)));
5077
+ }
4853
5078
 
4854
- :where(.theme-scope) .rb-modal__title {
4855
- margin: 0;
4856
- font-family: var(--font-heading);
4857
- font-size: 1.0625rem;
4858
- font-weight: 600;
4859
- color: rgb(var(--tb-text));
4860
- }
5079
+ :where(.theme-scope) .rb-modal__title {
5080
+ margin: 0;
5081
+ font-family: var(--font-heading);
5082
+ font-size: 1.0625rem;
5083
+ font-weight: 600;
5084
+ color: rgb(var(--tb-text));
5085
+ }
4861
5086
 
4862
- :where(.theme-scope) .rb-modal__close {
4863
- background: transparent;
4864
- border: none;
4865
- width: 2.25rem;
4866
- height: 2.25rem;
4867
- padding: 0;
4868
- line-height: 1;
4869
- color: rgb(var(--tb-mutedText));
4870
- cursor: pointer;
4871
- display: grid;
4872
- place-items: center;
4873
- border-radius: var(--radius-control);
4874
- }
5087
+ :where(.theme-scope) .rb-modal__close {
5088
+ background: transparent;
5089
+ border: none;
5090
+ width: 2.25rem;
5091
+ height: 2.25rem;
5092
+ padding: 0;
5093
+ line-height: 1;
5094
+ color: rgb(var(--tb-mutedText));
5095
+ cursor: pointer;
5096
+ display: grid;
5097
+ place-items: center;
5098
+ border-radius: var(--radius-control);
5099
+ }
4875
5100
 
4876
- :where(.theme-scope) .rb-modal__close:hover {
4877
- color: rgb(var(--tb-text));
4878
- background: rgba(var(--tb-border), 0.2);
4879
- }
5101
+ :where(.theme-scope) .rb-modal__close:hover {
5102
+ color: rgb(var(--tb-text));
5103
+ background: rgba(var(--tb-border), 0.2);
5104
+ }
4880
5105
 
4881
- :where(.theme-scope) .rb-modal__close:focus-visible {
4882
- outline: none;
4883
- box-shadow: 0 0 0 3px rgba(var(--tb-primary), 0.15);
4884
- }
5106
+ :where(.theme-scope) .rb-modal__close:focus-visible {
5107
+ outline: none;
5108
+ box-shadow: 0 0 0 3px rgba(var(--tb-primary), 0.15);
5109
+ }
4885
5110
 
4886
- :where(.theme-scope) .rb-modal__body {
4887
- padding: 0.875rem 1rem 1rem;
4888
- color: rgb(var(--tb-text));
4889
- font-size: 0.9375rem;
4890
- line-height: 1.45;
4891
- }
5111
+ :where(.theme-scope) .rb-modal__body {
5112
+ padding: 0.875rem 1rem 1rem;
5113
+ color: rgb(var(--tb-text));
5114
+ font-size: 0.9375rem;
5115
+ line-height: 1.45;
5116
+ }
4892
5117
 
4893
- /* -------------------------------------------------------------------------- */
4894
- /* Header: Mobile nav overlay transitions */
4895
- /* -------------------------------------------------------------------------- */
5118
+ /* -------------------------------------------------------------------------- */
5119
+ /* Header: Mobile nav overlay transitions */
5120
+ /* -------------------------------------------------------------------------- */
4896
5121
 
4897
- /* Keep the overlay in the DOM so we can transition opacity/transform.
5122
+ /* Keep the overlay in the DOM so we can transition opacity/transform.
4898
5123
  JS toggles \`aria-hidden\` + \`inert\` (via enhancer), and CSS uses pointer-events
4899
5124
  to prevent interaction while closed. */
4900
- .nav-mobile-overlay {
4901
- pointer-events: none;
4902
- /* Prevent transformed children (panel) from creating viewport scrollbars
5125
+ .nav-mobile-overlay {
5126
+ pointer-events: none;
5127
+ /* Prevent transformed children (panel) from creating viewport scrollbars
4903
5128
  during enter/exit transitions. */
4904
- overflow: hidden;
4905
- }
4906
-
4907
- .nav-mobile-overlay[aria-hidden="false"] {
4908
- pointer-events: auto;
4909
- }
5129
+ overflow: hidden;
5130
+ }
4910
5131
 
4911
- .nav-mobile-overlay .nav-mobile-backdrop {
4912
- opacity: 0;
4913
- transition: opacity var(--motion-duration, 180ms) var(--motion-ease, cubic-bezier(.2,.8,.2,1));
4914
- }
5132
+ .nav-mobile-overlay[aria-hidden='false'] {
5133
+ pointer-events: auto;
5134
+ }
4915
5135
 
4916
- .nav-mobile-overlay[aria-hidden="false"] .nav-mobile-backdrop {
4917
- opacity: 1;
4918
- }
5136
+ .nav-mobile-overlay .nav-mobile-backdrop {
5137
+ opacity: 0;
5138
+ transition: opacity var(--motion-duration, 180ms)
5139
+ var(--motion-ease, cubic-bezier(0.2, 0.8, 0.2, 1));
5140
+ }
4919
5141
 
4920
- .nav-mobile-overlay .nav-mobile-panel {
4921
- opacity: 0;
4922
- transform: translate3d(12px, 0, 0);
4923
- overflow-x: hidden;
4924
- transition:
4925
- opacity var(--motion-duration, 180ms) var(--motion-ease, cubic-bezier(.2,.8,.2,1)),
4926
- transform var(--motion-duration, 180ms) var(--motion-ease, cubic-bezier(.2,.8,.2,1));
4927
- will-change: opacity, transform;
4928
- }
5142
+ .nav-mobile-overlay[aria-hidden='false'] .nav-mobile-backdrop {
5143
+ opacity: 1;
5144
+ }
4929
5145
 
4930
- .nav-mobile-overlay[aria-hidden="false"] .nav-mobile-panel {
4931
- opacity: 1;
4932
- transform: translate3d(0, 0, 0);
4933
- }
5146
+ .nav-mobile-overlay .nav-mobile-panel {
5147
+ opacity: 0;
5148
+ transform: translate3d(12px, 0, 0);
5149
+ overflow-x: hidden;
5150
+ transition:
5151
+ opacity var(--motion-duration, 180ms)
5152
+ var(--motion-ease, cubic-bezier(0.2, 0.8, 0.2, 1)),
5153
+ transform var(--motion-duration, 180ms)
5154
+ var(--motion-ease, cubic-bezier(0.2, 0.8, 0.2, 1));
5155
+ will-change: opacity, transform;
5156
+ }
4934
5157
 
4935
- /* -------------------------------------------------------------------------- */
4936
- /* Header: Mobile toggle hamburger -> X */
4937
- /* -------------------------------------------------------------------------- */
5158
+ .nav-mobile-overlay[aria-hidden='false'] .nav-mobile-panel {
5159
+ opacity: 1;
5160
+ transform: translate3d(0, 0, 0);
5161
+ }
4938
5162
 
4939
- .nav-mobile-toggle .nav-mobile-bar {
4940
- transform-origin: center;
4941
- transition:
4942
- transform var(--motion-duration, 180ms) var(--motion-ease, cubic-bezier(.2,.8,.2,1)),
4943
- opacity var(--motion-duration, 180ms) var(--motion-ease, cubic-bezier(.2,.8,.2,1));
4944
- will-change: transform, opacity;
4945
- }
5163
+ /* -------------------------------------------------------------------------- */
5164
+ /* Header: Mobile toggle hamburger -> X */
5165
+ /* -------------------------------------------------------------------------- */
4946
5166
 
4947
- .nav-mobile-toggle[aria-expanded="true"] .nav-mobile-bar-top {
4948
- transform: translateY(6px) rotate(45deg);
4949
- }
5167
+ .nav-mobile-toggle .nav-mobile-bar {
5168
+ transform-origin: center;
5169
+ transition:
5170
+ transform var(--motion-duration, 180ms)
5171
+ var(--motion-ease, cubic-bezier(0.2, 0.8, 0.2, 1)),
5172
+ opacity var(--motion-duration, 180ms)
5173
+ var(--motion-ease, cubic-bezier(0.2, 0.8, 0.2, 1));
5174
+ will-change: transform, opacity;
5175
+ }
4950
5176
 
4951
- .nav-mobile-toggle[aria-expanded="true"] .nav-mobile-bar-middle {
4952
- opacity: 0;
4953
- }
5177
+ .nav-mobile-toggle[aria-expanded='true'] .nav-mobile-bar-top {
5178
+ transform: translateY(6px) rotate(45deg);
5179
+ }
4954
5180
 
4955
- .nav-mobile-toggle[aria-expanded="true"] .nav-mobile-bar-bottom {
4956
- transform: translateY(-6px) rotate(-45deg);
4957
- }
5181
+ .nav-mobile-toggle[aria-expanded='true'] .nav-mobile-bar-middle {
5182
+ opacity: 0;
5183
+ }
4958
5184
 
4959
- @media (prefers-reduced-motion: reduce) {
4960
- .nav-mobile-overlay .nav-mobile-backdrop,
4961
- .nav-mobile-overlay .nav-mobile-panel {
4962
- transition: none;
4963
- transform: none;
5185
+ .nav-mobile-toggle[aria-expanded='true'] .nav-mobile-bar-bottom {
5186
+ transform: translateY(-6px) rotate(-45deg);
4964
5187
  }
4965
5188
 
4966
- .nav-mobile-toggle .nav-mobile-bar {
4967
- transition: none;
5189
+ @media (prefers-reduced-motion: reduce) {
5190
+ .nav-mobile-overlay .nav-mobile-backdrop,
5191
+ .nav-mobile-overlay .nav-mobile-panel {
5192
+ transition: none;
5193
+ transform: none;
5194
+ }
5195
+
5196
+ .nav-mobile-toggle .nav-mobile-bar {
5197
+ transition: none;
5198
+ }
4968
5199
  }
4969
- }
4970
5200
 
4971
- /*
5201
+ /*
4972
5202
  * Theme Scope Styles
4973
5203
  *
4974
5204
  * IMPORTANT: All :where(.theme-scope) selectors are wrapped in :where() to give them
@@ -4978,790 +5208,838 @@ var containerResponsiveThemeCss = `/*
4978
5208
  * Example: \`h4 { color: white; }\` will override \`:where(:where(.theme-scope)) h4\`
4979
5209
  */
4980
5210
 
4981
- :where(:where(.theme-scope)) {
4982
- font-family: var(--font-body);
4983
- letter-spacing: var(--ls-body);
4984
- line-height: var(--lh-body);
4985
- font-weight: var(--font-weight-body);
4986
-
4987
- & h1,
4988
- & h2,
4989
- & h3,
4990
- & h4,
4991
- & h5,
4992
- & h6 {
4993
- font-family: var(--font-heading);
4994
- /* Color is set by generateTypographyCss.ts with full cascade:
5211
+ :where(:where(.theme-scope)) {
5212
+ font-family: var(--font-body);
5213
+ letter-spacing: var(--ls-body);
5214
+ line-height: var(--lh-body);
5215
+ font-weight: var(--font-weight-body);
5216
+
5217
+ & h1,
5218
+ & h2,
5219
+ & h3,
5220
+ & h4,
5221
+ & h5,
5222
+ & h6 {
5223
+ font-family: var(--font-heading);
5224
+ /* Color is set by generateTypographyCss.ts with full cascade:
4995
5225
  --section-heading-color -> --section-text-color -> --hc-hN -> --hc-heading -> inherit */
4996
- font-weight: var(--font-weight-heading);
4997
- text-transform: var(--tt-heading);
4998
- font-variant-caps: var(--fv-heading);
5226
+ font-weight: var(--font-weight-heading);
5227
+ text-transform: var(--tt-heading);
5228
+ font-variant-caps: var(--fv-heading);
5229
+ }
4999
5230
  }
5000
- }
5001
5231
 
5002
- /* Heading typographic overrides (fallback to defaults when not provided) */
5003
- :where(:where(.theme-scope)) h1 {
5004
- letter-spacing: var(--ls-h1, var(--ls-heading));
5005
- line-height: var(--lh-h1, var(--lh-heading));
5006
- font-weight: var(--fw-h1, var(--font-weight-heading));
5007
- }
5008
- :where(:where(.theme-scope)) h2 {
5009
- letter-spacing: var(--ls-h2, var(--ls-heading));
5010
- line-height: var(--lh-h2, var(--lh-heading));
5011
- font-weight: var(--fw-h2, var(--font-weight-heading));
5012
- }
5013
- :where(:where(.theme-scope)) h3 {
5014
- letter-spacing: var(--ls-h3, var(--ls-heading));
5015
- line-height: var(--lh-h3, var(--lh-heading));
5016
- font-weight: var(--fw-h3, var(--font-weight-heading));
5017
- }
5018
- :where(:where(.theme-scope)) h4,
5019
- :where(:where(.theme-scope)) h5,
5020
- :where(:where(.theme-scope)) h6 {
5021
- letter-spacing: var(--ls-heading);
5022
- line-height: var(--lh-heading);
5023
- }
5024
- :where(:where(.theme-scope)) h4 {
5025
- font-weight: var(--fw-h4, var(--font-weight-heading));
5026
- }
5027
- :where(:where(.theme-scope)) h5 {
5028
- font-weight: var(--fw-h5, var(--font-weight-heading));
5029
- }
5030
- :where(:where(.theme-scope)) h6 {
5031
- font-weight: var(--fw-h6, var(--font-weight-heading));
5032
- }
5232
+ /* Heading typographic overrides (fallback to defaults when not provided) */
5233
+ :where(:where(.theme-scope)) h1 {
5234
+ letter-spacing: var(--ls-h1, var(--ls-heading));
5235
+ line-height: var(--lh-h1, var(--lh-heading));
5236
+ font-weight: var(--fw-h1, var(--font-weight-heading));
5237
+ }
5238
+ :where(:where(.theme-scope)) h2 {
5239
+ letter-spacing: var(--ls-h2, var(--ls-heading));
5240
+ line-height: var(--lh-h2, var(--lh-heading));
5241
+ font-weight: var(--fw-h2, var(--font-weight-heading));
5242
+ }
5243
+ :where(:where(.theme-scope)) h3 {
5244
+ letter-spacing: var(--ls-h3, var(--ls-heading));
5245
+ line-height: var(--lh-h3, var(--lh-heading));
5246
+ font-weight: var(--fw-h3, var(--font-weight-heading));
5247
+ }
5248
+ :where(:where(.theme-scope)) h4,
5249
+ :where(:where(.theme-scope)) h5,
5250
+ :where(:where(.theme-scope)) h6 {
5251
+ letter-spacing: var(--ls-heading);
5252
+ line-height: var(--lh-heading);
5253
+ }
5254
+ :where(:where(.theme-scope)) h4 {
5255
+ font-weight: var(--fw-h4, var(--font-weight-heading));
5256
+ }
5257
+ :where(:where(.theme-scope)) h5 {
5258
+ font-weight: var(--fw-h5, var(--font-weight-heading));
5259
+ }
5260
+ :where(:where(.theme-scope)) h6 {
5261
+ font-weight: var(--fw-h6, var(--font-weight-heading));
5262
+ }
5033
5263
 
5034
- /* Rich text element spacing based on theme rhythm */
5035
- :where(.theme-scope) .rb-prose h1 {
5036
- margin-top: calc(var(--rt-space-y) * 1.6);
5037
- margin-bottom: calc(var(--rt-space-y) * 0.8);
5038
- }
5039
- :where(.theme-scope) .rb-prose h2 {
5040
- margin-top: calc(var(--rt-space-y) * 1.4);
5041
- margin-bottom: calc(var(--rt-space-y) * 0.7);
5042
- }
5043
- :where(.theme-scope) .rb-prose h3 {
5044
- margin-top: calc(var(--rt-space-y) * 1.2);
5045
- margin-bottom: calc(var(--rt-space-y) * 0.6);
5046
- }
5047
- :where(.theme-scope) .rb-prose h4 {
5048
- margin-top: calc(var(--rt-space-y) * 1);
5049
- margin-bottom: calc(var(--rt-space-y) * 0.5);
5050
- }
5051
- :where(.theme-scope) .rb-prose h5 {
5052
- margin-top: calc(var(--rt-space-y) * 0.9);
5053
- margin-bottom: calc(var(--rt-space-y) * 0.45);
5054
- }
5055
- :where(.theme-scope) .rb-prose h6 {
5056
- margin-top: calc(var(--rt-space-y) * 0.8);
5057
- margin-bottom: calc(var(--rt-space-y) * 0.4);
5058
- }
5059
- :where(.theme-scope) .rb-prose p {
5060
- margin: var(--rt-space-y) 0;
5061
- }
5062
- :where(.theme-scope) .rb-prose img {
5063
- display: block;
5064
- max-width: 100%;
5065
- height: auto;
5066
- margin: calc(var(--rt-space-y) * 1) 0;
5067
- }
5068
- :where(.theme-scope) .rb-prose ul,
5069
- :where(.theme-scope) .rb-prose ol {
5070
- margin: var(--rt-space-y) 0;
5071
- padding-left: 1.25rem;
5072
- }
5073
- :where(.theme-scope) .rb-prose ul {
5074
- list-style-type: disc;
5075
- }
5076
- :where(.theme-scope) .rb-prose ol {
5077
- list-style-type: decimal;
5078
- }
5079
- :where(.theme-scope) .rb-prose ul ul {
5080
- list-style-type: circle;
5081
- }
5082
- :where(.theme-scope) .rb-prose ul ul ul {
5083
- list-style-type: square;
5084
- }
5085
- :where(.theme-scope) .rb-prose ol ol {
5086
- list-style-type: lower-alpha;
5087
- }
5088
- :where(.theme-scope) .rb-prose ol ol ol {
5089
- list-style-type: lower-roman;
5090
- }
5091
- :where(.theme-scope) .rb-prose blockquote {
5092
- margin: calc(var(--rt-space-y) * 1) 0;
5093
- padding-left: 1rem;
5094
- border-left: 3px solid rgb(var(--tb-border));
5095
- }
5096
- :where(.theme-scope) .rb-prose > :first-child {
5097
- margin-top: 0;
5098
- }
5099
- :where(.theme-scope) .rb-prose > :last-child {
5100
- margin-bottom: 0;
5101
- }
5264
+ /* Rich text element spacing based on theme rhythm */
5265
+ :where(.theme-scope) .rb-prose h1 {
5266
+ margin-top: calc(var(--rt-space-y) * 1.6);
5267
+ margin-bottom: calc(var(--rt-space-y) * 0.8);
5268
+ }
5269
+ :where(.theme-scope) .rb-prose h2 {
5270
+ margin-top: calc(var(--rt-space-y) * 1.4);
5271
+ margin-bottom: calc(var(--rt-space-y) * 0.7);
5272
+ }
5273
+ :where(.theme-scope) .rb-prose h3 {
5274
+ margin-top: calc(var(--rt-space-y) * 1.2);
5275
+ margin-bottom: calc(var(--rt-space-y) * 0.6);
5276
+ }
5277
+ :where(.theme-scope) .rb-prose h4 {
5278
+ margin-top: calc(var(--rt-space-y) * 1);
5279
+ margin-bottom: calc(var(--rt-space-y) * 0.5);
5280
+ }
5281
+ :where(.theme-scope) .rb-prose h5 {
5282
+ margin-top: calc(var(--rt-space-y) * 0.9);
5283
+ margin-bottom: calc(var(--rt-space-y) * 0.45);
5284
+ }
5285
+ :where(.theme-scope) .rb-prose h6 {
5286
+ margin-top: calc(var(--rt-space-y) * 0.8);
5287
+ margin-bottom: calc(var(--rt-space-y) * 0.4);
5288
+ }
5289
+ :where(.theme-scope) .rb-prose p {
5290
+ margin: var(--rt-space-y) 0;
5291
+ }
5292
+ :where(.theme-scope) .rb-prose img {
5293
+ display: block;
5294
+ max-width: 100%;
5295
+ height: auto;
5296
+ margin: calc(var(--rt-space-y) * 1) 0;
5297
+ }
5298
+ :where(.theme-scope) .rb-prose ul,
5299
+ :where(.theme-scope) .rb-prose ol {
5300
+ margin: var(--rt-space-y) 0;
5301
+ padding-left: 1.25rem;
5302
+ }
5303
+ :where(.theme-scope) .rb-prose ul {
5304
+ list-style-type: disc;
5305
+ }
5306
+ :where(.theme-scope) .rb-prose ol {
5307
+ list-style-type: decimal;
5308
+ }
5309
+ :where(.theme-scope) .rb-prose ul ul {
5310
+ list-style-type: circle;
5311
+ }
5312
+ :where(.theme-scope) .rb-prose ul ul ul {
5313
+ list-style-type: square;
5314
+ }
5315
+ :where(.theme-scope) .rb-prose ol ol {
5316
+ list-style-type: lower-alpha;
5317
+ }
5318
+ :where(.theme-scope) .rb-prose ol ol ol {
5319
+ list-style-type: lower-roman;
5320
+ }
5321
+ :where(.theme-scope) .rb-prose blockquote {
5322
+ margin: calc(var(--rt-space-y) * 1) 0;
5323
+ padding-left: 1rem;
5324
+ border-left: 3px solid rgb(var(--tb-border));
5325
+ }
5326
+ :where(.theme-scope) .rb-prose > :first-child {
5327
+ margin-top: 0;
5328
+ }
5329
+ :where(.theme-scope) .rb-prose > :last-child {
5330
+ margin-bottom: 0;
5331
+ }
5102
5332
 
5103
- /* Prose color overrides - use theme CSS variables instead of hardcoded colors
5333
+ /* Prose color overrides - use theme CSS variables instead of hardcoded colors
5104
5334
  * This makes prose elements automatically adapt to light/dark themes */
5105
- :where(.theme-scope) .rb-prose {
5106
- /* Body text inherits from parent, which should already have theme color */
5107
- color: inherit;
5108
- }
5335
+ :where(.theme-scope) .rb-prose {
5336
+ /* Body text inherits from parent, which should already have theme color */
5337
+ color: inherit;
5338
+ }
5109
5339
 
5110
- /* Prose size variants (theme-aware, CSS-only) */
5111
- :where(.theme-scope) {
5112
- /* Body scale + rhythm come from the active theme runtime (ThemeScope) */
5113
- --rb-prose-sm-font-size: calc(var(--fs-body, 16px) * 0.875);
5114
- --rb-prose-sm-line-height: calc(var(--lh-body, 1.65) - 0.05);
5340
+ /* Prose size variants (theme-aware, CSS-only) */
5341
+ :where(.theme-scope) {
5342
+ /* Body scale + rhythm come from the active theme runtime (ThemeScope) */
5343
+ --rb-prose-sm-font-size: calc(var(--fs-body, 16px) * 0.875);
5344
+ --rb-prose-sm-line-height: calc(var(--lh-body, 1.65) - 0.05);
5115
5345
 
5116
- --rb-prose-lg-font-size: calc(var(--fs-body, 16px) * 1.125);
5117
- --rb-prose-lg-line-height: calc(var(--lh-body, 1.65) + 0.1);
5346
+ --rb-prose-lg-font-size: calc(var(--fs-body, 16px) * 1.125);
5347
+ --rb-prose-lg-line-height: calc(var(--lh-body, 1.65) + 0.1);
5118
5348
 
5119
- /* Applied at >= 640px; below that, rb-prose-lg is typically used */
5120
- --rb-prose-xl-sm-font-size: calc(var(--fs-body, 16px) * 1.25);
5121
- --rb-prose-xl-sm-line-height: calc(var(--lh-body, 1.65) + 0.15);
5122
- }
5349
+ /* Applied at >= 640px; below that, rb-prose-lg is typically used */
5350
+ --rb-prose-xl-sm-font-size: calc(var(--fs-body, 16px) * 1.25);
5351
+ --rb-prose-xl-sm-line-height: calc(var(--lh-body, 1.65) + 0.15);
5352
+ }
5123
5353
 
5124
- :where(.theme-scope) .rb-prose-sm {
5125
- font-size: var(--rb-prose-sm-font-size);
5126
- line-height: var(--rb-prose-sm-line-height);
5127
- }
5128
- :where(.theme-scope) .rb-prose-lg {
5129
- font-size: var(--rb-prose-lg-font-size);
5130
- line-height: var(--rb-prose-lg-line-height);
5131
- }
5132
- @container rb-site (min-width: 640px) {
5354
+ :where(.theme-scope) .rb-prose-sm {
5355
+ font-size: var(--rb-prose-sm-font-size);
5356
+ line-height: var(--rb-prose-sm-line-height);
5357
+ }
5358
+ :where(.theme-scope) .rb-prose-lg {
5359
+ font-size: var(--rb-prose-lg-font-size);
5360
+ line-height: var(--rb-prose-lg-line-height);
5361
+ }
5362
+ @container rb-site (min-width: 640px) {
5133
5363
  @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
5134
5364
  :where(.theme-scope) .rb-prose-xl-sm {
5135
- font-size: var(--rb-prose-xl-sm-font-size);
5136
- line-height: var(--rb-prose-xl-sm-line-height);
5137
- }
5365
+ font-size: var(--rb-prose-xl-sm-font-size);
5366
+ line-height: var(--rb-prose-xl-sm-line-height);
5367
+ }
5138
5368
  }
5139
5369
  }
5140
5370
 
5141
- /* Neutral prose uses theme text color by default */
5142
- :where(.theme-scope) .rb-prose-neutral {
5143
- color: rgb(var(--tb-text));
5144
- }
5371
+ /* Neutral prose uses theme text color by default */
5372
+ :where(.theme-scope) .rb-prose-neutral {
5373
+ color: rgb(var(--tb-text));
5374
+ }
5145
5375
 
5146
- :where(.theme-scope) .rb-prose p,
5147
- :where(.theme-scope) .rb-prose li {
5148
- /* Body text uses inherited color (set by fragment via textColorStyle) */
5149
- color: inherit;
5150
- }
5376
+ :where(.theme-scope) .rb-prose p,
5377
+ :where(.theme-scope) .rb-prose li {
5378
+ /* Body text uses inherited color (set by fragment via textColorStyle) */
5379
+ color: inherit;
5380
+ }
5151
5381
 
5152
- :where(.theme-scope) .rb-prose h1,
5153
- :where(.theme-scope) .rb-prose h2,
5154
- :where(.theme-scope) .rb-prose h3,
5155
- :where(.theme-scope) .rb-prose h4,
5156
- :where(.theme-scope) .rb-prose h5,
5157
- :where(.theme-scope) .rb-prose h6 {
5158
- /* Headings inherit from parent or use theme text color */
5159
- color: inherit;
5160
- }
5382
+ :where(.theme-scope) .rb-prose h1,
5383
+ :where(.theme-scope) .rb-prose h2,
5384
+ :where(.theme-scope) .rb-prose h3,
5385
+ :where(.theme-scope) .rb-prose h4,
5386
+ :where(.theme-scope) .rb-prose h5,
5387
+ :where(.theme-scope) .rb-prose h6 {
5388
+ /* Headings inherit from parent or use theme text color */
5389
+ color: inherit;
5390
+ }
5161
5391
 
5162
- :where(.theme-scope) .rb-prose strong,
5163
- :where(.theme-scope) .rb-prose b {
5164
- /* Bold text inherits color but increases weight */
5165
- color: inherit;
5166
- font-weight: 600;
5167
- }
5392
+ :where(.theme-scope) .rb-prose strong,
5393
+ :where(.theme-scope) .rb-prose b {
5394
+ /* Bold text inherits color but increases weight */
5395
+ color: inherit;
5396
+ font-weight: 600;
5397
+ }
5168
5398
 
5169
- :where(.theme-scope) .rb-prose em,
5170
- :where(.theme-scope) .rb-prose i {
5171
- /* Italic text inherits color */
5172
- color: inherit;
5173
- }
5399
+ :where(.theme-scope) .rb-prose em,
5400
+ :where(.theme-scope) .rb-prose i {
5401
+ /* Italic text inherits color */
5402
+ color: inherit;
5403
+ }
5174
5404
 
5175
- :where(.theme-scope) .rb-prose a {
5176
- /* Global prose link style with theme-level overrides */
5177
- color: var(--rb-prose-link-color, rgb(var(--tb-primary)));
5178
- text-decoration-line: var(--rb-prose-link-decoration-line, underline);
5179
- text-decoration-style: var(--rb-prose-link-underline-style, solid);
5180
- text-decoration-thickness: var(--rb-prose-link-underline-thickness, from-font);
5181
- text-underline-offset: var(--rb-prose-link-underline-offset, 0.14em);
5182
- text-decoration-color: var(--rb-prose-link-decoration-color, rgba(var(--tb-primary), 0.3));
5183
- transition:
5184
- color 150ms ease,
5185
- text-decoration-color 150ms ease;
5186
- }
5405
+ :where(.theme-scope) .rb-prose a {
5406
+ /* Global prose link style with theme-level overrides */
5407
+ color: var(--rb-prose-link-color, rgb(var(--tb-primary)));
5408
+ text-decoration-line: var(--rb-prose-link-decoration-line, underline);
5409
+ text-decoration-style: var(--rb-prose-link-underline-style, solid);
5410
+ text-decoration-thickness: var(
5411
+ --rb-prose-link-underline-thickness,
5412
+ from-font
5413
+ );
5414
+ text-underline-offset: var(--rb-prose-link-underline-offset, 0.14em);
5415
+ text-decoration-color: var(
5416
+ --rb-prose-link-decoration-color,
5417
+ rgba(var(--tb-primary), 0.3)
5418
+ );
5419
+ transition:
5420
+ color 150ms ease,
5421
+ text-decoration-color 150ms ease;
5422
+ }
5187
5423
 
5188
- :where(.theme-scope) .rb-prose a:hover {
5189
- color: var(--rb-prose-link-hover-color, var(--rb-prose-link-color, rgb(var(--tb-primary))));
5190
- text-decoration-color: var(
5191
- --rb-prose-link-hover-decoration-color,
5192
- var(--rb-prose-link-hover-color, var(--rb-prose-link-color, rgb(var(--tb-primary))))
5193
- );
5194
- }
5424
+ :where(.theme-scope) .rb-prose a:hover {
5425
+ color: var(
5426
+ --rb-prose-link-hover-color,
5427
+ var(--rb-prose-link-color, rgb(var(--tb-primary)))
5428
+ );
5429
+ text-decoration-color: var(
5430
+ --rb-prose-link-hover-decoration-color,
5431
+ var(
5432
+ --rb-prose-link-hover-color,
5433
+ var(--rb-prose-link-color, rgb(var(--tb-primary)))
5434
+ )
5435
+ );
5436
+ }
5195
5437
 
5196
- :where(.theme-scope) .rb-prose blockquote {
5197
- /* Blockquotes use muted text color */
5198
- color: rgb(var(--tb-mutedText));
5199
- border-left-color: rgb(var(--tb-border));
5200
- }
5438
+ :where(.theme-scope) .rb-prose blockquote {
5439
+ /* Blockquotes use muted text color */
5440
+ color: rgb(var(--tb-mutedText));
5441
+ border-left-color: rgb(var(--tb-border));
5442
+ }
5201
5443
 
5202
- :where(.theme-scope) .fragment-quote-body blockquote {
5203
- /* Quote fragment should not get the generic prose blockquote left border/indent. */
5204
- border-left: 0;
5205
- padding-left: 0;
5206
- }
5444
+ :where(.theme-scope) .fragment-quote-body blockquote {
5445
+ /* Quote fragment should not get the generic prose blockquote left border/indent. */
5446
+ border-left: 0;
5447
+ padding-left: 0;
5448
+ }
5207
5449
 
5208
- :where(.theme-scope) .rb-columns-equal-height {
5209
- /* Needed so we can use container query units (\`cqw\`) for width-based tile sizing. */
5210
- container-type: inline-size;
5450
+ :where(.theme-scope) .rb-columns-equal-height {
5451
+ /* Needed so we can use container query units (\`cqw\`) for width-based tile sizing. */
5452
+ container-type: inline-size;
5211
5453
 
5212
- --rb-columns-cols: var(--rb-columns-cols-mobile, 1);
5213
- --rb-columns-gap: var(--rb-semantic-gap, 0px);
5214
- --rb-columns-tile-ar: var(--rb-columns-tile-ar, 1);
5454
+ --rb-columns-cols: var(--rb-columns-cols-mobile, 1);
5455
+ --rb-columns-gap: var(--rb-semantic-gap, 0px);
5456
+ --rb-columns-tile-ar: var(--rb-columns-tile-ar, 1);
5215
5457
 
5216
- --rb-columns-tile-w: calc(
5217
- (100cqw - (var(--rb-columns-cols) - 1) * var(--rb-columns-gap)) / var(--rb-columns-cols)
5218
- );
5219
- --rb-columns-tile-h: calc(var(--rb-columns-tile-w) * var(--rb-columns-tile-ar));
5220
- }
5458
+ --rb-columns-tile-w: calc(
5459
+ (100cqw - (var(--rb-columns-cols) - 1) * var(--rb-columns-gap)) /
5460
+ var(--rb-columns-cols)
5461
+ );
5462
+ --rb-columns-tile-h: calc(
5463
+ var(--rb-columns-tile-w) * var(--rb-columns-tile-ar)
5464
+ );
5465
+ }
5221
5466
 
5222
- @container rb-site (min-width: 768px) {
5467
+ @container rb-site (min-width: 768px) {
5223
5468
  @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
5224
5469
  :where(.theme-scope) .rb-columns-equal-height {
5225
- --rb-columns-cols: var(--rb-columns-cols-md, var(--rb-columns-cols));
5226
- }
5470
+ --rb-columns-cols: var(--rb-columns-cols-md, var(--rb-columns-cols));
5471
+ }
5227
5472
  }
5228
5473
  }
5229
5474
 
5230
- @container rb-site (min-width: 1024px) {
5475
+ @container rb-site (min-width: 1024px) {
5231
5476
  @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
5232
5477
  :where(.theme-scope) .rb-columns-equal-height {
5233
- --rb-columns-cols: var(--rb-columns-cols-lg, var(--rb-columns-cols));
5234
- }
5478
+ --rb-columns-cols: var(--rb-columns-cols-lg, var(--rb-columns-cols));
5479
+ }
5235
5480
  }
5236
5481
  }
5237
5482
 
5238
- @container rb-site (min-width: 1280px) {
5483
+ @container rb-site (min-width: 1280px) {
5239
5484
  @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
5240
5485
  :where(.theme-scope) .rb-columns-equal-height {
5241
- --rb-columns-cols: var(--rb-columns-cols-xl, var(--rb-columns-cols));
5242
- }
5486
+ --rb-columns-cols: var(--rb-columns-cols-xl, var(--rb-columns-cols));
5487
+ }
5243
5488
  }
5244
5489
  }
5245
5490
 
5246
- :where(.theme-scope) .rb-columns-equal-height > * {
5247
- height: var(--rb-columns-tile-h);
5248
- }
5491
+ :where(.theme-scope) .rb-columns-equal-height > * {
5492
+ height: var(--rb-columns-tile-h);
5493
+ }
5249
5494
 
5250
- :where(.theme-scope) .rb-columns-equal-height > .rb-h-full {
5251
- /*
5495
+ :where(.theme-scope) .rb-columns-equal-height > .rb-h-full {
5496
+ /*
5252
5497
  Grid items commonly include \`rb-h-full\` (height: 100%) to stretch within
5253
5498
  their row. In equal-height mode we instead want a fixed tile height so the
5254
5499
  spanning editorial tile doesn't become taller due to its larger width +
5255
5500
  aspect-ratio.
5256
5501
  */
5257
- height: var(--rb-columns-tile-h);
5258
- min-height: var(--rb-columns-tile-h);
5259
- max-height: var(--rb-columns-tile-h);
5260
- }
5502
+ height: var(--rb-columns-tile-h);
5503
+ min-height: var(--rb-columns-tile-h);
5504
+ max-height: var(--rb-columns-tile-h);
5505
+ }
5261
5506
 
5262
- :where(.theme-scope) .rb-columns-equal-height .fragment-image-frame {
5263
- width: 100%;
5264
- height: 100%;
5265
- overflow: hidden;
5266
- }
5507
+ :where(.theme-scope) .rb-columns-equal-height .fragment-image-frame {
5508
+ width: 100%;
5509
+ height: 100%;
5510
+ overflow: hidden;
5511
+ }
5267
5512
 
5268
- :where(.theme-scope) .rb-columns-equal-height .fragment-image {
5269
- width: 100%;
5270
- height: 100%;
5271
- object-fit: cover;
5272
- }
5513
+ :where(.theme-scope) .rb-columns-equal-height .fragment-image {
5514
+ width: 100%;
5515
+ height: 100%;
5516
+ object-fit: cover;
5517
+ }
5273
5518
 
5274
- :where(.theme-scope) .rb-prose code {
5275
- /* Inline code uses text color with surface background */
5276
- color: inherit;
5277
- background-color: rgba(var(--tb-surface), 0.5);
5278
- padding: 0.125rem 0.25rem;
5279
- border-radius: 0.25rem;
5280
- font-size: 0.875em;
5281
- }
5519
+ :where(.theme-scope) .rb-prose code {
5520
+ /* Inline code uses text color with surface background */
5521
+ color: inherit;
5522
+ background-color: rgba(var(--tb-surface), 0.5);
5523
+ padding: 0.125rem 0.25rem;
5524
+ border-radius: 0.25rem;
5525
+ font-size: 0.875em;
5526
+ }
5282
5527
 
5283
- :where(.theme-scope) .rb-prose pre {
5284
- /* Code blocks */
5285
- background-color: rgb(var(--tb-surface));
5286
- color: rgb(var(--tb-text));
5287
- border: 1px solid rgb(var(--tb-border));
5288
- border-radius: 0.5rem;
5289
- padding: 1rem;
5290
- overflow-x: auto;
5291
- }
5528
+ :where(.theme-scope) .rb-prose pre {
5529
+ /* Code blocks */
5530
+ background-color: rgb(var(--tb-surface));
5531
+ color: rgb(var(--tb-text));
5532
+ border: 1px solid rgb(var(--tb-border));
5533
+ border-radius: 0.5rem;
5534
+ padding: 1rem;
5535
+ overflow-x: auto;
5536
+ }
5292
5537
 
5293
- :where(.theme-scope) .rb-prose pre code {
5294
- /* Code inside pre blocks */
5295
- background-color: transparent;
5296
- padding: 0;
5297
- color: inherit;
5298
- }
5538
+ :where(.theme-scope) .rb-prose pre code {
5539
+ /* Code inside pre blocks */
5540
+ background-color: transparent;
5541
+ padding: 0;
5542
+ color: inherit;
5543
+ }
5299
5544
 
5300
- :where(.theme-scope) .rb-prose hr {
5301
- /* Horizontal rules */
5302
- border-color: rgb(var(--tb-border));
5303
- }
5545
+ :where(.theme-scope) .rb-prose hr {
5546
+ /* Horizontal rules */
5547
+ border-color: rgb(var(--tb-border));
5548
+ }
5304
5549
 
5305
- :where(.theme-scope) .rb-prose ul > li::marker,
5306
- :where(.theme-scope) .rb-prose ol > li::marker {
5307
- /* List markers use muted text color */
5308
- color: rgb(var(--tb-mutedText));
5309
- }
5550
+ :where(.theme-scope) .rb-prose ul > li::marker,
5551
+ :where(.theme-scope) .rb-prose ol > li::marker {
5552
+ /* List markers use muted text color */
5553
+ color: rgb(var(--tb-mutedText));
5554
+ }
5310
5555
 
5311
- /*
5556
+ /*
5312
5557
  /* Density helpers */
5313
- :where(.theme-scope) .section-pad {
5314
- padding-top: 4rem;
5315
- padding-bottom: 4rem;
5316
- }
5317
- :where(.theme-scope)[data-density="airy"] .section-pad {
5318
- padding-top: 4.5rem;
5319
- padding-bottom: 4.5rem;
5320
- }
5321
- :where(.theme-scope)[data-density="compact"] .section-pad {
5322
- padding-top: 3rem;
5323
- padding-bottom: 3rem;
5324
- }
5325
-
5326
- :where(.theme-scope) .rounded-control {
5327
- border-radius: var(--radius-control);
5328
- }
5329
- :where(.theme-scope) .rounded-card {
5330
- border-radius: var(--radius-card);
5331
- }
5558
+ :where(.theme-scope) .section-pad {
5559
+ padding-top: 4rem;
5560
+ padding-bottom: 4rem;
5561
+ }
5562
+ :where(.theme-scope)[data-density='airy'] .section-pad {
5563
+ padding-top: 4.5rem;
5564
+ padding-bottom: 4.5rem;
5565
+ }
5566
+ :where(.theme-scope)[data-density='compact'] .section-pad {
5567
+ padding-top: 3rem;
5568
+ padding-bottom: 3rem;
5569
+ }
5332
5570
 
5333
- :where(.theme-scope) .shadow-elev {
5334
- box-shadow: var(--shadow-elev);
5335
- }
5571
+ :where(.theme-scope) .rounded-control {
5572
+ border-radius: var(--radius-control);
5573
+ }
5574
+ :where(.theme-scope) .rounded-card {
5575
+ border-radius: var(--radius-card);
5576
+ }
5336
5577
 
5337
- :where(.theme-scope) .font-heading {
5338
- font-family: var(--font-heading);
5339
- }
5340
- :where(.theme-scope) .font-body {
5341
- font-family: var(--font-body);
5342
- }
5578
+ :where(.theme-scope) .shadow-elev {
5579
+ box-shadow: var(--shadow-elev);
5580
+ }
5343
5581
 
5344
- :where(.theme-scope) .text-h1 {
5345
- font-size: var(--fs-h1);
5346
- line-height: 1.1;
5347
- }
5348
- :where(.theme-scope) .text-h2 {
5349
- font-size: var(--fs-h2);
5350
- line-height: 1.15;
5351
- }
5352
- :where(.theme-scope) .text-h3 {
5353
- font-size: var(--fs-h3);
5354
- line-height: 1.2;
5355
- }
5356
- :where(.theme-scope) .text-body-size {
5357
- font-size: var(--fs-body);
5358
- }
5582
+ :where(.theme-scope) .font-heading {
5583
+ font-family: var(--font-heading);
5584
+ }
5585
+ :where(.theme-scope) .font-body {
5586
+ font-family: var(--font-body);
5587
+ }
5359
5588
 
5360
- :where(.theme-scope) .transition-theme {
5361
- transition: all var(--motion-duration) var(--motion-ease);
5362
- }
5363
- :where(.theme-scope) .transition-theme-standard {
5364
- transition: all var(--motion-duration) var(--motion-ease);
5365
- }
5366
- :where(.theme-scope) .transition-theme-subtle {
5367
- transition: all calc(var(--motion-duration) * 0.75) var(--motion-ease);
5368
- }
5369
- :where(.theme-scope) .transition-theme-expressive {
5370
- transition: all calc(var(--motion-duration) * 1.35) var(--motion-ease);
5371
- }
5589
+ :where(.theme-scope) .text-h1 {
5590
+ font-size: var(--fs-h1);
5591
+ line-height: 1.1;
5592
+ }
5593
+ :where(.theme-scope) .text-h2 {
5594
+ font-size: var(--fs-h2);
5595
+ line-height: 1.15;
5596
+ }
5597
+ :where(.theme-scope) .text-h3 {
5598
+ font-size: var(--fs-h3);
5599
+ line-height: 1.2;
5600
+ }
5601
+ :where(.theme-scope) .text-body-size {
5602
+ font-size: var(--fs-body);
5603
+ }
5372
5604
 
5373
- /* Shade tokens (50..950) for primary */
5374
- :where(.theme-scope) .from-primary-50 {
5375
- --rb-gradient-from: rgb(var(--tb-primary-50)) var(--rb-gradient-from-position);
5376
- --rb-gradient-to: rgb(var(--tb-primary-50)) var(--rb-gradient-to-position);
5377
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5378
- }
5379
- :where(.theme-scope) .to-primary-50 {
5380
- --rb-gradient-to: rgb(var(--tb-primary-50)) var(--rb-gradient-to-position);
5381
- }
5382
- :where(.theme-scope) .from-primary-100 {
5383
- --rb-gradient-from: rgb(var(--tb-primary-100))
5384
- var(--rb-gradient-from-position);
5385
- --rb-gradient-to: rgb(var(--tb-primary-100)) var(--rb-gradient-to-position);
5386
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5387
- }
5388
- :where(.theme-scope) .to-primary-100 {
5389
- --rb-gradient-to: rgb(var(--tb-primary-100)) var(--rb-gradient-to-position);
5390
- }
5391
- :where(.theme-scope) .from-primary-200 {
5392
- --rb-gradient-from: rgb(var(--tb-primary-200))
5393
- var(--rb-gradient-from-position);
5394
- --rb-gradient-to: rgb(var(--tb-primary-200)) var(--rb-gradient-to-position);
5395
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5396
- }
5397
- :where(.theme-scope) .to-primary-200 {
5398
- --rb-gradient-to: rgb(var(--tb-primary-200)) var(--rb-gradient-to-position);
5399
- }
5400
- :where(.theme-scope) .from-primary-300 {
5401
- --rb-gradient-from: rgb(var(--tb-primary-300))
5402
- var(--rb-gradient-from-position);
5403
- --rb-gradient-to: rgb(var(--tb-primary-300)) var(--rb-gradient-to-position);
5404
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5405
- }
5406
- :where(.theme-scope) .to-primary-300 {
5407
- --rb-gradient-to: rgb(var(--tb-primary-300)) var(--rb-gradient-to-position);
5408
- }
5409
- :where(.theme-scope) .from-primary-400 {
5410
- --rb-gradient-from: rgb(var(--tb-primary-400))
5411
- var(--rb-gradient-from-position);
5412
- --rb-gradient-to: rgb(var(--tb-primary-400)) var(--rb-gradient-to-position);
5413
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5414
- }
5415
- :where(.theme-scope) .to-primary-400 {
5416
- --rb-gradient-to: rgb(var(--tb-primary-400)) var(--rb-gradient-to-position);
5417
- }
5418
- :where(.theme-scope) .from-primary-500 {
5419
- --rb-gradient-from: rgb(var(--tb-primary-500))
5420
- var(--rb-gradient-from-position);
5421
- --rb-gradient-to: rgb(var(--tb-primary-500)) var(--rb-gradient-to-position);
5422
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5423
- }
5424
- :where(.theme-scope) .to-primary-500 {
5425
- --rb-gradient-to: rgb(var(--tb-primary-500)) var(--rb-gradient-to-position);
5426
- }
5427
- :where(.theme-scope) .from-primary-600 {
5428
- --rb-gradient-from: rgb(var(--tb-primary-600))
5429
- var(--rb-gradient-from-position);
5430
- --rb-gradient-to: rgb(var(--tb-primary-600)) var(--rb-gradient-to-position);
5431
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5432
- }
5433
- :where(.theme-scope) .to-primary-600 {
5434
- --rb-gradient-to: rgb(var(--tb-primary-600)) var(--rb-gradient-to-position);
5435
- }
5436
- :where(.theme-scope) .from-primary-700 {
5437
- --rb-gradient-from: rgb(var(--tb-primary-700))
5438
- var(--rb-gradient-from-position);
5439
- --rb-gradient-to: rgb(var(--tb-primary-700)) var(--rb-gradient-to-position);
5440
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5441
- }
5442
- :where(.theme-scope) .to-primary-700 {
5443
- --rb-gradient-to: rgb(var(--tb-primary-700)) var(--rb-gradient-to-position);
5444
- }
5445
- :where(.theme-scope) .from-primary-800 {
5446
- --rb-gradient-from: rgb(var(--tb-primary-800))
5447
- var(--rb-gradient-from-position);
5448
- --rb-gradient-to: rgb(var(--tb-primary-800)) var(--rb-gradient-to-position);
5449
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5450
- }
5451
- :where(.theme-scope) .to-primary-800 {
5452
- --rb-gradient-to: rgb(var(--tb-primary-800)) var(--rb-gradient-to-position);
5453
- }
5454
- :where(.theme-scope) .from-primary-900 {
5455
- --rb-gradient-from: rgb(var(--tb-primary-900))
5456
- var(--rb-gradient-from-position);
5457
- --rb-gradient-to: rgb(var(--tb-primary-900)) var(--rb-gradient-to-position);
5458
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5459
- }
5460
- :where(.theme-scope) .to-primary-900 {
5461
- --rb-gradient-to: rgb(var(--tb-primary-900)) var(--rb-gradient-to-position);
5462
- }
5463
- :where(.theme-scope) .from-primary-950 {
5464
- --rb-gradient-from: rgb(var(--tb-primary-950))
5465
- var(--rb-gradient-from-position);
5466
- --rb-gradient-to: rgb(var(--tb-primary-950)) var(--rb-gradient-to-position);
5467
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5468
- }
5469
- :where(.theme-scope) .to-primary-950 {
5470
- --rb-gradient-to: rgb(var(--tb-primary-950)) var(--rb-gradient-to-position);
5471
- }
5472
-
5473
- /* Shade tokens (50..950) for secondary */
5474
- :where(.theme-scope) .from-secondary-50 {
5475
- --rb-gradient-from: rgb(var(--tb-secondary-50))
5476
- var(--rb-gradient-from-position);
5477
- --rb-gradient-to: rgb(var(--tb-secondary-50)) var(--rb-gradient-to-position);
5478
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5479
- }
5480
- :where(.theme-scope) .to-secondary-50 {
5481
- --rb-gradient-to: rgb(var(--tb-secondary-50)) var(--rb-gradient-to-position);
5482
- }
5483
- :where(.theme-scope) .from-secondary-100 {
5484
- --rb-gradient-from: rgb(var(--tb-secondary-100))
5485
- var(--rb-gradient-from-position);
5486
- --rb-gradient-to: rgb(var(--tb-secondary-100)) var(--rb-gradient-to-position);
5487
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5488
- }
5489
- :where(.theme-scope) .to-secondary-100 {
5490
- --rb-gradient-to: rgb(var(--tb-secondary-100)) var(--rb-gradient-to-position);
5491
- }
5492
- :where(.theme-scope) .from-secondary-200 {
5493
- --rb-gradient-from: rgb(var(--tb-secondary-200))
5494
- var(--rb-gradient-from-position);
5495
- --rb-gradient-to: rgb(var(--tb-secondary-200)) var(--rb-gradient-to-position);
5496
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5497
- }
5498
- :where(.theme-scope) .to-secondary-200 {
5499
- --rb-gradient-to: rgb(var(--tb-secondary-200)) var(--rb-gradient-to-position);
5500
- }
5501
- :where(.theme-scope) .from-secondary-300 {
5502
- --rb-gradient-from: rgb(var(--tb-secondary-300))
5503
- var(--rb-gradient-from-position);
5504
- --rb-gradient-to: rgb(var(--tb-secondary-300)) var(--rb-gradient-to-position);
5505
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5506
- }
5507
- :where(.theme-scope) .to-secondary-300 {
5508
- --rb-gradient-to: rgb(var(--tb-secondary-300)) var(--rb-gradient-to-position);
5509
- }
5510
- :where(.theme-scope) .from-secondary-400 {
5511
- --rb-gradient-from: rgb(var(--tb-secondary-400))
5512
- var(--rb-gradient-from-position);
5513
- --rb-gradient-to: rgb(var(--tb-secondary-400)) var(--rb-gradient-to-position);
5514
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5515
- }
5516
- :where(.theme-scope) .to-secondary-400 {
5517
- --rb-gradient-to: rgb(var(--tb-secondary-400)) var(--rb-gradient-to-position);
5518
- }
5519
- :where(.theme-scope) .from-secondary-500 {
5520
- --rb-gradient-from: rgb(var(--tb-secondary-500))
5521
- var(--rb-gradient-from-position);
5522
- --rb-gradient-to: rgb(var(--tb-secondary-500)) var(--rb-gradient-to-position);
5523
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5524
- }
5525
- :where(.theme-scope) .to-secondary-500 {
5526
- --rb-gradient-to: rgb(var(--tb-secondary-500)) var(--rb-gradient-to-position);
5527
- }
5528
- :where(.theme-scope) .from-secondary-600 {
5529
- --rb-gradient-from: rgb(var(--tb-secondary-600))
5530
- var(--rb-gradient-from-position);
5531
- --rb-gradient-to: rgb(var(--tb-secondary-600)) var(--rb-gradient-to-position);
5532
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5533
- }
5534
- :where(.theme-scope) .to-secondary-600 {
5535
- --rb-gradient-to: rgb(var(--tb-secondary-600)) var(--rb-gradient-to-position);
5536
- }
5537
- :where(.theme-scope) .from-secondary-700 {
5538
- --rb-gradient-from: rgb(var(--tb-secondary-700))
5539
- var(--rb-gradient-from-position);
5540
- --rb-gradient-to: rgb(var(--tb-secondary-700)) var(--rb-gradient-to-position);
5541
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5542
- }
5543
- :where(.theme-scope) .to-secondary-700 {
5544
- --rb-gradient-to: rgb(var(--tb-secondary-700)) var(--rb-gradient-to-position);
5545
- }
5546
- :where(.theme-scope) .from-secondary-800 {
5547
- --rb-gradient-from: rgb(var(--tb-secondary-800))
5548
- var(--rb-gradient-from-position);
5549
- --rb-gradient-to: rgb(var(--tb-secondary-800)) var(--rb-gradient-to-position);
5550
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5551
- }
5552
- :where(.theme-scope) .to-secondary-800 {
5553
- --rb-gradient-to: rgb(var(--tb-secondary-800)) var(--rb-gradient-to-position);
5554
- }
5555
- :where(.theme-scope) .from-secondary-900 {
5556
- --rb-gradient-from: rgb(var(--tb-secondary-900))
5557
- var(--rb-gradient-from-position);
5558
- --rb-gradient-to: rgb(var(--tb-secondary-900)) var(--rb-gradient-to-position);
5559
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5560
- }
5561
- :where(.theme-scope) .to-secondary-900 {
5562
- --rb-gradient-to: rgb(var(--tb-secondary-900)) var(--rb-gradient-to-position);
5563
- }
5564
- :where(.theme-scope) .from-secondary-950 {
5565
- --rb-gradient-from: rgb(var(--tb-secondary-950))
5566
- var(--rb-gradient-from-position);
5567
- --rb-gradient-to: rgb(var(--tb-secondary-950)) var(--rb-gradient-to-position);
5568
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5569
- }
5570
- :where(.theme-scope) .to-secondary-950 {
5571
- --rb-gradient-to: rgb(var(--tb-secondary-950)) var(--rb-gradient-to-position);
5572
- }
5573
-
5574
- /* Shade tokens (50..950) for accent */
5575
- :where(.theme-scope) .from-accent-50 {
5576
- --rb-gradient-from: rgb(var(--tb-accent-50)) var(--rb-gradient-from-position);
5577
- --rb-gradient-to: rgb(var(--tb-accent-50)) var(--rb-gradient-to-position);
5578
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5579
- }
5580
- :where(.theme-scope) .to-accent-50 {
5581
- --rb-gradient-to: rgb(var(--tb-accent-50)) var(--rb-gradient-to-position);
5582
- }
5583
- :where(.theme-scope) .from-accent-100 {
5584
- --rb-gradient-from: rgb(var(--tb-accent-100)) var(--rb-gradient-from-position);
5585
- --rb-gradient-to: rgb(var(--tb-accent-100)) var(--rb-gradient-to-position);
5586
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5587
- }
5588
- :where(.theme-scope) .to-accent-100 {
5589
- --rb-gradient-to: rgb(var(--tb-accent-100)) var(--rb-gradient-to-position);
5590
- }
5591
- :where(.theme-scope) .from-accent-200 {
5592
- --rb-gradient-from: rgb(var(--tb-accent-200)) var(--rb-gradient-from-position);
5593
- --rb-gradient-to: rgb(var(--tb-accent-200)) var(--rb-gradient-to-position);
5594
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5595
- }
5596
- :where(.theme-scope) .to-accent-200 {
5597
- --rb-gradient-to: rgb(var(--tb-accent-200)) var(--rb-gradient-to-position);
5598
- }
5599
- :where(.theme-scope) .from-accent-300 {
5600
- --rb-gradient-from: rgb(var(--tb-accent-300)) var(--rb-gradient-from-position);
5601
- --rb-gradient-to: rgb(var(--tb-accent-300)) var(--rb-gradient-to-position);
5602
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5603
- }
5604
- :where(.theme-scope) .to-accent-300 {
5605
- --rb-gradient-to: rgb(var(--tb-accent-300)) var(--rb-gradient-to-position);
5606
- }
5607
- :where(.theme-scope) .from-accent-400 {
5608
- --rb-gradient-from: rgb(var(--tb-accent-400)) var(--rb-gradient-from-position);
5609
- --rb-gradient-to: rgb(var(--tb-accent-400)) var(--rb-gradient-to-position);
5610
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5611
- }
5612
- :where(.theme-scope) .to-accent-400 {
5613
- --rb-gradient-to: rgb(var(--tb-accent-400)) var(--rb-gradient-to-position);
5614
- }
5615
- :where(.theme-scope) .from-accent-500 {
5616
- --rb-gradient-from: rgb(var(--tb-accent-500)) var(--rb-gradient-from-position);
5617
- --rb-gradient-to: rgb(var(--tb-accent-500)) var(--rb-gradient-to-position);
5618
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5619
- }
5620
- :where(.theme-scope) .to-accent-500 {
5621
- --rb-gradient-to: rgb(var(--tb-accent-500)) var(--rb-gradient-to-position);
5622
- }
5623
- :where(.theme-scope) .from-accent-600 {
5624
- --rb-gradient-from: rgb(var(--tb-accent-600)) var(--rb-gradient-from-position);
5625
- --rb-gradient-to: rgb(var(--tb-accent-600)) var(--rb-gradient-to-position);
5626
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5627
- }
5628
- :where(.theme-scope) .to-accent-600 {
5629
- --rb-gradient-to: rgb(var(--tb-accent-600)) var(--rb-gradient-to-position);
5630
- }
5631
- :where(.theme-scope) .from-accent-700 {
5632
- --rb-gradient-from: rgb(var(--tb-accent-700)) var(--rb-gradient-from-position);
5633
- --rb-gradient-to: rgb(var(--tb-accent-700)) var(--rb-gradient-to-position);
5634
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5635
- }
5636
- :where(.theme-scope) .to-accent-700 {
5637
- --rb-gradient-to: rgb(var(--tb-accent-700)) var(--rb-gradient-to-position);
5638
- }
5639
- :where(.theme-scope) .from-accent-800 {
5640
- --rb-gradient-from: rgb(var(--tb-accent-800)) var(--rb-gradient-from-position);
5641
- --rb-gradient-to: rgb(var(--tb-accent-800)) var(--rb-gradient-to-position);
5642
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5643
- }
5644
- :where(.theme-scope) .to-accent-800 {
5645
- --rb-gradient-to: rgb(var(--tb-accent-800)) var(--rb-gradient-to-position);
5646
- }
5647
- :where(.theme-scope) .from-accent-900 {
5648
- --rb-gradient-from: rgb(var(--tb-accent-900)) var(--rb-gradient-from-position);
5649
- --rb-gradient-to: rgb(var(--tb-accent-900)) var(--rb-gradient-to-position);
5650
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5651
- }
5652
- :where(.theme-scope) .to-accent-900 {
5653
- --rb-gradient-to: rgb(var(--tb-accent-900)) var(--rb-gradient-to-position);
5654
- }
5655
- :where(.theme-scope) .from-accent-950 {
5656
- --rb-gradient-from: rgb(var(--tb-accent-950)) var(--rb-gradient-from-position);
5657
- --rb-gradient-to: rgb(var(--tb-accent-950)) var(--rb-gradient-to-position);
5658
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5659
- }
5660
- :where(.theme-scope) .to-accent-950 {
5661
- --rb-gradient-to: rgb(var(--tb-accent-950)) var(--rb-gradient-to-position);
5662
- }
5605
+ :where(.theme-scope) .transition-theme {
5606
+ transition: all var(--motion-duration) var(--motion-ease);
5607
+ }
5608
+ :where(.theme-scope) .transition-theme-standard {
5609
+ transition: all var(--motion-duration) var(--motion-ease);
5610
+ }
5611
+ :where(.theme-scope) .transition-theme-subtle {
5612
+ transition: all calc(var(--motion-duration) * 0.75) var(--motion-ease);
5613
+ }
5614
+ :where(.theme-scope) .transition-theme-expressive {
5615
+ transition: all calc(var(--motion-duration) * 1.35) var(--motion-ease);
5616
+ }
5663
5617
 
5664
- /* Shade tokens (50..950) for neutral */
5665
- :where(.theme-scope) .from-neutral-50 {
5666
- --rb-gradient-from: rgb(var(--tb-neutral-50)) var(--rb-gradient-from-position);
5667
- --rb-gradient-to: rgb(var(--tb-neutral-50)) var(--rb-gradient-to-position);
5668
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5669
- }
5670
- :where(.theme-scope) .to-neutral-50 {
5671
- --rb-gradient-to: rgb(var(--tb-neutral-50)) var(--rb-gradient-to-position);
5672
- }
5673
- :where(.theme-scope) .from-neutral-100 {
5674
- --rb-gradient-from: rgb(var(--tb-neutral-100))
5675
- var(--rb-gradient-from-position);
5676
- --rb-gradient-to: rgb(var(--tb-neutral-100)) var(--rb-gradient-to-position);
5677
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5678
- }
5679
- :where(.theme-scope) .to-neutral-100 {
5680
- --rb-gradient-to: rgb(var(--tb-neutral-100)) var(--rb-gradient-to-position);
5681
- }
5682
- :where(.theme-scope) .from-neutral-200 {
5683
- --rb-gradient-from: rgb(var(--tb-neutral-200))
5684
- var(--rb-gradient-from-position);
5685
- --rb-gradient-to: rgb(var(--tb-neutral-200)) var(--rb-gradient-to-position);
5686
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5687
- }
5688
- :where(.theme-scope) .to-neutral-200 {
5689
- --rb-gradient-to: rgb(var(--tb-neutral-200)) var(--rb-gradient-to-position);
5690
- }
5691
- :where(.theme-scope) .from-neutral-300 {
5692
- --rb-gradient-from: rgb(var(--tb-neutral-300))
5693
- var(--rb-gradient-from-position);
5694
- --rb-gradient-to: rgb(var(--tb-neutral-300)) var(--rb-gradient-to-position);
5695
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5696
- }
5697
- :where(.theme-scope) .to-neutral-300 {
5698
- --rb-gradient-to: rgb(var(--tb-neutral-300)) var(--rb-gradient-to-position);
5699
- }
5700
- :where(.theme-scope) .from-neutral-400 {
5701
- --rb-gradient-from: rgb(var(--tb-neutral-400))
5702
- var(--rb-gradient-from-position);
5703
- --rb-gradient-to: rgb(var(--tb-neutral-400)) var(--rb-gradient-to-position);
5704
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5705
- }
5706
- :where(.theme-scope) .to-neutral-400 {
5707
- --rb-gradient-to: rgb(var(--tb-neutral-400)) var(--rb-gradient-to-position);
5708
- }
5709
- :where(.theme-scope) .from-neutral-500 {
5710
- --rb-gradient-from: rgb(var(--tb-neutral-500))
5711
- var(--rb-gradient-from-position);
5712
- --rb-gradient-to: rgb(var(--tb-neutral-500)) var(--rb-gradient-to-position);
5713
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5714
- }
5715
- :where(.theme-scope) .to-neutral-500 {
5716
- --rb-gradient-to: rgb(var(--tb-neutral-500)) var(--rb-gradient-to-position);
5717
- }
5718
- :where(.theme-scope) .from-neutral-600 {
5719
- --rb-gradient-from: rgb(var(--tb-neutral-600))
5720
- var(--rb-gradient-from-position);
5721
- --rb-gradient-to: rgb(var(--tb-neutral-600)) var(--rb-gradient-to-position);
5722
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5723
- }
5724
- :where(.theme-scope) .to-neutral-600 {
5725
- --rb-gradient-to: rgb(var(--tb-neutral-600)) var(--rb-gradient-to-position);
5726
- }
5727
- :where(.theme-scope) .from-neutral-700 {
5728
- --rb-gradient-from: rgb(var(--tb-neutral-700))
5729
- var(--rb-gradient-from-position);
5730
- --rb-gradient-to: rgb(var(--tb-neutral-700)) var(--rb-gradient-to-position);
5731
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5732
- }
5733
- :where(.theme-scope) .to-neutral-700 {
5734
- --rb-gradient-to: rgb(var(--tb-neutral-700)) var(--rb-gradient-to-position);
5735
- }
5736
- :where(.theme-scope) .from-neutral-800 {
5737
- --rb-gradient-from: rgb(var(--tb-neutral-800))
5738
- var(--rb-gradient-from-position);
5739
- --rb-gradient-to: rgb(var(--tb-neutral-800)) var(--rb-gradient-to-position);
5740
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5741
- }
5742
- :where(.theme-scope) .to-neutral-800 {
5743
- --rb-gradient-to: rgb(var(--tb-neutral-800)) var(--rb-gradient-to-position);
5744
- }
5745
- :where(.theme-scope) .from-neutral-900 {
5746
- --rb-gradient-from: rgb(var(--tb-neutral-900))
5747
- var(--rb-gradient-from-position);
5748
- --rb-gradient-to: rgb(var(--tb-neutral-900)) var(--rb-gradient-to-position);
5749
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5750
- }
5751
- :where(.theme-scope) .to-neutral-900 {
5752
- --rb-gradient-to: rgb(var(--tb-neutral-900)) var(--rb-gradient-to-position);
5753
- }
5754
- :where(.theme-scope) .from-neutral-950 {
5755
- --rb-gradient-from: rgb(var(--tb-neutral-950))
5756
- var(--rb-gradient-from-position);
5757
- --rb-gradient-to: rgb(var(--tb-neutral-950)) var(--rb-gradient-to-position);
5758
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5759
- }
5760
- :where(.theme-scope) .to-neutral-950 {
5761
- --rb-gradient-to: rgb(var(--tb-neutral-950)) var(--rb-gradient-to-position);
5762
- }
5763
-
5764
- /* =================================================================
5618
+ /* Shade tokens (50..950) for primary */
5619
+ :where(.theme-scope) .from-primary-50 {
5620
+ --rb-gradient-from: rgb(var(--tb-primary-50))
5621
+ var(--rb-gradient-from-position);
5622
+ --rb-gradient-to: rgb(var(--tb-primary-50)) var(--rb-gradient-to-position);
5623
+ --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5624
+ }
5625
+ :where(.theme-scope) .to-primary-50 {
5626
+ --rb-gradient-to: rgb(var(--tb-primary-50)) var(--rb-gradient-to-position);
5627
+ }
5628
+ :where(.theme-scope) .from-primary-100 {
5629
+ --rb-gradient-from: rgb(var(--tb-primary-100))
5630
+ var(--rb-gradient-from-position);
5631
+ --rb-gradient-to: rgb(var(--tb-primary-100)) var(--rb-gradient-to-position);
5632
+ --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5633
+ }
5634
+ :where(.theme-scope) .to-primary-100 {
5635
+ --rb-gradient-to: rgb(var(--tb-primary-100)) var(--rb-gradient-to-position);
5636
+ }
5637
+ :where(.theme-scope) .from-primary-200 {
5638
+ --rb-gradient-from: rgb(var(--tb-primary-200))
5639
+ var(--rb-gradient-from-position);
5640
+ --rb-gradient-to: rgb(var(--tb-primary-200)) var(--rb-gradient-to-position);
5641
+ --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5642
+ }
5643
+ :where(.theme-scope) .to-primary-200 {
5644
+ --rb-gradient-to: rgb(var(--tb-primary-200)) var(--rb-gradient-to-position);
5645
+ }
5646
+ :where(.theme-scope) .from-primary-300 {
5647
+ --rb-gradient-from: rgb(var(--tb-primary-300))
5648
+ var(--rb-gradient-from-position);
5649
+ --rb-gradient-to: rgb(var(--tb-primary-300)) var(--rb-gradient-to-position);
5650
+ --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5651
+ }
5652
+ :where(.theme-scope) .to-primary-300 {
5653
+ --rb-gradient-to: rgb(var(--tb-primary-300)) var(--rb-gradient-to-position);
5654
+ }
5655
+ :where(.theme-scope) .from-primary-400 {
5656
+ --rb-gradient-from: rgb(var(--tb-primary-400))
5657
+ var(--rb-gradient-from-position);
5658
+ --rb-gradient-to: rgb(var(--tb-primary-400)) var(--rb-gradient-to-position);
5659
+ --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5660
+ }
5661
+ :where(.theme-scope) .to-primary-400 {
5662
+ --rb-gradient-to: rgb(var(--tb-primary-400)) var(--rb-gradient-to-position);
5663
+ }
5664
+ :where(.theme-scope) .from-primary-500 {
5665
+ --rb-gradient-from: rgb(var(--tb-primary-500))
5666
+ var(--rb-gradient-from-position);
5667
+ --rb-gradient-to: rgb(var(--tb-primary-500)) var(--rb-gradient-to-position);
5668
+ --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5669
+ }
5670
+ :where(.theme-scope) .to-primary-500 {
5671
+ --rb-gradient-to: rgb(var(--tb-primary-500)) var(--rb-gradient-to-position);
5672
+ }
5673
+ :where(.theme-scope) .from-primary-600 {
5674
+ --rb-gradient-from: rgb(var(--tb-primary-600))
5675
+ var(--rb-gradient-from-position);
5676
+ --rb-gradient-to: rgb(var(--tb-primary-600)) var(--rb-gradient-to-position);
5677
+ --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5678
+ }
5679
+ :where(.theme-scope) .to-primary-600 {
5680
+ --rb-gradient-to: rgb(var(--tb-primary-600)) var(--rb-gradient-to-position);
5681
+ }
5682
+ :where(.theme-scope) .from-primary-700 {
5683
+ --rb-gradient-from: rgb(var(--tb-primary-700))
5684
+ var(--rb-gradient-from-position);
5685
+ --rb-gradient-to: rgb(var(--tb-primary-700)) var(--rb-gradient-to-position);
5686
+ --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5687
+ }
5688
+ :where(.theme-scope) .to-primary-700 {
5689
+ --rb-gradient-to: rgb(var(--tb-primary-700)) var(--rb-gradient-to-position);
5690
+ }
5691
+ :where(.theme-scope) .from-primary-800 {
5692
+ --rb-gradient-from: rgb(var(--tb-primary-800))
5693
+ var(--rb-gradient-from-position);
5694
+ --rb-gradient-to: rgb(var(--tb-primary-800)) var(--rb-gradient-to-position);
5695
+ --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5696
+ }
5697
+ :where(.theme-scope) .to-primary-800 {
5698
+ --rb-gradient-to: rgb(var(--tb-primary-800)) var(--rb-gradient-to-position);
5699
+ }
5700
+ :where(.theme-scope) .from-primary-900 {
5701
+ --rb-gradient-from: rgb(var(--tb-primary-900))
5702
+ var(--rb-gradient-from-position);
5703
+ --rb-gradient-to: rgb(var(--tb-primary-900)) var(--rb-gradient-to-position);
5704
+ --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5705
+ }
5706
+ :where(.theme-scope) .to-primary-900 {
5707
+ --rb-gradient-to: rgb(var(--tb-primary-900)) var(--rb-gradient-to-position);
5708
+ }
5709
+ :where(.theme-scope) .from-primary-950 {
5710
+ --rb-gradient-from: rgb(var(--tb-primary-950))
5711
+ var(--rb-gradient-from-position);
5712
+ --rb-gradient-to: rgb(var(--tb-primary-950)) var(--rb-gradient-to-position);
5713
+ --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5714
+ }
5715
+ :where(.theme-scope) .to-primary-950 {
5716
+ --rb-gradient-to: rgb(var(--tb-primary-950)) var(--rb-gradient-to-position);
5717
+ }
5718
+
5719
+ /* Shade tokens (50..950) for secondary */
5720
+ :where(.theme-scope) .from-secondary-50 {
5721
+ --rb-gradient-from: rgb(var(--tb-secondary-50))
5722
+ var(--rb-gradient-from-position);
5723
+ --rb-gradient-to: rgb(var(--tb-secondary-50)) var(--rb-gradient-to-position);
5724
+ --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5725
+ }
5726
+ :where(.theme-scope) .to-secondary-50 {
5727
+ --rb-gradient-to: rgb(var(--tb-secondary-50)) var(--rb-gradient-to-position);
5728
+ }
5729
+ :where(.theme-scope) .from-secondary-100 {
5730
+ --rb-gradient-from: rgb(var(--tb-secondary-100))
5731
+ var(--rb-gradient-from-position);
5732
+ --rb-gradient-to: rgb(var(--tb-secondary-100))
5733
+ var(--rb-gradient-to-position);
5734
+ --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5735
+ }
5736
+ :where(.theme-scope) .to-secondary-100 {
5737
+ --rb-gradient-to: rgb(var(--tb-secondary-100))
5738
+ var(--rb-gradient-to-position);
5739
+ }
5740
+ :where(.theme-scope) .from-secondary-200 {
5741
+ --rb-gradient-from: rgb(var(--tb-secondary-200))
5742
+ var(--rb-gradient-from-position);
5743
+ --rb-gradient-to: rgb(var(--tb-secondary-200))
5744
+ var(--rb-gradient-to-position);
5745
+ --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5746
+ }
5747
+ :where(.theme-scope) .to-secondary-200 {
5748
+ --rb-gradient-to: rgb(var(--tb-secondary-200))
5749
+ var(--rb-gradient-to-position);
5750
+ }
5751
+ :where(.theme-scope) .from-secondary-300 {
5752
+ --rb-gradient-from: rgb(var(--tb-secondary-300))
5753
+ var(--rb-gradient-from-position);
5754
+ --rb-gradient-to: rgb(var(--tb-secondary-300))
5755
+ var(--rb-gradient-to-position);
5756
+ --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5757
+ }
5758
+ :where(.theme-scope) .to-secondary-300 {
5759
+ --rb-gradient-to: rgb(var(--tb-secondary-300))
5760
+ var(--rb-gradient-to-position);
5761
+ }
5762
+ :where(.theme-scope) .from-secondary-400 {
5763
+ --rb-gradient-from: rgb(var(--tb-secondary-400))
5764
+ var(--rb-gradient-from-position);
5765
+ --rb-gradient-to: rgb(var(--tb-secondary-400))
5766
+ var(--rb-gradient-to-position);
5767
+ --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5768
+ }
5769
+ :where(.theme-scope) .to-secondary-400 {
5770
+ --rb-gradient-to: rgb(var(--tb-secondary-400))
5771
+ var(--rb-gradient-to-position);
5772
+ }
5773
+ :where(.theme-scope) .from-secondary-500 {
5774
+ --rb-gradient-from: rgb(var(--tb-secondary-500))
5775
+ var(--rb-gradient-from-position);
5776
+ --rb-gradient-to: rgb(var(--tb-secondary-500))
5777
+ var(--rb-gradient-to-position);
5778
+ --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5779
+ }
5780
+ :where(.theme-scope) .to-secondary-500 {
5781
+ --rb-gradient-to: rgb(var(--tb-secondary-500))
5782
+ var(--rb-gradient-to-position);
5783
+ }
5784
+ :where(.theme-scope) .from-secondary-600 {
5785
+ --rb-gradient-from: rgb(var(--tb-secondary-600))
5786
+ var(--rb-gradient-from-position);
5787
+ --rb-gradient-to: rgb(var(--tb-secondary-600))
5788
+ var(--rb-gradient-to-position);
5789
+ --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5790
+ }
5791
+ :where(.theme-scope) .to-secondary-600 {
5792
+ --rb-gradient-to: rgb(var(--tb-secondary-600))
5793
+ var(--rb-gradient-to-position);
5794
+ }
5795
+ :where(.theme-scope) .from-secondary-700 {
5796
+ --rb-gradient-from: rgb(var(--tb-secondary-700))
5797
+ var(--rb-gradient-from-position);
5798
+ --rb-gradient-to: rgb(var(--tb-secondary-700))
5799
+ var(--rb-gradient-to-position);
5800
+ --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5801
+ }
5802
+ :where(.theme-scope) .to-secondary-700 {
5803
+ --rb-gradient-to: rgb(var(--tb-secondary-700))
5804
+ var(--rb-gradient-to-position);
5805
+ }
5806
+ :where(.theme-scope) .from-secondary-800 {
5807
+ --rb-gradient-from: rgb(var(--tb-secondary-800))
5808
+ var(--rb-gradient-from-position);
5809
+ --rb-gradient-to: rgb(var(--tb-secondary-800))
5810
+ var(--rb-gradient-to-position);
5811
+ --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5812
+ }
5813
+ :where(.theme-scope) .to-secondary-800 {
5814
+ --rb-gradient-to: rgb(var(--tb-secondary-800))
5815
+ var(--rb-gradient-to-position);
5816
+ }
5817
+ :where(.theme-scope) .from-secondary-900 {
5818
+ --rb-gradient-from: rgb(var(--tb-secondary-900))
5819
+ var(--rb-gradient-from-position);
5820
+ --rb-gradient-to: rgb(var(--tb-secondary-900))
5821
+ var(--rb-gradient-to-position);
5822
+ --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5823
+ }
5824
+ :where(.theme-scope) .to-secondary-900 {
5825
+ --rb-gradient-to: rgb(var(--tb-secondary-900))
5826
+ var(--rb-gradient-to-position);
5827
+ }
5828
+ :where(.theme-scope) .from-secondary-950 {
5829
+ --rb-gradient-from: rgb(var(--tb-secondary-950))
5830
+ var(--rb-gradient-from-position);
5831
+ --rb-gradient-to: rgb(var(--tb-secondary-950))
5832
+ var(--rb-gradient-to-position);
5833
+ --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5834
+ }
5835
+ :where(.theme-scope) .to-secondary-950 {
5836
+ --rb-gradient-to: rgb(var(--tb-secondary-950))
5837
+ var(--rb-gradient-to-position);
5838
+ }
5839
+
5840
+ /* Shade tokens (50..950) for accent */
5841
+ :where(.theme-scope) .from-accent-50 {
5842
+ --rb-gradient-from: rgb(var(--tb-accent-50))
5843
+ var(--rb-gradient-from-position);
5844
+ --rb-gradient-to: rgb(var(--tb-accent-50)) var(--rb-gradient-to-position);
5845
+ --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5846
+ }
5847
+ :where(.theme-scope) .to-accent-50 {
5848
+ --rb-gradient-to: rgb(var(--tb-accent-50)) var(--rb-gradient-to-position);
5849
+ }
5850
+ :where(.theme-scope) .from-accent-100 {
5851
+ --rb-gradient-from: rgb(var(--tb-accent-100))
5852
+ var(--rb-gradient-from-position);
5853
+ --rb-gradient-to: rgb(var(--tb-accent-100)) var(--rb-gradient-to-position);
5854
+ --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5855
+ }
5856
+ :where(.theme-scope) .to-accent-100 {
5857
+ --rb-gradient-to: rgb(var(--tb-accent-100)) var(--rb-gradient-to-position);
5858
+ }
5859
+ :where(.theme-scope) .from-accent-200 {
5860
+ --rb-gradient-from: rgb(var(--tb-accent-200))
5861
+ var(--rb-gradient-from-position);
5862
+ --rb-gradient-to: rgb(var(--tb-accent-200)) var(--rb-gradient-to-position);
5863
+ --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5864
+ }
5865
+ :where(.theme-scope) .to-accent-200 {
5866
+ --rb-gradient-to: rgb(var(--tb-accent-200)) var(--rb-gradient-to-position);
5867
+ }
5868
+ :where(.theme-scope) .from-accent-300 {
5869
+ --rb-gradient-from: rgb(var(--tb-accent-300))
5870
+ var(--rb-gradient-from-position);
5871
+ --rb-gradient-to: rgb(var(--tb-accent-300)) var(--rb-gradient-to-position);
5872
+ --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5873
+ }
5874
+ :where(.theme-scope) .to-accent-300 {
5875
+ --rb-gradient-to: rgb(var(--tb-accent-300)) var(--rb-gradient-to-position);
5876
+ }
5877
+ :where(.theme-scope) .from-accent-400 {
5878
+ --rb-gradient-from: rgb(var(--tb-accent-400))
5879
+ var(--rb-gradient-from-position);
5880
+ --rb-gradient-to: rgb(var(--tb-accent-400)) var(--rb-gradient-to-position);
5881
+ --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5882
+ }
5883
+ :where(.theme-scope) .to-accent-400 {
5884
+ --rb-gradient-to: rgb(var(--tb-accent-400)) var(--rb-gradient-to-position);
5885
+ }
5886
+ :where(.theme-scope) .from-accent-500 {
5887
+ --rb-gradient-from: rgb(var(--tb-accent-500))
5888
+ var(--rb-gradient-from-position);
5889
+ --rb-gradient-to: rgb(var(--tb-accent-500)) var(--rb-gradient-to-position);
5890
+ --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5891
+ }
5892
+ :where(.theme-scope) .to-accent-500 {
5893
+ --rb-gradient-to: rgb(var(--tb-accent-500)) var(--rb-gradient-to-position);
5894
+ }
5895
+ :where(.theme-scope) .from-accent-600 {
5896
+ --rb-gradient-from: rgb(var(--tb-accent-600))
5897
+ var(--rb-gradient-from-position);
5898
+ --rb-gradient-to: rgb(var(--tb-accent-600)) var(--rb-gradient-to-position);
5899
+ --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5900
+ }
5901
+ :where(.theme-scope) .to-accent-600 {
5902
+ --rb-gradient-to: rgb(var(--tb-accent-600)) var(--rb-gradient-to-position);
5903
+ }
5904
+ :where(.theme-scope) .from-accent-700 {
5905
+ --rb-gradient-from: rgb(var(--tb-accent-700))
5906
+ var(--rb-gradient-from-position);
5907
+ --rb-gradient-to: rgb(var(--tb-accent-700)) var(--rb-gradient-to-position);
5908
+ --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5909
+ }
5910
+ :where(.theme-scope) .to-accent-700 {
5911
+ --rb-gradient-to: rgb(var(--tb-accent-700)) var(--rb-gradient-to-position);
5912
+ }
5913
+ :where(.theme-scope) .from-accent-800 {
5914
+ --rb-gradient-from: rgb(var(--tb-accent-800))
5915
+ var(--rb-gradient-from-position);
5916
+ --rb-gradient-to: rgb(var(--tb-accent-800)) var(--rb-gradient-to-position);
5917
+ --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5918
+ }
5919
+ :where(.theme-scope) .to-accent-800 {
5920
+ --rb-gradient-to: rgb(var(--tb-accent-800)) var(--rb-gradient-to-position);
5921
+ }
5922
+ :where(.theme-scope) .from-accent-900 {
5923
+ --rb-gradient-from: rgb(var(--tb-accent-900))
5924
+ var(--rb-gradient-from-position);
5925
+ --rb-gradient-to: rgb(var(--tb-accent-900)) var(--rb-gradient-to-position);
5926
+ --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5927
+ }
5928
+ :where(.theme-scope) .to-accent-900 {
5929
+ --rb-gradient-to: rgb(var(--tb-accent-900)) var(--rb-gradient-to-position);
5930
+ }
5931
+ :where(.theme-scope) .from-accent-950 {
5932
+ --rb-gradient-from: rgb(var(--tb-accent-950))
5933
+ var(--rb-gradient-from-position);
5934
+ --rb-gradient-to: rgb(var(--tb-accent-950)) var(--rb-gradient-to-position);
5935
+ --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5936
+ }
5937
+ :where(.theme-scope) .to-accent-950 {
5938
+ --rb-gradient-to: rgb(var(--tb-accent-950)) var(--rb-gradient-to-position);
5939
+ }
5940
+
5941
+ /* Shade tokens (50..950) for neutral */
5942
+ :where(.theme-scope) .from-neutral-50 {
5943
+ --rb-gradient-from: rgb(var(--tb-neutral-50))
5944
+ var(--rb-gradient-from-position);
5945
+ --rb-gradient-to: rgb(var(--tb-neutral-50)) var(--rb-gradient-to-position);
5946
+ --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5947
+ }
5948
+ :where(.theme-scope) .to-neutral-50 {
5949
+ --rb-gradient-to: rgb(var(--tb-neutral-50)) var(--rb-gradient-to-position);
5950
+ }
5951
+ :where(.theme-scope) .from-neutral-100 {
5952
+ --rb-gradient-from: rgb(var(--tb-neutral-100))
5953
+ var(--rb-gradient-from-position);
5954
+ --rb-gradient-to: rgb(var(--tb-neutral-100)) var(--rb-gradient-to-position);
5955
+ --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5956
+ }
5957
+ :where(.theme-scope) .to-neutral-100 {
5958
+ --rb-gradient-to: rgb(var(--tb-neutral-100)) var(--rb-gradient-to-position);
5959
+ }
5960
+ :where(.theme-scope) .from-neutral-200 {
5961
+ --rb-gradient-from: rgb(var(--tb-neutral-200))
5962
+ var(--rb-gradient-from-position);
5963
+ --rb-gradient-to: rgb(var(--tb-neutral-200)) var(--rb-gradient-to-position);
5964
+ --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5965
+ }
5966
+ :where(.theme-scope) .to-neutral-200 {
5967
+ --rb-gradient-to: rgb(var(--tb-neutral-200)) var(--rb-gradient-to-position);
5968
+ }
5969
+ :where(.theme-scope) .from-neutral-300 {
5970
+ --rb-gradient-from: rgb(var(--tb-neutral-300))
5971
+ var(--rb-gradient-from-position);
5972
+ --rb-gradient-to: rgb(var(--tb-neutral-300)) var(--rb-gradient-to-position);
5973
+ --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5974
+ }
5975
+ :where(.theme-scope) .to-neutral-300 {
5976
+ --rb-gradient-to: rgb(var(--tb-neutral-300)) var(--rb-gradient-to-position);
5977
+ }
5978
+ :where(.theme-scope) .from-neutral-400 {
5979
+ --rb-gradient-from: rgb(var(--tb-neutral-400))
5980
+ var(--rb-gradient-from-position);
5981
+ --rb-gradient-to: rgb(var(--tb-neutral-400)) var(--rb-gradient-to-position);
5982
+ --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5983
+ }
5984
+ :where(.theme-scope) .to-neutral-400 {
5985
+ --rb-gradient-to: rgb(var(--tb-neutral-400)) var(--rb-gradient-to-position);
5986
+ }
5987
+ :where(.theme-scope) .from-neutral-500 {
5988
+ --rb-gradient-from: rgb(var(--tb-neutral-500))
5989
+ var(--rb-gradient-from-position);
5990
+ --rb-gradient-to: rgb(var(--tb-neutral-500)) var(--rb-gradient-to-position);
5991
+ --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5992
+ }
5993
+ :where(.theme-scope) .to-neutral-500 {
5994
+ --rb-gradient-to: rgb(var(--tb-neutral-500)) var(--rb-gradient-to-position);
5995
+ }
5996
+ :where(.theme-scope) .from-neutral-600 {
5997
+ --rb-gradient-from: rgb(var(--tb-neutral-600))
5998
+ var(--rb-gradient-from-position);
5999
+ --rb-gradient-to: rgb(var(--tb-neutral-600)) var(--rb-gradient-to-position);
6000
+ --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
6001
+ }
6002
+ :where(.theme-scope) .to-neutral-600 {
6003
+ --rb-gradient-to: rgb(var(--tb-neutral-600)) var(--rb-gradient-to-position);
6004
+ }
6005
+ :where(.theme-scope) .from-neutral-700 {
6006
+ --rb-gradient-from: rgb(var(--tb-neutral-700))
6007
+ var(--rb-gradient-from-position);
6008
+ --rb-gradient-to: rgb(var(--tb-neutral-700)) var(--rb-gradient-to-position);
6009
+ --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
6010
+ }
6011
+ :where(.theme-scope) .to-neutral-700 {
6012
+ --rb-gradient-to: rgb(var(--tb-neutral-700)) var(--rb-gradient-to-position);
6013
+ }
6014
+ :where(.theme-scope) .from-neutral-800 {
6015
+ --rb-gradient-from: rgb(var(--tb-neutral-800))
6016
+ var(--rb-gradient-from-position);
6017
+ --rb-gradient-to: rgb(var(--tb-neutral-800)) var(--rb-gradient-to-position);
6018
+ --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
6019
+ }
6020
+ :where(.theme-scope) .to-neutral-800 {
6021
+ --rb-gradient-to: rgb(var(--tb-neutral-800)) var(--rb-gradient-to-position);
6022
+ }
6023
+ :where(.theme-scope) .from-neutral-900 {
6024
+ --rb-gradient-from: rgb(var(--tb-neutral-900))
6025
+ var(--rb-gradient-from-position);
6026
+ --rb-gradient-to: rgb(var(--tb-neutral-900)) var(--rb-gradient-to-position);
6027
+ --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
6028
+ }
6029
+ :where(.theme-scope) .to-neutral-900 {
6030
+ --rb-gradient-to: rgb(var(--tb-neutral-900)) var(--rb-gradient-to-position);
6031
+ }
6032
+ :where(.theme-scope) .from-neutral-950 {
6033
+ --rb-gradient-from: rgb(var(--tb-neutral-950))
6034
+ var(--rb-gradient-from-position);
6035
+ --rb-gradient-to: rgb(var(--tb-neutral-950)) var(--rb-gradient-to-position);
6036
+ --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
6037
+ }
6038
+ :where(.theme-scope) .to-neutral-950 {
6039
+ --rb-gradient-to: rgb(var(--tb-neutral-950)) var(--rb-gradient-to-position);
6040
+ }
6041
+
6042
+ /* =================================================================
5765
6043
  Header System Class Naming Conventions
5766
6044
 
5767
6045
  rb-header-* Utility-style classes set in site-header.ts layouts
@@ -5774,240 +6052,240 @@ var containerResponsiveThemeCss = `/*
5774
6052
  (nav-dropdown, nav-mobile-panel, nav-underline-grow)
5775
6053
  ================================================================= */
5776
6054
 
5777
- /* =================================================================
6055
+ /* =================================================================
5778
6056
  Header Layout Padding
5779
6057
 
5780
6058
  Padding is controlled entirely by CSS based on variant class.
5781
6059
  This ensures shrink headers look identical to non-shrink before scroll.
5782
6060
  ================================================================= */
5783
6061
 
5784
- /* Prevent scroll anchoring feedback loops when the header height transitions.
6062
+ /* Prevent scroll anchoring feedback loops when the header height transitions.
5785
6063
  In some browsers, resizing a sticky header near the top can cause the UA to
5786
6064
  adjust scroll position ("scroll anchoring"), which then flips the
5787
6065
  \`header-scrolled\` threshold logic back and forth. */
5788
- :where(.theme-scope) .block-site-header {
5789
- overflow-anchor: none;
5790
- }
6066
+ :where(.theme-scope) .block-site-header {
6067
+ overflow-anchor: none;
6068
+ }
5791
6069
 
5792
- /* Base padding for horizontal variants (classic, transparent) */
5793
- :where(.theme-scope) .rb-header-layout {
5794
- padding-top: 1rem;
5795
- padding-bottom: 1rem;
5796
- transition: padding 300ms var(--motion-ease, ease);
5797
- }
6070
+ /* Base padding for horizontal variants (classic, transparent) */
6071
+ :where(.theme-scope) .rb-header-layout {
6072
+ padding-top: 1rem;
6073
+ padding-bottom: 1rem;
6074
+ transition: padding 300ms var(--motion-ease, ease);
6075
+ }
5798
6076
 
5799
- /* Vertical variants need more breathing room
6077
+ /* Vertical variants need more breathing room
5800
6078
  Note: header-variant-* is on Section (ancestor), rb-header-layout on inner div */
5801
- :where(.theme-scope) .header-variant-centered .rb-header-layout,
5802
- :where(.theme-scope) .header-variant-editorial .rb-header-layout {
5803
- padding-top: 1.5rem;
5804
- padding-bottom: 1.5rem;
5805
- }
6079
+ :where(.theme-scope) .header-variant-centered .rb-header-layout {
6080
+ padding-top: 1.5rem;
6081
+ padding-bottom: 1.5rem;
6082
+ }
5806
6083
 
5807
- /* Floating variant - compact padding */
5808
- :where(.theme-scope) .header-variant-floating .rb-header-layout {
5809
- padding-top: 0.75rem;
5810
- padding-bottom: 0.75rem;
5811
- }
6084
+ /* Floating variant - compact padding */
6085
+ :where(.theme-scope) .header-variant-floating .rb-header-layout {
6086
+ padding-top: 0.75rem;
6087
+ padding-bottom: 0.75rem;
6088
+ }
5812
6089
 
5813
- /* =================================================================
6090
+ /* =================================================================
5814
6091
  Header Shrink-on-Scroll
5815
6092
 
5816
6093
  Only applies when .rb-header-shrink is present AND user has scrolled.
5817
6094
  No changes until scroll - shrink header = non-shrink header initially.
5818
6095
  ================================================================= */
5819
6096
 
5820
- /* Scrolled state - reduce padding */
5821
- :where(.theme-scope) .rb-header-shrink.header-scrolled .rb-header-layout {
5822
- padding-top: 0.5rem;
5823
- padding-bottom: 0.5rem;
5824
- }
6097
+ /* Scrolled state - reduce padding */
6098
+ :where(.theme-scope) .rb-header-shrink.header-scrolled .rb-header-layout {
6099
+ padding-top: 0.5rem;
6100
+ padding-bottom: 0.5rem;
6101
+ }
5825
6102
 
5826
- /* Vertical variants get gentler reduction
6103
+ /* Vertical variants get gentler reduction
5827
6104
  Note: Both classes are on Section, rb-header-layout on inner div */
5828
- :where(.theme-scope) .rb-header-shrink.header-scrolled.header-variant-centered .rb-header-layout,
5829
- :where(.theme-scope) .rb-header-shrink.header-scrolled.header-variant-editorial .rb-header-layout {
5830
- padding-top: 0.75rem;
5831
- padding-bottom: 0.75rem;
5832
- }
6105
+ :where(.theme-scope)
6106
+ .rb-header-shrink.header-scrolled.header-variant-centered
6107
+ .rb-header-layout {
6108
+ padding-top: 0.75rem;
6109
+ padding-bottom: 0.75rem;
6110
+ }
5833
6111
 
5834
- /* Floating variant */
5835
- :where(.theme-scope) .rb-header-shrink.header-scrolled.header-variant-floating .rb-header-layout {
5836
- padding-top: 0.25rem;
5837
- padding-bottom: 0.25rem;
5838
- }
6112
+ /* Floating variant */
6113
+ :where(.theme-scope)
6114
+ .rb-header-shrink.header-scrolled.header-variant-floating
6115
+ .rb-header-layout {
6116
+ padding-top: 0.25rem;
6117
+ padding-bottom: 0.25rem;
6118
+ }
5839
6119
 
5840
- /* =================================================================
6120
+ /* =================================================================
5841
6121
  Logo & Title Sizing
5842
6122
 
5843
6123
  Font sizes controlled here, not via utility classes, so shrink
5844
6124
  transitions work (utility classes would override :where()).
5845
6125
  ================================================================= */
5846
6126
 
5847
- /* Logo image sizing */
5848
- :where(.theme-scope) .rb-header-logo-sm {
5849
- height: 2.5rem;
5850
- transition: height 300ms var(--motion-ease, ease);
5851
- }
5852
- :where(.theme-scope) .rb-header-logo-lg {
5853
- height: 3rem;
5854
- transition: height 300ms var(--motion-ease, ease);
5855
- }
6127
+ /* Logo image sizing */
6128
+ :where(.theme-scope) .rb-header-logo-sm {
6129
+ height: 2.5rem;
6130
+ transition: height 300ms var(--motion-ease, ease);
6131
+ }
6132
+ :where(.theme-scope) .rb-header-logo-lg {
6133
+ height: 3rem;
6134
+ transition: height 300ms var(--motion-ease, ease);
6135
+ }
5856
6136
 
5857
- /* Site title base font size (replaces rb-text-lg / rb-text-xl utilities) */
5858
- :where(.theme-scope) .header-logo-text {
5859
- font-size: 1.125rem; /* matches rb-text-lg */
5860
- line-height: 1.75rem;
5861
- transition: font-size 300ms var(--motion-ease, ease);
5862
- }
6137
+ /* Site title base font size (replaces rb-text-lg / rb-text-xl utilities) */
6138
+ :where(.theme-scope) .header-logo-text {
6139
+ font-size: 1.125rem; /* matches rb-text-lg */
6140
+ line-height: 1.75rem;
6141
+ transition: font-size 300ms var(--motion-ease, ease);
6142
+ }
5863
6143
 
5864
- /* Mobile: reduce site title size (~30%) to keep header compact */
5865
- @container rb-site (max-width: 767px) {
6144
+ /* Mobile: reduce site title size (~30%) to keep header compact */
6145
+ @container rb-site (max-width: 767px) {
5866
6146
  @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
5867
6147
  :where(.theme-scope) .header-logo-text {
5868
- font-size: 0.8rem;
5869
- line-height: 1.25rem;
5870
- }
6148
+ font-size: 0.8rem;
6149
+ line-height: 1.25rem;
6150
+ }
5871
6151
 
5872
- :where(.theme-scope) .header-variant-centered .header-logo-text,
5873
- :where(.theme-scope) .header-variant-editorial .header-logo-text {
5874
- font-size: 0.875rem;
5875
- line-height: 1.25rem;
5876
- }
6152
+ :where(.theme-scope) .header-variant-centered .header-logo-text {
6153
+ font-size: 0.875rem;
6154
+ line-height: 1.25rem;
6155
+ }
5877
6156
  }
5878
6157
  }
5879
6158
 
5880
- /* Centered/editorial variants use larger title */
5881
- :where(.theme-scope) .header-variant-centered .header-logo-text,
5882
- :where(.theme-scope) .header-variant-editorial .header-logo-text {
5883
- font-size: 1.25rem; /* matches rb-text-xl */
5884
- line-height: 1.75rem;
5885
- }
6159
+ /* Centered variant uses larger title */
6160
+ :where(.theme-scope) .header-variant-centered .header-logo-text {
6161
+ font-size: 1.25rem; /* matches rb-text-xl */
6162
+ line-height: 1.75rem;
6163
+ }
5886
6164
 
5887
- /* =================================================================
6165
+ /* =================================================================
5888
6166
  Shrink on Scroll - Logo & Title
5889
6167
  ================================================================= */
5890
6168
 
5891
- :where(.theme-scope) .rb-header-shrink.header-scrolled .rb-header-logo-sm {
5892
- height: 2rem;
5893
- }
5894
- :where(.theme-scope) .rb-header-shrink.header-scrolled .rb-header-logo-lg {
5895
- height: 2.5rem;
5896
- }
5897
- :where(.theme-scope) .rb-header-shrink.header-scrolled .header-logo-text {
5898
- font-size: 0.875rem;
5899
- }
6169
+ :where(.theme-scope) .rb-header-shrink.header-scrolled .rb-header-logo-sm {
6170
+ height: 2rem;
6171
+ }
6172
+ :where(.theme-scope) .rb-header-shrink.header-scrolled .rb-header-logo-lg {
6173
+ height: 2.5rem;
6174
+ }
6175
+ :where(.theme-scope) .rb-header-shrink.header-scrolled .header-logo-text {
6176
+ font-size: 0.875rem;
6177
+ }
5900
6178
 
5901
- @container rb-site (max-width: 767px) {
6179
+ @container rb-site (max-width: 767px) {
5902
6180
  @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
5903
6181
  :where(.theme-scope) .rb-header-shrink.header-scrolled .header-logo-text {
5904
- font-size: 0.75rem;
5905
- }
6182
+ font-size: 0.75rem;
6183
+ }
5906
6184
  }
5907
6185
  }
5908
6186
 
5909
- /* =================================================================
6187
+ /* =================================================================
5910
6188
  Accessibility: Reduced Motion
5911
6189
  ================================================================= */
5912
6190
 
5913
- @media (prefers-reduced-motion: reduce) {
5914
- :where(.theme-scope) .rb-header-layout,
5915
- :where(.theme-scope) .rb-header-logo-sm,
5916
- :where(.theme-scope) .rb-header-logo-lg,
5917
- :where(.theme-scope) .header-logo-text {
5918
- transition: none;
6191
+ @media (prefers-reduced-motion: reduce) {
6192
+ :where(.theme-scope) .rb-header-layout,
6193
+ :where(.theme-scope) .rb-header-logo-sm,
6194
+ :where(.theme-scope) .rb-header-logo-lg,
6195
+ :where(.theme-scope) .header-logo-text {
6196
+ transition: none;
6197
+ }
5919
6198
  }
5920
- }
5921
6199
 
5922
- /* Nav underline-grow animation (used by navStyle: "underline-grow" in site-header.ts) */
5923
- :where(.theme-scope) .nav-underline-grow {
5924
- position: relative;
5925
- overflow: visible;
5926
- }
5927
- :where(.theme-scope) .nav-underline-grow::after {
5928
- content: "";
5929
- position: absolute;
5930
- left: 0;
5931
- bottom: var(--nav-underline-offset, -0.35em);
5932
- width: 100%;
5933
- height: 2px;
5934
- background-color: currentColor;
5935
- transform: scaleX(0);
5936
- transform-origin: left center;
5937
- transition: transform calc(var(--motion-duration) * 1.1) var(--motion-ease);
5938
- }
5939
- :where(.theme-scope) .nav-underline-grow:hover::after,
5940
- :where(.theme-scope)
5941
- .nav-underline-grow.nav-underline-active[data-active="true"]::after {
5942
- transform: scaleX(1);
5943
- }
5944
- :where(.theme-scope) .nav-underline-offset-tight {
5945
- --nav-underline-offset: -0.2em;
5946
- }
5947
- :where(.theme-scope) .nav-underline-offset-normal {
5948
- --nav-underline-offset: -0.3em;
5949
- }
5950
- :where(.theme-scope) .nav-underline-offset-loose {
5951
- --nav-underline-offset: -0.45em;
5952
- }
6200
+ /* Nav underline-grow animation (used by navStyle: "underline-grow" in site-header.ts) */
6201
+ :where(.theme-scope) .nav-underline-grow {
6202
+ position: relative;
6203
+ overflow: visible;
6204
+ }
6205
+ :where(.theme-scope) .nav-underline-grow::after {
6206
+ content: '';
6207
+ position: absolute;
6208
+ left: 0;
6209
+ bottom: var(--nav-underline-offset, -0.35em);
6210
+ width: 100%;
6211
+ height: 2px;
6212
+ background-color: currentColor;
6213
+ transform: scaleX(0);
6214
+ transform-origin: left center;
6215
+ transition: transform calc(var(--motion-duration) * 1.1) var(--motion-ease);
6216
+ }
6217
+ :where(.theme-scope) .nav-underline-grow:hover::after,
6218
+ :where(.theme-scope)
6219
+ .nav-underline-grow.nav-underline-active[data-active='true']::after {
6220
+ transform: scaleX(1);
6221
+ }
6222
+ :where(.theme-scope) .nav-underline-offset-tight {
6223
+ --nav-underline-offset: -0.2em;
6224
+ }
6225
+ :where(.theme-scope) .nav-underline-offset-normal {
6226
+ --nav-underline-offset: -0.3em;
6227
+ }
6228
+ :where(.theme-scope) .nav-underline-offset-loose {
6229
+ --nav-underline-offset: -0.45em;
6230
+ }
5953
6231
 
5954
- :where(.theme-scope) .card-surface {
5955
- background: rgb(var(--tb-surface));
5956
- color: rgb(var(--tb-onSurface, var(--tb-text)));
5957
- border: 1px solid rgb(var(--tb-border));
5958
- border-radius: var(--radius-card);
5959
- box-shadow: var(--shadow-elev);
5960
- }
5961
- :where(.theme-scope) .media-rounded {
5962
- border-radius: var(--radius-card);
5963
- }
6232
+ :where(.theme-scope) .card-surface {
6233
+ background: rgb(var(--tb-surface));
6234
+ color: rgb(var(--tb-onSurface, var(--tb-text)));
6235
+ border: 1px solid rgb(var(--tb-border));
6236
+ border-radius: var(--radius-card);
6237
+ box-shadow: var(--shadow-elev);
6238
+ }
6239
+ :where(.theme-scope) .media-rounded {
6240
+ border-radius: var(--radius-card);
6241
+ }
5964
6242
 
5965
- :where(.theme-scope) .is-placeholder::after {
5966
- content: "Placeholder";
5967
- position: absolute;
5968
- top: 0.5rem;
5969
- left: 0.5rem;
5970
- font-size: 11px;
5971
- background: color-mix(in oklab, rgb(var(--tb-bg)), rgb(var(--tb-text)) 10%);
5972
- color: rgb(var(--tb-text));
5973
- padding: 0.15rem 0.35rem;
5974
- border-radius: 4px;
5975
- opacity: 0.85;
5976
- }
6243
+ :where(.theme-scope) .is-placeholder::after {
6244
+ content: 'Placeholder';
6245
+ position: absolute;
6246
+ top: 0.5rem;
6247
+ left: 0.5rem;
6248
+ font-size: 11px;
6249
+ background: color-mix(in oklab, rgb(var(--tb-bg)), rgb(var(--tb-text)) 10%);
6250
+ color: rgb(var(--tb-text));
6251
+ padding: 0.15rem 0.35rem;
6252
+ border-radius: 4px;
6253
+ opacity: 0.85;
6254
+ }
5977
6255
 
5978
- /* Status badges - theme-aware styling for capacity indicators */
5979
- :where(.theme-scope) .badge-status {
5980
- display: inline-flex;
5981
- align-items: center;
5982
- padding: 0.125rem 0.625rem;
5983
- border-radius: 9999px;
5984
- font-size: 0.75rem;
5985
- font-weight: 500;
5986
- line-height: 1.25rem;
5987
- }
6256
+ /* Status badges - theme-aware styling for capacity indicators */
6257
+ :where(.theme-scope) .badge-status {
6258
+ display: inline-flex;
6259
+ align-items: center;
6260
+ padding: 0.125rem 0.625rem;
6261
+ border-radius: 9999px;
6262
+ font-size: 0.75rem;
6263
+ font-weight: 500;
6264
+ line-height: 1.25rem;
6265
+ }
5988
6266
 
5989
- /* All badges use a subtle theme-aware style by default */
5990
- :where(.theme-scope) .badge-status-available {
5991
- background-color: rgba(var(--tb-secondary), 0.15);
5992
- color: rgb(var(--tb-secondary-700, var(--tb-secondary)));
5993
- }
6267
+ /* All badges use a subtle theme-aware style by default */
6268
+ :where(.theme-scope) .badge-status-available {
6269
+ background-color: rgba(var(--tb-secondary), 0.15);
6270
+ color: rgb(var(--tb-secondary-700, var(--tb-secondary)));
6271
+ }
5994
6272
 
5995
- :where(.theme-scope) .badge-status-low {
5996
- background-color: rgba(var(--tb-accent), 0.15);
5997
- color: rgb(var(--tb-accent-700, var(--tb-accent)));
5998
- }
6273
+ :where(.theme-scope) .badge-status-low {
6274
+ background-color: rgba(var(--tb-accent), 0.15);
6275
+ color: rgb(var(--tb-accent-700, var(--tb-accent)));
6276
+ }
5999
6277
 
6000
- :where(.theme-scope) .badge-status-sold-out {
6001
- background-color: rgba(var(--tb-text), 0.1);
6002
- color: rgb(var(--tb-mutedText));
6003
- }
6278
+ :where(.theme-scope) .badge-status-sold-out {
6279
+ background-color: rgba(var(--tb-text), 0.1);
6280
+ color: rgb(var(--tb-mutedText));
6281
+ }
6004
6282
 
6005
- /* Event list empty state - theme-aware */
6006
- :where(.theme-scope) .event-list-empty {
6007
- background-color: rgb(var(--tb-surface));
6008
- color: rgb(var(--tb-onSurface, var(--tb-text)));
6009
- border-color: rgb(var(--tb-border));
6010
- }
6283
+ /* Event list empty state - theme-aware */
6284
+ :where(.theme-scope) .event-list-empty {
6285
+ background-color: rgb(var(--tb-surface));
6286
+ color: rgb(var(--tb-onSurface, var(--tb-text)));
6287
+ border-color: rgb(var(--tb-border));
6288
+ }
6011
6289
  } /* end @layer rb-theme */
6012
6290
 
6013
6291
  @keyframes accordion-down {