@riverbankcms/sdk 0.77.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 (46) hide show
  1. package/dist/{PreviewEditorSidebar-XSX7QKHQ.mjs → PreviewEditorSidebar-DVUG7GK4.mjs} +2 -2
  2. package/dist/{PreviewEditorUI-YZNEZ3QD.mjs → PreviewEditorUI-P7RN4CDS.mjs} +2 -2
  3. package/dist/SdkPreviewModeRuntime-KLPX47SE.mjs +8 -0
  4. package/dist/_dts/ai/src/contracts/proposals.d.ts +40 -30
  5. package/dist/_dts/blocks/src/customBlockRegistry.d.ts +20 -1
  6. package/dist/_dts/blocks/src/index.d.ts +2 -2
  7. package/dist/_dts/blocks/src/system/blocks/site-header.d.ts +2 -2
  8. package/dist/_dts/blocks/src/system/manifest/fieldValidation/index.d.ts +5 -0
  9. package/dist/_dts/blocks/src/system/runtime/components/multi-step/runtimeFormValidation.d.ts +28 -0
  10. package/dist/_dts/blocks/src/system/transforms/registry/layout.d.ts +4 -4
  11. package/dist/_dts/sdk/src/contracts/theme.d.ts +1 -1
  12. package/dist/_dts/sdk/src/rendering/components/Layout.d.ts +2 -2
  13. package/dist/_dts/sdk/src/version.d.ts +1 -1
  14. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  15. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +27 -27
  16. package/dist/_dts/theme-core/src/schema.d.ts +26 -30
  17. package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +1 -1
  18. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +4 -4
  19. package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +63 -33
  20. package/dist/{chunk-EAWHBECW.mjs → chunk-2SPENC5M.mjs} +5 -5
  21. package/dist/{chunk-GSQX43EZ.mjs → chunk-IENWFSLO.mjs} +22 -41
  22. package/dist/{chunk-WLQBJN2Z.mjs → chunk-KWJPDZH2.mjs} +1815 -1338
  23. package/dist/{chunk-ANKDYZ2E.mjs → chunk-ZYEJLCTN.mjs} +1 -1
  24. package/dist/cli/index.mjs +381 -176
  25. package/dist/client/client.mjs +1574 -1252
  26. package/dist/client/hooks.mjs +369 -170
  27. package/dist/client/rendering.mjs +1588 -1257
  28. package/dist/preview-next/client/runtime.mjs +3 -3
  29. package/dist/{sdk-runtime-Q6MTR4KL.mjs → sdk-runtime-6UT2S7KZ.mjs} +4 -4
  30. package/dist/server/components.mjs +1561 -1239
  31. package/dist/server/config-validation.mjs +369 -170
  32. package/dist/server/config.mjs +369 -170
  33. package/dist/server/data.mjs +369 -170
  34. package/dist/server/index.mjs +1 -1
  35. package/dist/server/next.mjs +1547 -1234
  36. package/dist/server/page-converter.mjs +362 -165
  37. package/dist/server/prebuild.mjs +1 -1
  38. package/dist/server/rendering/server.mjs +1561 -1239
  39. package/dist/server/rendering.mjs +1561 -1239
  40. package/dist/server/routing.mjs +370 -171
  41. package/dist/server/server.mjs +370 -171
  42. package/dist/server/theme-bridge.mjs +1156 -1035
  43. package/dist/server/theme.mjs +79 -11
  44. package/dist/styles/index.css +1081 -1028
  45. package/package.json +1 -1
  46. package/dist/SdkPreviewModeRuntime-5FS5E6BI.mjs +0 -8
@@ -1894,8 +1894,19 @@ var headingTypographyStyleSchema = typographyStyleSchema.extend({
1894
1894
  colorToken: themeColorTokenSchema.nullable().optional()
1895
1895
  });
1896
1896
  var proseLinkUnderlineStyleSchema = z16.enum(["solid", "dotted", "dashed"]);
1897
- var proseLinkUnderlineThicknessSchema = z16.enum(["auto", "fromFont", "thin", "medium", "thick"]);
1898
- 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
+ ]);
1899
1910
  var proseLinkStyleSchema = z16.object({
1900
1911
  colorToken: themeColorTokenSchema.optional(),
1901
1912
  hoverColorToken: themeColorTokenSchema.optional(),
@@ -1906,7 +1917,14 @@ var proseLinkStyleSchema = z16.object({
1906
1917
  underlineThickness: proseLinkUnderlineThicknessSchema.optional(),
1907
1918
  underlineOffset: proseLinkUnderlineOffsetSchema.optional()
1908
1919
  });
1909
- 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
+ ]);
1910
1928
  var boxRoundedSchema = z16.enum(["none", "sm", "md", "lg", "xl", "2xl", "full"]);
1911
1929
  var boxBackgroundOverlaySchema = z16.object({
1912
1930
  type: z16.enum(["none", "color", "gradient"]).nullable().optional(),
@@ -2050,9 +2068,17 @@ var inputStyle = z16.object({
2050
2068
  focus: z16.enum(["glow", "ring", "underline"]),
2051
2069
  label: z16.enum(["inside", "above"])
2052
2070
  });
2053
- var headerVariant = z16.enum(["classic", "centered", "transparent", "floating", "editorial"]);
2071
+ var headerVariant = z16.enum(["classic", "centered", "transparent", "floating"]);
2054
2072
  var headerPositioning = z16.enum(["static", "sticky", "fixed"]);
2055
- 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
+ ]);
2056
2082
  var navFontWeight = z16.enum(["regular", "medium", "semibold", "bold"]);
2057
2083
  var headerMaxWidth = z16.enum(["container", "full"]);
2058
2084
  var headerContainerSchema = z16.object({
@@ -2100,8 +2126,22 @@ var dropdownStyleSchema = z16.object({
2100
2126
  textSize: z16.enum(["xs", "sm", "base", "lg"]).optional()
2101
2127
  // optional = no override (browser default)
2102
2128
  }).optional();
2103
- var headerCtaGapSchema = z16.enum(["none", "tight", "compact", "default", "relaxed", "spacious"]);
2104
- 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
+ ]);
2105
2145
  var navContainerSchema = z16.object({
2106
2146
  type: z16.enum(["none", "pill", "glass"]).default("none"),
2107
2147
  tint: z16.string().nullable().optional(),
@@ -2156,7 +2196,14 @@ var footerMaxWidth = z16.enum(["container", "full"]);
2156
2196
  var footerMode = z16.enum(["default", "blocks", "default+blocks", "none"]);
2157
2197
  var footerNavLayoutMode = z16.enum(["stack", "inline", "inline-wrap"]);
2158
2198
  var footerNavLayoutAlign = z16.enum(["start", "center", "end", "space-between"]);
2159
- 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
+ ]);
2160
2207
  var footerLogoPlacement = z16.enum(["left", "right", "above", "below"]);
2161
2208
  var footerLogoSize = z16.enum(["sm", "md", "lg", "xl"]);
2162
2209
  var footerLogoMaxHeight = z16.enum(["sm", "md", "lg", "xl"]);
@@ -2221,7 +2268,12 @@ var footerSchema = z16.object({
2221
2268
  logo: footerLogoSchema.optional(),
2222
2269
  bottomBar: footerBottomBarSchema.optional()
2223
2270
  });
2224
- var containerPaddingPresetSchema = z16.enum(["tight", "compact", "default", "relaxed"]);
2271
+ var containerPaddingPresetSchema = z16.enum([
2272
+ "tight",
2273
+ "compact",
2274
+ "default",
2275
+ "relaxed"
2276
+ ]);
2225
2277
  var layoutSchema = z16.object({
2226
2278
  containerPadding: z16.object({
2227
2279
  mobile: containerPaddingPresetSchema.optional(),
@@ -2229,8 +2281,24 @@ var layoutSchema = z16.object({
2229
2281
  desktop: containerPaddingPresetSchema.optional()
2230
2282
  }).optional()
2231
2283
  }).optional();
2232
- var heroTypographySizeSchema = z16.enum(["sm", "base", "lg", "xl", "2xl", "3xl", "4xl", "5xl", "6xl", "editorial"]);
2233
- 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
+ ]);
2234
2302
  var heroResponsiveTypographySchema = z16.object({
2235
2303
  headlineSize: heroTypographySizeSchema.optional(),
2236
2304
  headlineLineHeight: heroTypographyLineHeightSchema.optional(),
@@ -4949,9 +5017,9 @@ var containerResponsiveThemeCss = `/*
4949
5017
  }
4950
5018
 
4951
5019
  @layer rb-theme {
4952
- /* Fallback defaults so preview doesn't look broken before ThemeScope injects vars */
4953
- :root {
4954
- /* --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;
4955
5023
  --tb-text: 17 24 39;
4956
5024
  --tb-muted: 107 114 128;
4957
5025
  --tb-bg: 255 255 255;
@@ -4973,159 +5041,164 @@ var containerResponsiveThemeCss = `/*
4973
5041
 
4974
5042
  --motion-duration: 180ms;
4975
5043
  --motion-ease: cubic-bezier(.2,.8,.2,1); */
4976
- }
5044
+ }
4977
5045
 
4978
- /* -------------------------------------------------------------------------- */
4979
- /* Shared: Modal */
4980
- /* -------------------------------------------------------------------------- */
5046
+ /* -------------------------------------------------------------------------- */
5047
+ /* Shared: Modal */
5048
+ /* -------------------------------------------------------------------------- */
4981
5049
 
4982
- :where(.theme-scope) .rb-modal-overlay {
4983
- position: fixed;
4984
- inset: 0;
4985
- z-index: var(--rb-modal-z-index, 20000);
4986
- display: grid;
4987
- place-items: center;
4988
- padding: 1rem;
4989
- /* Keep a hard fallback so the overlay never becomes transparent due to invalid vars. */
4990
- background-color: rgba(0, 0, 0, 0.6);
4991
- background: var(--rb-modal-overlay-bg, rgba(0, 0, 0, 0.6));
4992
- }
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
+ }
4993
5061
 
4994
- :where(.theme-scope) .rb-modal {
4995
- width: min(var(--rb-modal-max-width, 560px), 100%);
4996
- background: var(--rb-modal-bg, rgb(var(--tb-surface)));
4997
- border: 1px solid var(--rb-modal-border, rgb(var(--tb-border)));
4998
- border-radius: var(--rb-modal-radius, var(--radius-card));
4999
- box-shadow: var(--rb-modal-shadow, var(--shadow-lg, var(--shadow-elev)));
5000
- }
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
+ }
5001
5069
 
5002
- :where(.theme-scope) .rb-modal__header {
5003
- display: flex;
5004
- align-items: center;
5005
- justify-content: space-between;
5006
- gap: 1rem;
5007
- padding: 1rem 1rem 0.75rem;
5008
- border-bottom: 1px solid var(--rb-modal-border, rgb(var(--tb-border)));
5009
- }
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
+ }
5010
5078
 
5011
- :where(.theme-scope) .rb-modal__title {
5012
- margin: 0;
5013
- font-family: var(--font-heading);
5014
- font-size: 1.0625rem;
5015
- font-weight: 600;
5016
- color: rgb(var(--tb-text));
5017
- }
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
+ }
5018
5086
 
5019
- :where(.theme-scope) .rb-modal__close {
5020
- background: transparent;
5021
- border: none;
5022
- width: 2.25rem;
5023
- height: 2.25rem;
5024
- padding: 0;
5025
- line-height: 1;
5026
- color: rgb(var(--tb-mutedText));
5027
- cursor: pointer;
5028
- display: grid;
5029
- place-items: center;
5030
- border-radius: var(--radius-control);
5031
- }
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
+ }
5032
5100
 
5033
- :where(.theme-scope) .rb-modal__close:hover {
5034
- color: rgb(var(--tb-text));
5035
- background: rgba(var(--tb-border), 0.2);
5036
- }
5101
+ :where(.theme-scope) .rb-modal__close:hover {
5102
+ color: rgb(var(--tb-text));
5103
+ background: rgba(var(--tb-border), 0.2);
5104
+ }
5037
5105
 
5038
- :where(.theme-scope) .rb-modal__close:focus-visible {
5039
- outline: none;
5040
- box-shadow: 0 0 0 3px rgba(var(--tb-primary), 0.15);
5041
- }
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
+ }
5042
5110
 
5043
- :where(.theme-scope) .rb-modal__body {
5044
- padding: 0.875rem 1rem 1rem;
5045
- color: rgb(var(--tb-text));
5046
- font-size: 0.9375rem;
5047
- line-height: 1.45;
5048
- }
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
+ }
5049
5117
 
5050
- /* -------------------------------------------------------------------------- */
5051
- /* Header: Mobile nav overlay transitions */
5052
- /* -------------------------------------------------------------------------- */
5118
+ /* -------------------------------------------------------------------------- */
5119
+ /* Header: Mobile nav overlay transitions */
5120
+ /* -------------------------------------------------------------------------- */
5053
5121
 
5054
- /* 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.
5055
5123
  JS toggles \`aria-hidden\` + \`inert\` (via enhancer), and CSS uses pointer-events
5056
5124
  to prevent interaction while closed. */
5057
- .nav-mobile-overlay {
5058
- pointer-events: none;
5059
- /* 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
5060
5128
  during enter/exit transitions. */
5061
- overflow: hidden;
5062
- }
5063
-
5064
- .nav-mobile-overlay[aria-hidden="false"] {
5065
- pointer-events: auto;
5066
- }
5129
+ overflow: hidden;
5130
+ }
5067
5131
 
5068
- .nav-mobile-overlay .nav-mobile-backdrop {
5069
- opacity: 0;
5070
- transition: opacity var(--motion-duration, 180ms) var(--motion-ease, cubic-bezier(.2,.8,.2,1));
5071
- }
5132
+ .nav-mobile-overlay[aria-hidden='false'] {
5133
+ pointer-events: auto;
5134
+ }
5072
5135
 
5073
- .nav-mobile-overlay[aria-hidden="false"] .nav-mobile-backdrop {
5074
- opacity: 1;
5075
- }
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
+ }
5076
5141
 
5077
- .nav-mobile-overlay .nav-mobile-panel {
5078
- opacity: 0;
5079
- transform: translate3d(12px, 0, 0);
5080
- overflow-x: hidden;
5081
- transition:
5082
- opacity var(--motion-duration, 180ms) var(--motion-ease, cubic-bezier(.2,.8,.2,1)),
5083
- transform var(--motion-duration, 180ms) var(--motion-ease, cubic-bezier(.2,.8,.2,1));
5084
- will-change: opacity, transform;
5085
- }
5142
+ .nav-mobile-overlay[aria-hidden='false'] .nav-mobile-backdrop {
5143
+ opacity: 1;
5144
+ }
5086
5145
 
5087
- .nav-mobile-overlay[aria-hidden="false"] .nav-mobile-panel {
5088
- opacity: 1;
5089
- transform: translate3d(0, 0, 0);
5090
- }
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
+ }
5091
5157
 
5092
- /* -------------------------------------------------------------------------- */
5093
- /* Header: Mobile toggle hamburger -> X */
5094
- /* -------------------------------------------------------------------------- */
5158
+ .nav-mobile-overlay[aria-hidden='false'] .nav-mobile-panel {
5159
+ opacity: 1;
5160
+ transform: translate3d(0, 0, 0);
5161
+ }
5095
5162
 
5096
- .nav-mobile-toggle .nav-mobile-bar {
5097
- transform-origin: center;
5098
- transition:
5099
- transform var(--motion-duration, 180ms) var(--motion-ease, cubic-bezier(.2,.8,.2,1)),
5100
- opacity var(--motion-duration, 180ms) var(--motion-ease, cubic-bezier(.2,.8,.2,1));
5101
- will-change: transform, opacity;
5102
- }
5163
+ /* -------------------------------------------------------------------------- */
5164
+ /* Header: Mobile toggle hamburger -> X */
5165
+ /* -------------------------------------------------------------------------- */
5103
5166
 
5104
- .nav-mobile-toggle[aria-expanded="true"] .nav-mobile-bar-top {
5105
- transform: translateY(6px) rotate(45deg);
5106
- }
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
+ }
5107
5176
 
5108
- .nav-mobile-toggle[aria-expanded="true"] .nav-mobile-bar-middle {
5109
- opacity: 0;
5110
- }
5177
+ .nav-mobile-toggle[aria-expanded='true'] .nav-mobile-bar-top {
5178
+ transform: translateY(6px) rotate(45deg);
5179
+ }
5111
5180
 
5112
- .nav-mobile-toggle[aria-expanded="true"] .nav-mobile-bar-bottom {
5113
- transform: translateY(-6px) rotate(-45deg);
5114
- }
5181
+ .nav-mobile-toggle[aria-expanded='true'] .nav-mobile-bar-middle {
5182
+ opacity: 0;
5183
+ }
5115
5184
 
5116
- @media (prefers-reduced-motion: reduce) {
5117
- .nav-mobile-overlay .nav-mobile-backdrop,
5118
- .nav-mobile-overlay .nav-mobile-panel {
5119
- transition: none;
5120
- transform: none;
5185
+ .nav-mobile-toggle[aria-expanded='true'] .nav-mobile-bar-bottom {
5186
+ transform: translateY(-6px) rotate(-45deg);
5121
5187
  }
5122
5188
 
5123
- .nav-mobile-toggle .nav-mobile-bar {
5124
- 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
+ }
5125
5199
  }
5126
- }
5127
5200
 
5128
- /*
5201
+ /*
5129
5202
  * Theme Scope Styles
5130
5203
  *
5131
5204
  * IMPORTANT: All :where(.theme-scope) selectors are wrapped in :where() to give them
@@ -5135,790 +5208,838 @@ var containerResponsiveThemeCss = `/*
5135
5208
  * Example: \`h4 { color: white; }\` will override \`:where(:where(.theme-scope)) h4\`
5136
5209
  */
5137
5210
 
5138
- :where(:where(.theme-scope)) {
5139
- font-family: var(--font-body);
5140
- letter-spacing: var(--ls-body);
5141
- line-height: var(--lh-body);
5142
- font-weight: var(--font-weight-body);
5143
-
5144
- & h1,
5145
- & h2,
5146
- & h3,
5147
- & h4,
5148
- & h5,
5149
- & h6 {
5150
- font-family: var(--font-heading);
5151
- /* 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:
5152
5225
  --section-heading-color -> --section-text-color -> --hc-hN -> --hc-heading -> inherit */
5153
- font-weight: var(--font-weight-heading);
5154
- text-transform: var(--tt-heading);
5155
- 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
+ }
5156
5230
  }
5157
- }
5158
5231
 
5159
- /* Heading typographic overrides (fallback to defaults when not provided) */
5160
- :where(:where(.theme-scope)) h1 {
5161
- letter-spacing: var(--ls-h1, var(--ls-heading));
5162
- line-height: var(--lh-h1, var(--lh-heading));
5163
- font-weight: var(--fw-h1, var(--font-weight-heading));
5164
- }
5165
- :where(:where(.theme-scope)) h2 {
5166
- letter-spacing: var(--ls-h2, var(--ls-heading));
5167
- line-height: var(--lh-h2, var(--lh-heading));
5168
- font-weight: var(--fw-h2, var(--font-weight-heading));
5169
- }
5170
- :where(:where(.theme-scope)) h3 {
5171
- letter-spacing: var(--ls-h3, var(--ls-heading));
5172
- line-height: var(--lh-h3, var(--lh-heading));
5173
- font-weight: var(--fw-h3, var(--font-weight-heading));
5174
- }
5175
- :where(:where(.theme-scope)) h4,
5176
- :where(:where(.theme-scope)) h5,
5177
- :where(:where(.theme-scope)) h6 {
5178
- letter-spacing: var(--ls-heading);
5179
- line-height: var(--lh-heading);
5180
- }
5181
- :where(:where(.theme-scope)) h4 {
5182
- font-weight: var(--fw-h4, var(--font-weight-heading));
5183
- }
5184
- :where(:where(.theme-scope)) h5 {
5185
- font-weight: var(--fw-h5, var(--font-weight-heading));
5186
- }
5187
- :where(:where(.theme-scope)) h6 {
5188
- font-weight: var(--fw-h6, var(--font-weight-heading));
5189
- }
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
+ }
5190
5263
 
5191
- /* Rich text element spacing based on theme rhythm */
5192
- :where(.theme-scope) .rb-prose h1 {
5193
- margin-top: calc(var(--rt-space-y) * 1.6);
5194
- margin-bottom: calc(var(--rt-space-y) * 0.8);
5195
- }
5196
- :where(.theme-scope) .rb-prose h2 {
5197
- margin-top: calc(var(--rt-space-y) * 1.4);
5198
- margin-bottom: calc(var(--rt-space-y) * 0.7);
5199
- }
5200
- :where(.theme-scope) .rb-prose h3 {
5201
- margin-top: calc(var(--rt-space-y) * 1.2);
5202
- margin-bottom: calc(var(--rt-space-y) * 0.6);
5203
- }
5204
- :where(.theme-scope) .rb-prose h4 {
5205
- margin-top: calc(var(--rt-space-y) * 1);
5206
- margin-bottom: calc(var(--rt-space-y) * 0.5);
5207
- }
5208
- :where(.theme-scope) .rb-prose h5 {
5209
- margin-top: calc(var(--rt-space-y) * 0.9);
5210
- margin-bottom: calc(var(--rt-space-y) * 0.45);
5211
- }
5212
- :where(.theme-scope) .rb-prose h6 {
5213
- margin-top: calc(var(--rt-space-y) * 0.8);
5214
- margin-bottom: calc(var(--rt-space-y) * 0.4);
5215
- }
5216
- :where(.theme-scope) .rb-prose p {
5217
- margin: var(--rt-space-y) 0;
5218
- }
5219
- :where(.theme-scope) .rb-prose img {
5220
- display: block;
5221
- max-width: 100%;
5222
- height: auto;
5223
- margin: calc(var(--rt-space-y) * 1) 0;
5224
- }
5225
- :where(.theme-scope) .rb-prose ul,
5226
- :where(.theme-scope) .rb-prose ol {
5227
- margin: var(--rt-space-y) 0;
5228
- padding-left: 1.25rem;
5229
- }
5230
- :where(.theme-scope) .rb-prose ul {
5231
- list-style-type: disc;
5232
- }
5233
- :where(.theme-scope) .rb-prose ol {
5234
- list-style-type: decimal;
5235
- }
5236
- :where(.theme-scope) .rb-prose ul ul {
5237
- list-style-type: circle;
5238
- }
5239
- :where(.theme-scope) .rb-prose ul ul ul {
5240
- list-style-type: square;
5241
- }
5242
- :where(.theme-scope) .rb-prose ol ol {
5243
- list-style-type: lower-alpha;
5244
- }
5245
- :where(.theme-scope) .rb-prose ol ol ol {
5246
- list-style-type: lower-roman;
5247
- }
5248
- :where(.theme-scope) .rb-prose blockquote {
5249
- margin: calc(var(--rt-space-y) * 1) 0;
5250
- padding-left: 1rem;
5251
- border-left: 3px solid rgb(var(--tb-border));
5252
- }
5253
- :where(.theme-scope) .rb-prose > :first-child {
5254
- margin-top: 0;
5255
- }
5256
- :where(.theme-scope) .rb-prose > :last-child {
5257
- margin-bottom: 0;
5258
- }
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
+ }
5259
5332
 
5260
- /* Prose color overrides - use theme CSS variables instead of hardcoded colors
5333
+ /* Prose color overrides - use theme CSS variables instead of hardcoded colors
5261
5334
  * This makes prose elements automatically adapt to light/dark themes */
5262
- :where(.theme-scope) .rb-prose {
5263
- /* Body text inherits from parent, which should already have theme color */
5264
- color: inherit;
5265
- }
5335
+ :where(.theme-scope) .rb-prose {
5336
+ /* Body text inherits from parent, which should already have theme color */
5337
+ color: inherit;
5338
+ }
5266
5339
 
5267
- /* Prose size variants (theme-aware, CSS-only) */
5268
- :where(.theme-scope) {
5269
- /* Body scale + rhythm come from the active theme runtime (ThemeScope) */
5270
- --rb-prose-sm-font-size: calc(var(--fs-body, 16px) * 0.875);
5271
- --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);
5272
5345
 
5273
- --rb-prose-lg-font-size: calc(var(--fs-body, 16px) * 1.125);
5274
- --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);
5275
5348
 
5276
- /* Applied at >= 640px; below that, rb-prose-lg is typically used */
5277
- --rb-prose-xl-sm-font-size: calc(var(--fs-body, 16px) * 1.25);
5278
- --rb-prose-xl-sm-line-height: calc(var(--lh-body, 1.65) + 0.15);
5279
- }
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
+ }
5280
5353
 
5281
- :where(.theme-scope) .rb-prose-sm {
5282
- font-size: var(--rb-prose-sm-font-size);
5283
- line-height: var(--rb-prose-sm-line-height);
5284
- }
5285
- :where(.theme-scope) .rb-prose-lg {
5286
- font-size: var(--rb-prose-lg-font-size);
5287
- line-height: var(--rb-prose-lg-line-height);
5288
- }
5289
- @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) {
5290
5363
  @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
5291
5364
  :where(.theme-scope) .rb-prose-xl-sm {
5292
- font-size: var(--rb-prose-xl-sm-font-size);
5293
- line-height: var(--rb-prose-xl-sm-line-height);
5294
- }
5295
- }
5365
+ font-size: var(--rb-prose-xl-sm-font-size);
5366
+ line-height: var(--rb-prose-xl-sm-line-height);
5367
+ }
5296
5368
  }
5297
-
5298
- /* Neutral prose uses theme text color by default */
5299
- :where(.theme-scope) .rb-prose-neutral {
5300
- color: rgb(var(--tb-text));
5301
5369
  }
5302
5370
 
5303
- :where(.theme-scope) .rb-prose p,
5304
- :where(.theme-scope) .rb-prose li {
5305
- /* Body text uses inherited color (set by fragment via textColorStyle) */
5306
- color: inherit;
5307
- }
5371
+ /* Neutral prose uses theme text color by default */
5372
+ :where(.theme-scope) .rb-prose-neutral {
5373
+ color: rgb(var(--tb-text));
5374
+ }
5308
5375
 
5309
- :where(.theme-scope) .rb-prose h1,
5310
- :where(.theme-scope) .rb-prose h2,
5311
- :where(.theme-scope) .rb-prose h3,
5312
- :where(.theme-scope) .rb-prose h4,
5313
- :where(.theme-scope) .rb-prose h5,
5314
- :where(.theme-scope) .rb-prose h6 {
5315
- /* Headings inherit from parent or use theme text color */
5316
- color: inherit;
5317
- }
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
+ }
5318
5381
 
5319
- :where(.theme-scope) .rb-prose strong,
5320
- :where(.theme-scope) .rb-prose b {
5321
- /* Bold text inherits color but increases weight */
5322
- color: inherit;
5323
- font-weight: 600;
5324
- }
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
+ }
5325
5391
 
5326
- :where(.theme-scope) .rb-prose em,
5327
- :where(.theme-scope) .rb-prose i {
5328
- /* Italic text inherits color */
5329
- color: inherit;
5330
- }
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
+ }
5331
5398
 
5332
- :where(.theme-scope) .rb-prose a {
5333
- /* Global prose link style with theme-level overrides */
5334
- color: var(--rb-prose-link-color, rgb(var(--tb-primary)));
5335
- text-decoration-line: var(--rb-prose-link-decoration-line, underline);
5336
- text-decoration-style: var(--rb-prose-link-underline-style, solid);
5337
- text-decoration-thickness: var(--rb-prose-link-underline-thickness, from-font);
5338
- text-underline-offset: var(--rb-prose-link-underline-offset, 0.14em);
5339
- text-decoration-color: var(--rb-prose-link-decoration-color, rgba(var(--tb-primary), 0.3));
5340
- transition:
5341
- color 150ms ease,
5342
- text-decoration-color 150ms ease;
5343
- }
5399
+ :where(.theme-scope) .rb-prose em,
5400
+ :where(.theme-scope) .rb-prose i {
5401
+ /* Italic text inherits color */
5402
+ color: inherit;
5403
+ }
5344
5404
 
5345
- :where(.theme-scope) .rb-prose a:hover {
5346
- color: var(--rb-prose-link-hover-color, var(--rb-prose-link-color, rgb(var(--tb-primary))));
5347
- text-decoration-color: var(
5348
- --rb-prose-link-hover-decoration-color,
5349
- var(--rb-prose-link-hover-color, var(--rb-prose-link-color, rgb(var(--tb-primary))))
5350
- );
5351
- }
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
+ }
5352
5423
 
5353
- :where(.theme-scope) .rb-prose blockquote {
5354
- /* Blockquotes use muted text color */
5355
- color: rgb(var(--tb-mutedText));
5356
- border-left-color: rgb(var(--tb-border));
5357
- }
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
+ }
5358
5437
 
5359
- :where(.theme-scope) .fragment-quote-body blockquote {
5360
- /* Quote fragment should not get the generic prose blockquote left border/indent. */
5361
- border-left: 0;
5362
- padding-left: 0;
5363
- }
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
+ }
5364
5443
 
5365
- :where(.theme-scope) .rb-columns-equal-height {
5366
- /* Needed so we can use container query units (\`cqw\`) for width-based tile sizing. */
5367
- container-type: inline-size;
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
+ }
5368
5449
 
5369
- --rb-columns-cols: var(--rb-columns-cols-mobile, 1);
5370
- --rb-columns-gap: var(--rb-semantic-gap, 0px);
5371
- --rb-columns-tile-ar: var(--rb-columns-tile-ar, 1);
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;
5372
5453
 
5373
- --rb-columns-tile-w: calc(
5374
- (100cqw - (var(--rb-columns-cols) - 1) * var(--rb-columns-gap)) / var(--rb-columns-cols)
5375
- );
5376
- --rb-columns-tile-h: calc(var(--rb-columns-tile-w) * var(--rb-columns-tile-ar));
5377
- }
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);
5378
5457
 
5379
- @container rb-site (min-width: 768px) {
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
+ }
5466
+
5467
+ @container rb-site (min-width: 768px) {
5380
5468
  @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
5381
5469
  :where(.theme-scope) .rb-columns-equal-height {
5382
- --rb-columns-cols: var(--rb-columns-cols-md, var(--rb-columns-cols));
5383
- }
5470
+ --rb-columns-cols: var(--rb-columns-cols-md, var(--rb-columns-cols));
5471
+ }
5384
5472
  }
5385
5473
  }
5386
5474
 
5387
- @container rb-site (min-width: 1024px) {
5475
+ @container rb-site (min-width: 1024px) {
5388
5476
  @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
5389
5477
  :where(.theme-scope) .rb-columns-equal-height {
5390
- --rb-columns-cols: var(--rb-columns-cols-lg, var(--rb-columns-cols));
5391
- }
5478
+ --rb-columns-cols: var(--rb-columns-cols-lg, var(--rb-columns-cols));
5479
+ }
5392
5480
  }
5393
5481
  }
5394
5482
 
5395
- @container rb-site (min-width: 1280px) {
5483
+ @container rb-site (min-width: 1280px) {
5396
5484
  @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
5397
5485
  :where(.theme-scope) .rb-columns-equal-height {
5398
- --rb-columns-cols: var(--rb-columns-cols-xl, var(--rb-columns-cols));
5399
- }
5486
+ --rb-columns-cols: var(--rb-columns-cols-xl, var(--rb-columns-cols));
5487
+ }
5400
5488
  }
5401
5489
  }
5402
5490
 
5403
- :where(.theme-scope) .rb-columns-equal-height > * {
5404
- height: var(--rb-columns-tile-h);
5405
- }
5491
+ :where(.theme-scope) .rb-columns-equal-height > * {
5492
+ height: var(--rb-columns-tile-h);
5493
+ }
5406
5494
 
5407
- :where(.theme-scope) .rb-columns-equal-height > .rb-h-full {
5408
- /*
5495
+ :where(.theme-scope) .rb-columns-equal-height > .rb-h-full {
5496
+ /*
5409
5497
  Grid items commonly include \`rb-h-full\` (height: 100%) to stretch within
5410
5498
  their row. In equal-height mode we instead want a fixed tile height so the
5411
5499
  spanning editorial tile doesn't become taller due to its larger width +
5412
5500
  aspect-ratio.
5413
5501
  */
5414
- height: var(--rb-columns-tile-h);
5415
- min-height: var(--rb-columns-tile-h);
5416
- max-height: var(--rb-columns-tile-h);
5417
- }
5502
+ height: var(--rb-columns-tile-h);
5503
+ min-height: var(--rb-columns-tile-h);
5504
+ max-height: var(--rb-columns-tile-h);
5505
+ }
5418
5506
 
5419
- :where(.theme-scope) .rb-columns-equal-height .fragment-image-frame {
5420
- width: 100%;
5421
- height: 100%;
5422
- overflow: hidden;
5423
- }
5507
+ :where(.theme-scope) .rb-columns-equal-height .fragment-image-frame {
5508
+ width: 100%;
5509
+ height: 100%;
5510
+ overflow: hidden;
5511
+ }
5424
5512
 
5425
- :where(.theme-scope) .rb-columns-equal-height .fragment-image {
5426
- width: 100%;
5427
- height: 100%;
5428
- object-fit: cover;
5429
- }
5513
+ :where(.theme-scope) .rb-columns-equal-height .fragment-image {
5514
+ width: 100%;
5515
+ height: 100%;
5516
+ object-fit: cover;
5517
+ }
5430
5518
 
5431
- :where(.theme-scope) .rb-prose code {
5432
- /* Inline code uses text color with surface background */
5433
- color: inherit;
5434
- background-color: rgba(var(--tb-surface), 0.5);
5435
- padding: 0.125rem 0.25rem;
5436
- border-radius: 0.25rem;
5437
- font-size: 0.875em;
5438
- }
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
+ }
5439
5527
 
5440
- :where(.theme-scope) .rb-prose pre {
5441
- /* Code blocks */
5442
- background-color: rgb(var(--tb-surface));
5443
- color: rgb(var(--tb-text));
5444
- border: 1px solid rgb(var(--tb-border));
5445
- border-radius: 0.5rem;
5446
- padding: 1rem;
5447
- overflow-x: auto;
5448
- }
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
+ }
5449
5537
 
5450
- :where(.theme-scope) .rb-prose pre code {
5451
- /* Code inside pre blocks */
5452
- background-color: transparent;
5453
- padding: 0;
5454
- color: inherit;
5455
- }
5538
+ :where(.theme-scope) .rb-prose pre code {
5539
+ /* Code inside pre blocks */
5540
+ background-color: transparent;
5541
+ padding: 0;
5542
+ color: inherit;
5543
+ }
5456
5544
 
5457
- :where(.theme-scope) .rb-prose hr {
5458
- /* Horizontal rules */
5459
- border-color: rgb(var(--tb-border));
5460
- }
5545
+ :where(.theme-scope) .rb-prose hr {
5546
+ /* Horizontal rules */
5547
+ border-color: rgb(var(--tb-border));
5548
+ }
5461
5549
 
5462
- :where(.theme-scope) .rb-prose ul > li::marker,
5463
- :where(.theme-scope) .rb-prose ol > li::marker {
5464
- /* List markers use muted text color */
5465
- color: rgb(var(--tb-mutedText));
5466
- }
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
+ }
5467
5555
 
5468
- /*
5556
+ /*
5469
5557
  /* Density helpers */
5470
- :where(.theme-scope) .section-pad {
5471
- padding-top: 4rem;
5472
- padding-bottom: 4rem;
5473
- }
5474
- :where(.theme-scope)[data-density="airy"] .section-pad {
5475
- padding-top: 4.5rem;
5476
- padding-bottom: 4.5rem;
5477
- }
5478
- :where(.theme-scope)[data-density="compact"] .section-pad {
5479
- padding-top: 3rem;
5480
- padding-bottom: 3rem;
5481
- }
5482
-
5483
- :where(.theme-scope) .rounded-control {
5484
- border-radius: var(--radius-control);
5485
- }
5486
- :where(.theme-scope) .rounded-card {
5487
- border-radius: var(--radius-card);
5488
- }
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
+ }
5489
5570
 
5490
- :where(.theme-scope) .shadow-elev {
5491
- box-shadow: var(--shadow-elev);
5492
- }
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
+ }
5493
5577
 
5494
- :where(.theme-scope) .font-heading {
5495
- font-family: var(--font-heading);
5496
- }
5497
- :where(.theme-scope) .font-body {
5498
- font-family: var(--font-body);
5499
- }
5578
+ :where(.theme-scope) .shadow-elev {
5579
+ box-shadow: var(--shadow-elev);
5580
+ }
5500
5581
 
5501
- :where(.theme-scope) .text-h1 {
5502
- font-size: var(--fs-h1);
5503
- line-height: 1.1;
5504
- }
5505
- :where(.theme-scope) .text-h2 {
5506
- font-size: var(--fs-h2);
5507
- line-height: 1.15;
5508
- }
5509
- :where(.theme-scope) .text-h3 {
5510
- font-size: var(--fs-h3);
5511
- line-height: 1.2;
5512
- }
5513
- :where(.theme-scope) .text-body-size {
5514
- font-size: var(--fs-body);
5515
- }
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
+ }
5516
5588
 
5517
- :where(.theme-scope) .transition-theme {
5518
- transition: all var(--motion-duration) var(--motion-ease);
5519
- }
5520
- :where(.theme-scope) .transition-theme-standard {
5521
- transition: all var(--motion-duration) var(--motion-ease);
5522
- }
5523
- :where(.theme-scope) .transition-theme-subtle {
5524
- transition: all calc(var(--motion-duration) * 0.75) var(--motion-ease);
5525
- }
5526
- :where(.theme-scope) .transition-theme-expressive {
5527
- transition: all calc(var(--motion-duration) * 1.35) var(--motion-ease);
5528
- }
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
+ }
5529
5604
 
5530
- /* Shade tokens (50..950) for primary */
5531
- :where(.theme-scope) .from-primary-50 {
5532
- --rb-gradient-from: rgb(var(--tb-primary-50)) var(--rb-gradient-from-position);
5533
- --rb-gradient-to: rgb(var(--tb-primary-50)) var(--rb-gradient-to-position);
5534
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5535
- }
5536
- :where(.theme-scope) .to-primary-50 {
5537
- --rb-gradient-to: rgb(var(--tb-primary-50)) var(--rb-gradient-to-position);
5538
- }
5539
- :where(.theme-scope) .from-primary-100 {
5540
- --rb-gradient-from: rgb(var(--tb-primary-100))
5541
- var(--rb-gradient-from-position);
5542
- --rb-gradient-to: rgb(var(--tb-primary-100)) var(--rb-gradient-to-position);
5543
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5544
- }
5545
- :where(.theme-scope) .to-primary-100 {
5546
- --rb-gradient-to: rgb(var(--tb-primary-100)) var(--rb-gradient-to-position);
5547
- }
5548
- :where(.theme-scope) .from-primary-200 {
5549
- --rb-gradient-from: rgb(var(--tb-primary-200))
5550
- var(--rb-gradient-from-position);
5551
- --rb-gradient-to: rgb(var(--tb-primary-200)) var(--rb-gradient-to-position);
5552
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5553
- }
5554
- :where(.theme-scope) .to-primary-200 {
5555
- --rb-gradient-to: rgb(var(--tb-primary-200)) var(--rb-gradient-to-position);
5556
- }
5557
- :where(.theme-scope) .from-primary-300 {
5558
- --rb-gradient-from: rgb(var(--tb-primary-300))
5559
- var(--rb-gradient-from-position);
5560
- --rb-gradient-to: rgb(var(--tb-primary-300)) var(--rb-gradient-to-position);
5561
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5562
- }
5563
- :where(.theme-scope) .to-primary-300 {
5564
- --rb-gradient-to: rgb(var(--tb-primary-300)) var(--rb-gradient-to-position);
5565
- }
5566
- :where(.theme-scope) .from-primary-400 {
5567
- --rb-gradient-from: rgb(var(--tb-primary-400))
5568
- var(--rb-gradient-from-position);
5569
- --rb-gradient-to: rgb(var(--tb-primary-400)) var(--rb-gradient-to-position);
5570
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5571
- }
5572
- :where(.theme-scope) .to-primary-400 {
5573
- --rb-gradient-to: rgb(var(--tb-primary-400)) var(--rb-gradient-to-position);
5574
- }
5575
- :where(.theme-scope) .from-primary-500 {
5576
- --rb-gradient-from: rgb(var(--tb-primary-500))
5577
- var(--rb-gradient-from-position);
5578
- --rb-gradient-to: rgb(var(--tb-primary-500)) var(--rb-gradient-to-position);
5579
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5580
- }
5581
- :where(.theme-scope) .to-primary-500 {
5582
- --rb-gradient-to: rgb(var(--tb-primary-500)) var(--rb-gradient-to-position);
5583
- }
5584
- :where(.theme-scope) .from-primary-600 {
5585
- --rb-gradient-from: rgb(var(--tb-primary-600))
5586
- var(--rb-gradient-from-position);
5587
- --rb-gradient-to: rgb(var(--tb-primary-600)) var(--rb-gradient-to-position);
5588
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5589
- }
5590
- :where(.theme-scope) .to-primary-600 {
5591
- --rb-gradient-to: rgb(var(--tb-primary-600)) var(--rb-gradient-to-position);
5592
- }
5593
- :where(.theme-scope) .from-primary-700 {
5594
- --rb-gradient-from: rgb(var(--tb-primary-700))
5595
- var(--rb-gradient-from-position);
5596
- --rb-gradient-to: rgb(var(--tb-primary-700)) var(--rb-gradient-to-position);
5597
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5598
- }
5599
- :where(.theme-scope) .to-primary-700 {
5600
- --rb-gradient-to: rgb(var(--tb-primary-700)) var(--rb-gradient-to-position);
5601
- }
5602
- :where(.theme-scope) .from-primary-800 {
5603
- --rb-gradient-from: rgb(var(--tb-primary-800))
5604
- var(--rb-gradient-from-position);
5605
- --rb-gradient-to: rgb(var(--tb-primary-800)) var(--rb-gradient-to-position);
5606
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5607
- }
5608
- :where(.theme-scope) .to-primary-800 {
5609
- --rb-gradient-to: rgb(var(--tb-primary-800)) var(--rb-gradient-to-position);
5610
- }
5611
- :where(.theme-scope) .from-primary-900 {
5612
- --rb-gradient-from: rgb(var(--tb-primary-900))
5613
- var(--rb-gradient-from-position);
5614
- --rb-gradient-to: rgb(var(--tb-primary-900)) var(--rb-gradient-to-position);
5615
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5616
- }
5617
- :where(.theme-scope) .to-primary-900 {
5618
- --rb-gradient-to: rgb(var(--tb-primary-900)) var(--rb-gradient-to-position);
5619
- }
5620
- :where(.theme-scope) .from-primary-950 {
5621
- --rb-gradient-from: rgb(var(--tb-primary-950))
5622
- var(--rb-gradient-from-position);
5623
- --rb-gradient-to: rgb(var(--tb-primary-950)) var(--rb-gradient-to-position);
5624
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5625
- }
5626
- :where(.theme-scope) .to-primary-950 {
5627
- --rb-gradient-to: rgb(var(--tb-primary-950)) var(--rb-gradient-to-position);
5628
- }
5629
-
5630
- /* Shade tokens (50..950) for secondary */
5631
- :where(.theme-scope) .from-secondary-50 {
5632
- --rb-gradient-from: rgb(var(--tb-secondary-50))
5633
- var(--rb-gradient-from-position);
5634
- --rb-gradient-to: rgb(var(--tb-secondary-50)) var(--rb-gradient-to-position);
5635
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5636
- }
5637
- :where(.theme-scope) .to-secondary-50 {
5638
- --rb-gradient-to: rgb(var(--tb-secondary-50)) var(--rb-gradient-to-position);
5639
- }
5640
- :where(.theme-scope) .from-secondary-100 {
5641
- --rb-gradient-from: rgb(var(--tb-secondary-100))
5642
- var(--rb-gradient-from-position);
5643
- --rb-gradient-to: rgb(var(--tb-secondary-100)) var(--rb-gradient-to-position);
5644
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5645
- }
5646
- :where(.theme-scope) .to-secondary-100 {
5647
- --rb-gradient-to: rgb(var(--tb-secondary-100)) var(--rb-gradient-to-position);
5648
- }
5649
- :where(.theme-scope) .from-secondary-200 {
5650
- --rb-gradient-from: rgb(var(--tb-secondary-200))
5651
- var(--rb-gradient-from-position);
5652
- --rb-gradient-to: rgb(var(--tb-secondary-200)) var(--rb-gradient-to-position);
5653
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5654
- }
5655
- :where(.theme-scope) .to-secondary-200 {
5656
- --rb-gradient-to: rgb(var(--tb-secondary-200)) var(--rb-gradient-to-position);
5657
- }
5658
- :where(.theme-scope) .from-secondary-300 {
5659
- --rb-gradient-from: rgb(var(--tb-secondary-300))
5660
- var(--rb-gradient-from-position);
5661
- --rb-gradient-to: rgb(var(--tb-secondary-300)) var(--rb-gradient-to-position);
5662
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5663
- }
5664
- :where(.theme-scope) .to-secondary-300 {
5665
- --rb-gradient-to: rgb(var(--tb-secondary-300)) var(--rb-gradient-to-position);
5666
- }
5667
- :where(.theme-scope) .from-secondary-400 {
5668
- --rb-gradient-from: rgb(var(--tb-secondary-400))
5669
- var(--rb-gradient-from-position);
5670
- --rb-gradient-to: rgb(var(--tb-secondary-400)) var(--rb-gradient-to-position);
5671
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5672
- }
5673
- :where(.theme-scope) .to-secondary-400 {
5674
- --rb-gradient-to: rgb(var(--tb-secondary-400)) var(--rb-gradient-to-position);
5675
- }
5676
- :where(.theme-scope) .from-secondary-500 {
5677
- --rb-gradient-from: rgb(var(--tb-secondary-500))
5678
- var(--rb-gradient-from-position);
5679
- --rb-gradient-to: rgb(var(--tb-secondary-500)) var(--rb-gradient-to-position);
5680
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5681
- }
5682
- :where(.theme-scope) .to-secondary-500 {
5683
- --rb-gradient-to: rgb(var(--tb-secondary-500)) var(--rb-gradient-to-position);
5684
- }
5685
- :where(.theme-scope) .from-secondary-600 {
5686
- --rb-gradient-from: rgb(var(--tb-secondary-600))
5687
- var(--rb-gradient-from-position);
5688
- --rb-gradient-to: rgb(var(--tb-secondary-600)) var(--rb-gradient-to-position);
5689
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5690
- }
5691
- :where(.theme-scope) .to-secondary-600 {
5692
- --rb-gradient-to: rgb(var(--tb-secondary-600)) var(--rb-gradient-to-position);
5693
- }
5694
- :where(.theme-scope) .from-secondary-700 {
5695
- --rb-gradient-from: rgb(var(--tb-secondary-700))
5696
- var(--rb-gradient-from-position);
5697
- --rb-gradient-to: rgb(var(--tb-secondary-700)) var(--rb-gradient-to-position);
5698
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5699
- }
5700
- :where(.theme-scope) .to-secondary-700 {
5701
- --rb-gradient-to: rgb(var(--tb-secondary-700)) var(--rb-gradient-to-position);
5702
- }
5703
- :where(.theme-scope) .from-secondary-800 {
5704
- --rb-gradient-from: rgb(var(--tb-secondary-800))
5705
- var(--rb-gradient-from-position);
5706
- --rb-gradient-to: rgb(var(--tb-secondary-800)) var(--rb-gradient-to-position);
5707
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5708
- }
5709
- :where(.theme-scope) .to-secondary-800 {
5710
- --rb-gradient-to: rgb(var(--tb-secondary-800)) var(--rb-gradient-to-position);
5711
- }
5712
- :where(.theme-scope) .from-secondary-900 {
5713
- --rb-gradient-from: rgb(var(--tb-secondary-900))
5714
- var(--rb-gradient-from-position);
5715
- --rb-gradient-to: rgb(var(--tb-secondary-900)) var(--rb-gradient-to-position);
5716
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5717
- }
5718
- :where(.theme-scope) .to-secondary-900 {
5719
- --rb-gradient-to: rgb(var(--tb-secondary-900)) var(--rb-gradient-to-position);
5720
- }
5721
- :where(.theme-scope) .from-secondary-950 {
5722
- --rb-gradient-from: rgb(var(--tb-secondary-950))
5723
- var(--rb-gradient-from-position);
5724
- --rb-gradient-to: rgb(var(--tb-secondary-950)) var(--rb-gradient-to-position);
5725
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5726
- }
5727
- :where(.theme-scope) .to-secondary-950 {
5728
- --rb-gradient-to: rgb(var(--tb-secondary-950)) var(--rb-gradient-to-position);
5729
- }
5730
-
5731
- /* Shade tokens (50..950) for accent */
5732
- :where(.theme-scope) .from-accent-50 {
5733
- --rb-gradient-from: rgb(var(--tb-accent-50)) var(--rb-gradient-from-position);
5734
- --rb-gradient-to: rgb(var(--tb-accent-50)) var(--rb-gradient-to-position);
5735
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5736
- }
5737
- :where(.theme-scope) .to-accent-50 {
5738
- --rb-gradient-to: rgb(var(--tb-accent-50)) var(--rb-gradient-to-position);
5739
- }
5740
- :where(.theme-scope) .from-accent-100 {
5741
- --rb-gradient-from: rgb(var(--tb-accent-100)) var(--rb-gradient-from-position);
5742
- --rb-gradient-to: rgb(var(--tb-accent-100)) var(--rb-gradient-to-position);
5743
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5744
- }
5745
- :where(.theme-scope) .to-accent-100 {
5746
- --rb-gradient-to: rgb(var(--tb-accent-100)) var(--rb-gradient-to-position);
5747
- }
5748
- :where(.theme-scope) .from-accent-200 {
5749
- --rb-gradient-from: rgb(var(--tb-accent-200)) var(--rb-gradient-from-position);
5750
- --rb-gradient-to: rgb(var(--tb-accent-200)) var(--rb-gradient-to-position);
5751
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5752
- }
5753
- :where(.theme-scope) .to-accent-200 {
5754
- --rb-gradient-to: rgb(var(--tb-accent-200)) var(--rb-gradient-to-position);
5755
- }
5756
- :where(.theme-scope) .from-accent-300 {
5757
- --rb-gradient-from: rgb(var(--tb-accent-300)) var(--rb-gradient-from-position);
5758
- --rb-gradient-to: rgb(var(--tb-accent-300)) var(--rb-gradient-to-position);
5759
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5760
- }
5761
- :where(.theme-scope) .to-accent-300 {
5762
- --rb-gradient-to: rgb(var(--tb-accent-300)) var(--rb-gradient-to-position);
5763
- }
5764
- :where(.theme-scope) .from-accent-400 {
5765
- --rb-gradient-from: rgb(var(--tb-accent-400)) var(--rb-gradient-from-position);
5766
- --rb-gradient-to: rgb(var(--tb-accent-400)) var(--rb-gradient-to-position);
5767
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5768
- }
5769
- :where(.theme-scope) .to-accent-400 {
5770
- --rb-gradient-to: rgb(var(--tb-accent-400)) var(--rb-gradient-to-position);
5771
- }
5772
- :where(.theme-scope) .from-accent-500 {
5773
- --rb-gradient-from: rgb(var(--tb-accent-500)) var(--rb-gradient-from-position);
5774
- --rb-gradient-to: rgb(var(--tb-accent-500)) var(--rb-gradient-to-position);
5775
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5776
- }
5777
- :where(.theme-scope) .to-accent-500 {
5778
- --rb-gradient-to: rgb(var(--tb-accent-500)) var(--rb-gradient-to-position);
5779
- }
5780
- :where(.theme-scope) .from-accent-600 {
5781
- --rb-gradient-from: rgb(var(--tb-accent-600)) var(--rb-gradient-from-position);
5782
- --rb-gradient-to: rgb(var(--tb-accent-600)) var(--rb-gradient-to-position);
5783
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5784
- }
5785
- :where(.theme-scope) .to-accent-600 {
5786
- --rb-gradient-to: rgb(var(--tb-accent-600)) var(--rb-gradient-to-position);
5787
- }
5788
- :where(.theme-scope) .from-accent-700 {
5789
- --rb-gradient-from: rgb(var(--tb-accent-700)) var(--rb-gradient-from-position);
5790
- --rb-gradient-to: rgb(var(--tb-accent-700)) var(--rb-gradient-to-position);
5791
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5792
- }
5793
- :where(.theme-scope) .to-accent-700 {
5794
- --rb-gradient-to: rgb(var(--tb-accent-700)) var(--rb-gradient-to-position);
5795
- }
5796
- :where(.theme-scope) .from-accent-800 {
5797
- --rb-gradient-from: rgb(var(--tb-accent-800)) var(--rb-gradient-from-position);
5798
- --rb-gradient-to: rgb(var(--tb-accent-800)) var(--rb-gradient-to-position);
5799
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5800
- }
5801
- :where(.theme-scope) .to-accent-800 {
5802
- --rb-gradient-to: rgb(var(--tb-accent-800)) var(--rb-gradient-to-position);
5803
- }
5804
- :where(.theme-scope) .from-accent-900 {
5805
- --rb-gradient-from: rgb(var(--tb-accent-900)) var(--rb-gradient-from-position);
5806
- --rb-gradient-to: rgb(var(--tb-accent-900)) var(--rb-gradient-to-position);
5807
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5808
- }
5809
- :where(.theme-scope) .to-accent-900 {
5810
- --rb-gradient-to: rgb(var(--tb-accent-900)) var(--rb-gradient-to-position);
5811
- }
5812
- :where(.theme-scope) .from-accent-950 {
5813
- --rb-gradient-from: rgb(var(--tb-accent-950)) var(--rb-gradient-from-position);
5814
- --rb-gradient-to: rgb(var(--tb-accent-950)) var(--rb-gradient-to-position);
5815
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5816
- }
5817
- :where(.theme-scope) .to-accent-950 {
5818
- --rb-gradient-to: rgb(var(--tb-accent-950)) var(--rb-gradient-to-position);
5819
- }
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
+ }
5820
5617
 
5821
- /* Shade tokens (50..950) for neutral */
5822
- :where(.theme-scope) .from-neutral-50 {
5823
- --rb-gradient-from: rgb(var(--tb-neutral-50)) var(--rb-gradient-from-position);
5824
- --rb-gradient-to: rgb(var(--tb-neutral-50)) var(--rb-gradient-to-position);
5825
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5826
- }
5827
- :where(.theme-scope) .to-neutral-50 {
5828
- --rb-gradient-to: rgb(var(--tb-neutral-50)) var(--rb-gradient-to-position);
5829
- }
5830
- :where(.theme-scope) .from-neutral-100 {
5831
- --rb-gradient-from: rgb(var(--tb-neutral-100))
5832
- var(--rb-gradient-from-position);
5833
- --rb-gradient-to: rgb(var(--tb-neutral-100)) var(--rb-gradient-to-position);
5834
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5835
- }
5836
- :where(.theme-scope) .to-neutral-100 {
5837
- --rb-gradient-to: rgb(var(--tb-neutral-100)) var(--rb-gradient-to-position);
5838
- }
5839
- :where(.theme-scope) .from-neutral-200 {
5840
- --rb-gradient-from: rgb(var(--tb-neutral-200))
5841
- var(--rb-gradient-from-position);
5842
- --rb-gradient-to: rgb(var(--tb-neutral-200)) var(--rb-gradient-to-position);
5843
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5844
- }
5845
- :where(.theme-scope) .to-neutral-200 {
5846
- --rb-gradient-to: rgb(var(--tb-neutral-200)) var(--rb-gradient-to-position);
5847
- }
5848
- :where(.theme-scope) .from-neutral-300 {
5849
- --rb-gradient-from: rgb(var(--tb-neutral-300))
5850
- var(--rb-gradient-from-position);
5851
- --rb-gradient-to: rgb(var(--tb-neutral-300)) var(--rb-gradient-to-position);
5852
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5853
- }
5854
- :where(.theme-scope) .to-neutral-300 {
5855
- --rb-gradient-to: rgb(var(--tb-neutral-300)) var(--rb-gradient-to-position);
5856
- }
5857
- :where(.theme-scope) .from-neutral-400 {
5858
- --rb-gradient-from: rgb(var(--tb-neutral-400))
5859
- var(--rb-gradient-from-position);
5860
- --rb-gradient-to: rgb(var(--tb-neutral-400)) var(--rb-gradient-to-position);
5861
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5862
- }
5863
- :where(.theme-scope) .to-neutral-400 {
5864
- --rb-gradient-to: rgb(var(--tb-neutral-400)) var(--rb-gradient-to-position);
5865
- }
5866
- :where(.theme-scope) .from-neutral-500 {
5867
- --rb-gradient-from: rgb(var(--tb-neutral-500))
5868
- var(--rb-gradient-from-position);
5869
- --rb-gradient-to: rgb(var(--tb-neutral-500)) var(--rb-gradient-to-position);
5870
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5871
- }
5872
- :where(.theme-scope) .to-neutral-500 {
5873
- --rb-gradient-to: rgb(var(--tb-neutral-500)) var(--rb-gradient-to-position);
5874
- }
5875
- :where(.theme-scope) .from-neutral-600 {
5876
- --rb-gradient-from: rgb(var(--tb-neutral-600))
5877
- var(--rb-gradient-from-position);
5878
- --rb-gradient-to: rgb(var(--tb-neutral-600)) var(--rb-gradient-to-position);
5879
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5880
- }
5881
- :where(.theme-scope) .to-neutral-600 {
5882
- --rb-gradient-to: rgb(var(--tb-neutral-600)) var(--rb-gradient-to-position);
5883
- }
5884
- :where(.theme-scope) .from-neutral-700 {
5885
- --rb-gradient-from: rgb(var(--tb-neutral-700))
5886
- var(--rb-gradient-from-position);
5887
- --rb-gradient-to: rgb(var(--tb-neutral-700)) var(--rb-gradient-to-position);
5888
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5889
- }
5890
- :where(.theme-scope) .to-neutral-700 {
5891
- --rb-gradient-to: rgb(var(--tb-neutral-700)) var(--rb-gradient-to-position);
5892
- }
5893
- :where(.theme-scope) .from-neutral-800 {
5894
- --rb-gradient-from: rgb(var(--tb-neutral-800))
5895
- var(--rb-gradient-from-position);
5896
- --rb-gradient-to: rgb(var(--tb-neutral-800)) var(--rb-gradient-to-position);
5897
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5898
- }
5899
- :where(.theme-scope) .to-neutral-800 {
5900
- --rb-gradient-to: rgb(var(--tb-neutral-800)) var(--rb-gradient-to-position);
5901
- }
5902
- :where(.theme-scope) .from-neutral-900 {
5903
- --rb-gradient-from: rgb(var(--tb-neutral-900))
5904
- var(--rb-gradient-from-position);
5905
- --rb-gradient-to: rgb(var(--tb-neutral-900)) var(--rb-gradient-to-position);
5906
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5907
- }
5908
- :where(.theme-scope) .to-neutral-900 {
5909
- --rb-gradient-to: rgb(var(--tb-neutral-900)) var(--rb-gradient-to-position);
5910
- }
5911
- :where(.theme-scope) .from-neutral-950 {
5912
- --rb-gradient-from: rgb(var(--tb-neutral-950))
5913
- var(--rb-gradient-from-position);
5914
- --rb-gradient-to: rgb(var(--tb-neutral-950)) var(--rb-gradient-to-position);
5915
- --rb-gradient-stops: var(--rb-gradient-from), var(--rb-gradient-to);
5916
- }
5917
- :where(.theme-scope) .to-neutral-950 {
5918
- --rb-gradient-to: rgb(var(--tb-neutral-950)) var(--rb-gradient-to-position);
5919
- }
5920
-
5921
- /* =================================================================
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
+ /* =================================================================
5922
6043
  Header System Class Naming Conventions
5923
6044
 
5924
6045
  rb-header-* Utility-style classes set in site-header.ts layouts
@@ -5931,240 +6052,240 @@ var containerResponsiveThemeCss = `/*
5931
6052
  (nav-dropdown, nav-mobile-panel, nav-underline-grow)
5932
6053
  ================================================================= */
5933
6054
 
5934
- /* =================================================================
6055
+ /* =================================================================
5935
6056
  Header Layout Padding
5936
6057
 
5937
6058
  Padding is controlled entirely by CSS based on variant class.
5938
6059
  This ensures shrink headers look identical to non-shrink before scroll.
5939
6060
  ================================================================= */
5940
6061
 
5941
- /* Prevent scroll anchoring feedback loops when the header height transitions.
6062
+ /* Prevent scroll anchoring feedback loops when the header height transitions.
5942
6063
  In some browsers, resizing a sticky header near the top can cause the UA to
5943
6064
  adjust scroll position ("scroll anchoring"), which then flips the
5944
6065
  \`header-scrolled\` threshold logic back and forth. */
5945
- :where(.theme-scope) .block-site-header {
5946
- overflow-anchor: none;
5947
- }
6066
+ :where(.theme-scope) .block-site-header {
6067
+ overflow-anchor: none;
6068
+ }
5948
6069
 
5949
- /* Base padding for horizontal variants (classic, transparent) */
5950
- :where(.theme-scope) .rb-header-layout {
5951
- padding-top: 1rem;
5952
- padding-bottom: 1rem;
5953
- transition: padding 300ms var(--motion-ease, ease);
5954
- }
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
+ }
5955
6076
 
5956
- /* Vertical variants need more breathing room
6077
+ /* Vertical variants need more breathing room
5957
6078
  Note: header-variant-* is on Section (ancestor), rb-header-layout on inner div */
5958
- :where(.theme-scope) .header-variant-centered .rb-header-layout,
5959
- :where(.theme-scope) .header-variant-editorial .rb-header-layout {
5960
- padding-top: 1.5rem;
5961
- padding-bottom: 1.5rem;
5962
- }
6079
+ :where(.theme-scope) .header-variant-centered .rb-header-layout {
6080
+ padding-top: 1.5rem;
6081
+ padding-bottom: 1.5rem;
6082
+ }
5963
6083
 
5964
- /* Floating variant - compact padding */
5965
- :where(.theme-scope) .header-variant-floating .rb-header-layout {
5966
- padding-top: 0.75rem;
5967
- padding-bottom: 0.75rem;
5968
- }
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
+ }
5969
6089
 
5970
- /* =================================================================
6090
+ /* =================================================================
5971
6091
  Header Shrink-on-Scroll
5972
6092
 
5973
6093
  Only applies when .rb-header-shrink is present AND user has scrolled.
5974
6094
  No changes until scroll - shrink header = non-shrink header initially.
5975
6095
  ================================================================= */
5976
6096
 
5977
- /* Scrolled state - reduce padding */
5978
- :where(.theme-scope) .rb-header-shrink.header-scrolled .rb-header-layout {
5979
- padding-top: 0.5rem;
5980
- padding-bottom: 0.5rem;
5981
- }
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
+ }
5982
6102
 
5983
- /* Vertical variants get gentler reduction
6103
+ /* Vertical variants get gentler reduction
5984
6104
  Note: Both classes are on Section, rb-header-layout on inner div */
5985
- :where(.theme-scope) .rb-header-shrink.header-scrolled.header-variant-centered .rb-header-layout,
5986
- :where(.theme-scope) .rb-header-shrink.header-scrolled.header-variant-editorial .rb-header-layout {
5987
- padding-top: 0.75rem;
5988
- padding-bottom: 0.75rem;
5989
- }
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
+ }
5990
6111
 
5991
- /* Floating variant */
5992
- :where(.theme-scope) .rb-header-shrink.header-scrolled.header-variant-floating .rb-header-layout {
5993
- padding-top: 0.25rem;
5994
- padding-bottom: 0.25rem;
5995
- }
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
+ }
5996
6119
 
5997
- /* =================================================================
6120
+ /* =================================================================
5998
6121
  Logo & Title Sizing
5999
6122
 
6000
6123
  Font sizes controlled here, not via utility classes, so shrink
6001
6124
  transitions work (utility classes would override :where()).
6002
6125
  ================================================================= */
6003
6126
 
6004
- /* Logo image sizing */
6005
- :where(.theme-scope) .rb-header-logo-sm {
6006
- height: 2.5rem;
6007
- transition: height 300ms var(--motion-ease, ease);
6008
- }
6009
- :where(.theme-scope) .rb-header-logo-lg {
6010
- height: 3rem;
6011
- transition: height 300ms var(--motion-ease, ease);
6012
- }
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
+ }
6013
6136
 
6014
- /* Site title base font size (replaces rb-text-lg / rb-text-xl utilities) */
6015
- :where(.theme-scope) .header-logo-text {
6016
- font-size: 1.125rem; /* matches rb-text-lg */
6017
- line-height: 1.75rem;
6018
- transition: font-size 300ms var(--motion-ease, ease);
6019
- }
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
+ }
6020
6143
 
6021
- /* Mobile: reduce site title size (~30%) to keep header compact */
6022
- @container rb-site (max-width: 767px) {
6144
+ /* Mobile: reduce site title size (~30%) to keep header compact */
6145
+ @container rb-site (max-width: 767px) {
6023
6146
  @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
6024
6147
  :where(.theme-scope) .header-logo-text {
6025
- font-size: 0.8rem;
6026
- line-height: 1.25rem;
6027
- }
6148
+ font-size: 0.8rem;
6149
+ line-height: 1.25rem;
6150
+ }
6028
6151
 
6029
- :where(.theme-scope) .header-variant-centered .header-logo-text,
6030
- :where(.theme-scope) .header-variant-editorial .header-logo-text {
6031
- font-size: 0.875rem;
6032
- line-height: 1.25rem;
6033
- }
6152
+ :where(.theme-scope) .header-variant-centered .header-logo-text {
6153
+ font-size: 0.875rem;
6154
+ line-height: 1.25rem;
6155
+ }
6034
6156
  }
6035
6157
  }
6036
6158
 
6037
- /* Centered/editorial variants use larger title */
6038
- :where(.theme-scope) .header-variant-centered .header-logo-text,
6039
- :where(.theme-scope) .header-variant-editorial .header-logo-text {
6040
- font-size: 1.25rem; /* matches rb-text-xl */
6041
- line-height: 1.75rem;
6042
- }
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
+ }
6043
6164
 
6044
- /* =================================================================
6165
+ /* =================================================================
6045
6166
  Shrink on Scroll - Logo & Title
6046
6167
  ================================================================= */
6047
6168
 
6048
- :where(.theme-scope) .rb-header-shrink.header-scrolled .rb-header-logo-sm {
6049
- height: 2rem;
6050
- }
6051
- :where(.theme-scope) .rb-header-shrink.header-scrolled .rb-header-logo-lg {
6052
- height: 2.5rem;
6053
- }
6054
- :where(.theme-scope) .rb-header-shrink.header-scrolled .header-logo-text {
6055
- font-size: 0.875rem;
6056
- }
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
+ }
6057
6178
 
6058
- @container rb-site (max-width: 767px) {
6179
+ @container rb-site (max-width: 767px) {
6059
6180
  @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
6060
6181
  :where(.theme-scope) .rb-header-shrink.header-scrolled .header-logo-text {
6061
- font-size: 0.75rem;
6062
- }
6182
+ font-size: 0.75rem;
6183
+ }
6063
6184
  }
6064
6185
  }
6065
6186
 
6066
- /* =================================================================
6187
+ /* =================================================================
6067
6188
  Accessibility: Reduced Motion
6068
6189
  ================================================================= */
6069
6190
 
6070
- @media (prefers-reduced-motion: reduce) {
6071
- :where(.theme-scope) .rb-header-layout,
6072
- :where(.theme-scope) .rb-header-logo-sm,
6073
- :where(.theme-scope) .rb-header-logo-lg,
6074
- :where(.theme-scope) .header-logo-text {
6075
- 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
+ }
6076
6198
  }
6077
- }
6078
6199
 
6079
- /* Nav underline-grow animation (used by navStyle: "underline-grow" in site-header.ts) */
6080
- :where(.theme-scope) .nav-underline-grow {
6081
- position: relative;
6082
- overflow: visible;
6083
- }
6084
- :where(.theme-scope) .nav-underline-grow::after {
6085
- content: "";
6086
- position: absolute;
6087
- left: 0;
6088
- bottom: var(--nav-underline-offset, -0.35em);
6089
- width: 100%;
6090
- height: 2px;
6091
- background-color: currentColor;
6092
- transform: scaleX(0);
6093
- transform-origin: left center;
6094
- transition: transform calc(var(--motion-duration) * 1.1) var(--motion-ease);
6095
- }
6096
- :where(.theme-scope) .nav-underline-grow:hover::after,
6097
- :where(.theme-scope)
6098
- .nav-underline-grow.nav-underline-active[data-active="true"]::after {
6099
- transform: scaleX(1);
6100
- }
6101
- :where(.theme-scope) .nav-underline-offset-tight {
6102
- --nav-underline-offset: -0.2em;
6103
- }
6104
- :where(.theme-scope) .nav-underline-offset-normal {
6105
- --nav-underline-offset: -0.3em;
6106
- }
6107
- :where(.theme-scope) .nav-underline-offset-loose {
6108
- --nav-underline-offset: -0.45em;
6109
- }
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
+ }
6110
6231
 
6111
- :where(.theme-scope) .card-surface {
6112
- background: rgb(var(--tb-surface));
6113
- color: rgb(var(--tb-onSurface, var(--tb-text)));
6114
- border: 1px solid rgb(var(--tb-border));
6115
- border-radius: var(--radius-card);
6116
- box-shadow: var(--shadow-elev);
6117
- }
6118
- :where(.theme-scope) .media-rounded {
6119
- border-radius: var(--radius-card);
6120
- }
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
+ }
6121
6242
 
6122
- :where(.theme-scope) .is-placeholder::after {
6123
- content: "Placeholder";
6124
- position: absolute;
6125
- top: 0.5rem;
6126
- left: 0.5rem;
6127
- font-size: 11px;
6128
- background: color-mix(in oklab, rgb(var(--tb-bg)), rgb(var(--tb-text)) 10%);
6129
- color: rgb(var(--tb-text));
6130
- padding: 0.15rem 0.35rem;
6131
- border-radius: 4px;
6132
- opacity: 0.85;
6133
- }
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
+ }
6134
6255
 
6135
- /* Status badges - theme-aware styling for capacity indicators */
6136
- :where(.theme-scope) .badge-status {
6137
- display: inline-flex;
6138
- align-items: center;
6139
- padding: 0.125rem 0.625rem;
6140
- border-radius: 9999px;
6141
- font-size: 0.75rem;
6142
- font-weight: 500;
6143
- line-height: 1.25rem;
6144
- }
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
+ }
6145
6266
 
6146
- /* All badges use a subtle theme-aware style by default */
6147
- :where(.theme-scope) .badge-status-available {
6148
- background-color: rgba(var(--tb-secondary), 0.15);
6149
- color: rgb(var(--tb-secondary-700, var(--tb-secondary)));
6150
- }
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
+ }
6151
6272
 
6152
- :where(.theme-scope) .badge-status-low {
6153
- background-color: rgba(var(--tb-accent), 0.15);
6154
- color: rgb(var(--tb-accent-700, var(--tb-accent)));
6155
- }
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
+ }
6156
6277
 
6157
- :where(.theme-scope) .badge-status-sold-out {
6158
- background-color: rgba(var(--tb-text), 0.1);
6159
- color: rgb(var(--tb-mutedText));
6160
- }
6278
+ :where(.theme-scope) .badge-status-sold-out {
6279
+ background-color: rgba(var(--tb-text), 0.1);
6280
+ color: rgb(var(--tb-mutedText));
6281
+ }
6161
6282
 
6162
- /* Event list empty state - theme-aware */
6163
- :where(.theme-scope) .event-list-empty {
6164
- background-color: rgb(var(--tb-surface));
6165
- color: rgb(var(--tb-onSurface, var(--tb-text)));
6166
- border-color: rgb(var(--tb-border));
6167
- }
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
+ }
6168
6289
  } /* end @layer rb-theme */
6169
6290
 
6170
6291
  @keyframes accordion-down {