@oods/tokens 0.3.1 → 0.3.2

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.
@@ -57,29 +57,9 @@
57
57
  --oods-motion-easing-standard: cubic-bezier(0.2, 0, 0.38, 1); /** Primary ease-out curve for UI transitions. */
58
58
  --oods-motion-easing-emphasized: cubic-bezier(0.05, 0.7, 0.1, 1); /** Emphasized ease for entrance motion requiring more weight. */
59
59
  --oods-motion-easing-linear: cubic-bezier(0, 0, 1, 1); /** Linear fallback for reduced-motion scenarios. */
60
- --oods-motion-transition-hover-delay: 0ms; /** Hover affordances across buttons, chips, and cards. */
61
- --oods-motion-transition-focus-delay: 0ms; /** Focus outlines and glow elevation. */
62
- --oods-motion-transition-chip-in-delay: 0ms; /** Chip selection and entry into filter groups. */
63
- --oods-motion-transition-chip-out-delay: 0ms; /** Chip deselection or removal. */
64
- --oods-motion-transition-banner-reveal-delay: 20ms; /** Banner entrance along the vertical axis. */
65
60
  --oods-motion-reduced-duration-fast: 0ms; /** Instant feedback for motion-sensitive contexts. */
66
61
  --oods-motion-reduced-duration-base: 0ms; /** Primary reduced-motion tempo. */
67
62
  --oods-motion-reduced-duration-slow: 0ms; /** Long-form transitions collapse to zero in reduced motion. */
68
- --oods-motion-reduced-transition-hover-delay: 0ms; /** Hover states snap immediately when motion is reduced. */
69
- --oods-motion-reduced-transition-focus-delay: 0ms; /** Focus rings become instant in reduced-motion. */
70
- --oods-motion-reduced-transition-chip-in-delay: 0ms; /** Chip selection occurs without momentum. */
71
- --oods-motion-reduced-transition-chip-out-delay: 0ms; /** Chip removal happens immediately. */
72
- --oods-motion-reduced-transition-banner-reveal-delay: 0ms; /** Banner reveal falls back to an instant appearance. */
73
- --oods-shadow-elevation-card-offset-x: 0px; /** Baseline elevation shadow for cards and raised panels. */
74
- --oods-shadow-elevation-card-offset-y: 16px; /** Baseline elevation shadow for cards and raised panels. */
75
- --oods-shadow-elevation-card-blur: 40px; /** Baseline elevation shadow for cards and raised panels. */
76
- --oods-shadow-elevation-card-spread: -12px; /** Baseline elevation shadow for cards and raised panels. */
77
- --oods-shadow-elevation-card-color: rgba(15, 23, 42, 0.12); /** Baseline elevation shadow for cards and raised panels. */
78
- --oods-shadow-elevation-overlay-offset-x: 0px; /** High elevation shadow used for overlays and dialogs. */
79
- --oods-shadow-elevation-overlay-offset-y: 24px; /** High elevation shadow used for overlays and dialogs. */
80
- --oods-shadow-elevation-overlay-blur: 56px; /** High elevation shadow used for overlays and dialogs. */
81
- --oods-shadow-elevation-overlay-spread: -16px; /** High elevation shadow used for overlays and dialogs. */
82
- --oods-shadow-elevation-overlay-color: rgba(15, 23, 42, 0.24); /** High elevation shadow used for overlays and dialogs. */
83
63
  --ref-border-width-hairline: 1px; /** Hairline border width for foundational surfaces. */
84
64
  --ref-border-width-bold: 2px; /** Bold border width for emphasis and outlines. */
85
65
  --ref-border-width-emphasis: 3px; /** Emphasis border width for selected-state indicators such as the active tab underline. */
@@ -199,8 +179,8 @@
199
179
  --ref-space-ramp-050: 0.125rem; /** Component geometry ramp 050: 0.125rem (2px at the 16px root). 100 is the 4px unit; every sys component geometry role resolves to one ramp entry (Sprint 200 m02). */
200
180
  --ref-shadow-color-subtle: rgba(15, 23, 42, 0.12); /** Soft ambient shadow colour for elevated surfaces. */
201
181
  --ref-shadow-color-strong: rgba(15, 23, 42, 0.24); /** Stronger shadow colour for high elevation overlays. */
202
- --ref-typography-families-sans: 'DM Sans', '"Helvetica Neue"', Helvetica, Arial, sans-serif; /** Brand A primary sans-serif — Aeonik with system fallbacks. */
203
- --ref-typography-families-display: 'Cormorant Garamond', Cormorant, Georgia, '"Times New Roman"', serif; /** Brand A display serif — Canela for large editorial headings. */
182
+ --ref-typography-families-sans: 'DM Sans', "Helvetica Neue", Helvetica, Arial, sans-serif; /** Brand A primary sans-serif — Aeonik with system fallbacks. */
183
+ --ref-typography-families-display: 'Cormorant Garamond', Cormorant, Georgia, "Times New Roman", serif; /** Brand A display serif — Canela for large editorial headings. */
204
184
  --ref-typography-weights-regular: 400; /** Standard reading weight. */
205
185
  --ref-typography-weights-medium: 500; /** Medium emphasis for supporting text and labels. */
206
186
  --ref-typography-weights-semibold: 600; /** Semibold weight for headings and key UI labels. */
@@ -223,37 +203,11 @@
223
203
  --ref-typography-letter-spacing-default: 0em; /** Neutral tracking for body copy. */
224
204
  --ref-typography-letter-spacing-wide: 0.08em; /** Wide tracking for uppercase captions. */
225
205
  --oods-overlay-backdrop-opacity: 0.5; /** Default backdrop opacity for overlays. */
226
- --oods-overlay-transition-open-delay: 0ms; /** Overlay open transition; collapses under reduced motion. */
227
- --oods-overlay-transition-close-delay: 0ms; /** Overlay close transition; collapses under reduced motion. */
228
206
  --sys-breakpoint-sm: 640; /** 640px. Number-typed so every platform emits a bare literal; a dimension would emit an invalid raw string into Swift and Kotlin. Value adopted from the installed Tailwind default, not invented — the repo already renders against it. */
229
207
  --sys-breakpoint-md: 768; /** 768px. Tablet-portrait class, and the width the view-context rail collapses at (authored as a 48rem @container threshold). */
230
208
  --sys-breakpoint-lg: 1024; /** 1024px. Tablet-landscape / small-laptop class. */
231
209
  --sys-breakpoint-xl: 1280; /** 1280px. The viewport the VRT and a11y-contract capture suites run at. */
232
210
  --sys-breakpoint-2xl: 1536; /** 1536px. Zero 2xl: usages in the repo today; it ships so the scale is complete and the generated Tailwind screens map stays identical to the framework default it replaces. Keys are authored ascending sm -> 2xl because Tailwind emits @media blocks in config order. */
233
- --sys-shadow-panel-offset-x: 0px; /** Raised-panel shadow; the card elevation from the reference shadow scale, expanded into its parts. */
234
- --sys-shadow-panel-offset-y: 16px; /** Raised-panel shadow; the card elevation from the reference shadow scale, expanded into its parts. */
235
- --sys-shadow-panel-blur: 40px; /** Raised-panel shadow; the card elevation from the reference shadow scale, expanded into its parts. */
236
- --sys-shadow-panel-spread: -12px; /** Raised-panel shadow; the card elevation from the reference shadow scale, expanded into its parts. */
237
- --sys-shadow-panel-color: rgba(15, 23, 42, 0.12); /** Raised-panel shadow; the card elevation from the reference shadow scale, expanded into its parts. */
238
- --sys-shadow-overlay-offset-x: 0px; /** Overlay shadow for menus and trays; the overlay elevation from the reference shadow scale, expanded into its parts. */
239
- --sys-shadow-overlay-offset-y: 24px; /** Overlay shadow for menus and trays; the overlay elevation from the reference shadow scale, expanded into its parts. */
240
- --sys-shadow-overlay-blur: 56px; /** Overlay shadow for menus and trays; the overlay elevation from the reference shadow scale, expanded into its parts. */
241
- --sys-shadow-overlay-spread: -16px; /** Overlay shadow for menus and trays; the overlay elevation from the reference shadow scale, expanded into its parts. */
242
- --sys-shadow-overlay-color: rgba(15, 23, 42, 0.24); /** Overlay shadow for menus and trays; the overlay elevation from the reference shadow scale, expanded into its parts. */
243
- --sys-motion-reduced-transition-hover-delay: 0ms; /** Reduced-motion hover transition. */
244
- --sys-motion-reduced-transition-focus-delay: 0ms; /** Reduced-motion focus transition. */
245
- --sys-motion-reduced-transition-chip-in-delay: 0ms; /** Reduced-motion chip entry transition. */
246
- --sys-motion-reduced-transition-chip-out-delay: 0ms; /** Reduced-motion chip exit transition. */
247
- --sys-motion-reduced-transition-banner-reveal-delay: 0ms; /** Reduced-motion banner reveal transition. */
248
- --sys-motion-transition-hover-delay: 0ms; /** System hover transition for interactive affordances. */
249
- --sys-motion-transition-focus-delay: 0ms; /** System focus transition for outlines/glow. */
250
- --sys-motion-transition-chip-in-delay: 0ms; /** System chip entry transition. */
251
- --sys-motion-transition-chip-out-delay: 0ms; /** System chip exit transition. */
252
- --sys-motion-transition-banner-reveal-delay: 20ms; /** System banner reveal transition. */
253
- --sys-text-scale-caption-text-case: uppercase; /** System caption scale. */
254
- --sys-text-scale-label-md-text-case: none; /** System label medium scale. */
255
- --oods-text-scale-caption-text-case: uppercase; /** Caption text for metadata, badges, and helper copy. */
256
- --oods-text-scale-label-md-text-case: none; /** Form labels and actionable micro copy. */
257
211
  --oods-z-base: 0; /** Default stacking context for page content. */
258
212
  --oods-z-raised: 10; /** Raised cards and sticky UI. */
259
213
  --oods-z-overlay: 1000; /** Modal overlays and backdrops. */
@@ -269,29 +223,9 @@
269
223
  --theme-dark-motion-easing-standard: cubic-bezier(0.2, 0, 0.38, 1); /** Primary ease-out curve for UI transitions. */
270
224
  --theme-dark-motion-easing-emphasized: cubic-bezier(0.05, 0.7, 0.1, 1); /** Emphasized ease for entrance motion requiring more weight. */
271
225
  --theme-dark-motion-easing-linear: cubic-bezier(0, 0, 1, 1); /** Linear fallback for reduced-motion scenarios. */
272
- --theme-dark-motion-transition-hover-delay: 0ms; /** Hover affordances across buttons, chips, and cards. */
273
- --theme-dark-motion-transition-focus-delay: 0ms; /** Focus outlines and glow elevation. */
274
- --theme-dark-motion-transition-chip-in-delay: 0ms; /** Chip selection and entry into filter groups. */
275
- --theme-dark-motion-transition-chip-out-delay: 0ms; /** Chip deselection or removal. */
276
- --theme-dark-motion-transition-banner-reveal-delay: 20ms; /** Banner entrance along the vertical axis. */
277
226
  --theme-dark-motion-reduced-duration-fast: 0ms; /** Instant feedback for motion-sensitive contexts. */
278
227
  --theme-dark-motion-reduced-duration-base: 0ms; /** Primary reduced-motion tempo. */
279
228
  --theme-dark-motion-reduced-duration-slow: 0ms; /** Long-form transitions collapse to zero in reduced motion. */
280
- --theme-dark-motion-reduced-transition-hover-delay: 0ms; /** Hover states snap immediately when motion is reduced. */
281
- --theme-dark-motion-reduced-transition-focus-delay: 0ms; /** Focus rings become instant in reduced-motion. */
282
- --theme-dark-motion-reduced-transition-chip-in-delay: 0ms; /** Chip selection occurs without momentum. */
283
- --theme-dark-motion-reduced-transition-chip-out-delay: 0ms; /** Chip removal happens immediately. */
284
- --theme-dark-motion-reduced-transition-banner-reveal-delay: 0ms; /** Banner reveal falls back to an instant appearance. */
285
- --theme-dark-shadow-elevation-card-offset-x: 0px; /** Primary elevation for dark cards—leans on outline support with a low, cool glow. */
286
- --theme-dark-shadow-elevation-card-offset-y: 18px; /** Primary elevation for dark cards—leans on outline support with a low, cool glow. */
287
- --theme-dark-shadow-elevation-card-blur: 48px; /** Primary elevation for dark cards—leans on outline support with a low, cool glow. */
288
- --theme-dark-shadow-elevation-card-spread: -28px; /** Primary elevation for dark cards—leans on outline support with a low, cool glow. */
289
- --theme-dark-shadow-elevation-card-color: rgba(4, 10, 22, 0.48); /** Primary elevation for dark cards—leans on outline support with a low, cool glow. */
290
- --theme-dark-shadow-elevation-overlay-offset-x: 0px; /** Overlay elevation tuned for modals and trays without blooming. */
291
- --theme-dark-shadow-elevation-overlay-offset-y: 32px; /** Overlay elevation tuned for modals and trays without blooming. */
292
- --theme-dark-shadow-elevation-overlay-blur: 68px; /** Overlay elevation tuned for modals and trays without blooming. */
293
- --theme-dark-shadow-elevation-overlay-spread: -30px; /** Overlay elevation tuned for modals and trays without blooming. */
294
- --theme-dark-shadow-elevation-overlay-color: rgba(8, 18, 38, 0.55); /** Overlay elevation tuned for modals and trays without blooming. */
295
229
  --theme-dark-status-info-surface: oklch(0.28 0.070481 245); /** color.brand.A.status.info.surface; generated from palette/seeds.json by generate-palette.ts. */
296
230
  --theme-dark-status-info-border: oklch(0.45 0.106275 245); /** color.brand.A.status.info.border; generated from palette/seeds.json by generate-palette.ts. */
297
231
  --theme-dark-status-info-text: oklch(0.88 0.029459 245); /** color.brand.A.status.info.text; generated from palette/seeds.json by generate-palette.ts. */
@@ -342,44 +276,9 @@
342
276
  --theme-dark-icon-muted: oklch(0.64 0.008 265); /** muted; generated from palette/seeds.json by generate-palette.ts. */
343
277
  --theme-dark-icon-on-interactive: oklch(0.985 0.006988 265); /** on-interactive; generated from palette/seeds.json by generate-palette.ts. */
344
278
  --theme-focus-width: 2px; /** Standard focus outline width. */
345
- --theme-motion-transition-hover-delay: 0ms;
346
- --theme-motion-transition-focus-delay: 0ms;
347
- --theme-motion-transition-chip-in-delay: 0ms;
348
- --theme-motion-transition-chip-out-delay: 0ms;
349
- --theme-motion-transition-banner-reveal-delay: 20ms;
350
- --theme-motion-reduced-transition-hover-delay: 0ms;
351
- --theme-motion-reduced-transition-focus-delay: 0ms;
352
- --theme-motion-reduced-transition-chip-in-delay: 0ms;
353
- --theme-motion-reduced-transition-chip-out-delay: 0ms;
354
- --theme-motion-reduced-transition-banner-reveal-delay: 0ms;
355
- --theme-shadow-elevation-card-offset-x: 0px;
356
- --theme-shadow-elevation-card-offset-y: 16px;
357
- --theme-shadow-elevation-card-blur: 40px;
358
- --theme-shadow-elevation-card-spread: -12px;
359
- --theme-shadow-elevation-card-color: rgba(15, 23, 42, 0.12);
360
- --theme-shadow-elevation-overlay-offset-x: 0px;
361
- --theme-shadow-elevation-overlay-offset-y: 24px;
362
- --theme-shadow-elevation-overlay-blur: 56px;
363
- --theme-shadow-elevation-overlay-spread: -16px;
364
- --theme-shadow-elevation-overlay-color: rgba(15, 23, 42, 0.24);
365
279
  --theme-surface-interactive-primary-default: oklch(0.53 0.06 43); /** theme.surface.interactive.primary.default; generated from palette/seeds.json by generate-palette.ts. */
366
280
  --theme-surface-interactive-primary-hover: oklch(0.43 0.075 43); /** theme.surface.interactive.primary.hover; generated from palette/seeds.json by generate-palette.ts. */
367
281
  --theme-surface-interactive-primary-pressed: oklch(0.39 0.085 43); /** theme.surface.interactive.primary.pressed; generated from palette/seeds.json by generate-palette.ts. */
368
- --cmp-card-shadow-offset-x: 0px; /** Default card shadow role, expanded into its parts; component rules may override it. */
369
- --cmp-card-shadow-offset-y: 16px; /** Default card shadow role, expanded into its parts; component rules may override it. */
370
- --cmp-card-shadow-blur: 40px; /** Default card shadow role, expanded into its parts; component rules may override it. */
371
- --cmp-card-shadow-spread: -12px; /** Default card shadow role, expanded into its parts; component rules may override it. */
372
- --cmp-card-shadow-color: rgba(15, 23, 42, 0.12); /** Default card shadow role, expanded into its parts; component rules may override it. */
373
- --cmp-shadow-overlay-offset-x: 0px; /** Default overlay shadow role, expanded into its parts; component rules may override it. */
374
- --cmp-shadow-overlay-offset-y: 24px; /** Default overlay shadow role, expanded into its parts; component rules may override it. */
375
- --cmp-shadow-overlay-blur: 56px; /** Default overlay shadow role, expanded into its parts; component rules may override it. */
376
- --cmp-shadow-overlay-spread: -16px; /** Default overlay shadow role, expanded into its parts; component rules may override it. */
377
- --cmp-shadow-overlay-color: rgba(15, 23, 42, 0.24); /** Default overlay shadow role, expanded into its parts; component rules may override it. */
378
- --cmp-shadow-panel-offset-x: 0px; /** Default shadow panel role, expanded into its parts; component rules may override it. */
379
- --cmp-shadow-panel-offset-y: 16px; /** Default shadow panel role, expanded into its parts; component rules may override it. */
380
- --cmp-shadow-panel-blur: 40px; /** Default shadow panel role, expanded into its parts; component rules may override it. */
381
- --cmp-shadow-panel-spread: -12px; /** Default shadow panel role, expanded into its parts; component rules may override it. */
382
- --cmp-shadow-panel-color: rgba(15, 23, 42, 0.12); /** Default shadow panel role, expanded into its parts; component rules may override it. */
383
282
  --oods-color-brand-a-surface-canvas: oklch(0.985 0.002339 265); /** color.brand.A.surface.canvas; generated from palette/seeds.json by generate-palette.ts. */
384
283
  --oods-color-brand-a-surface-raised: oklch(1 0 265); /** color.brand.A.surface.raised; generated from palette/seeds.json by generate-palette.ts. */
385
284
  --oods-color-brand-a-surface-subtle: oklch(0.95 0.003614 265); /** color.brand.A.surface.subtle; generated from palette/seeds.json by generate-palette.ts. */
@@ -476,6 +375,149 @@
476
375
  --oods-color-brand-b-status-accent-border: oklch(0.81 0.07093 305); /** color.brand.B.status.accent.border; generated from palette/seeds.json by generate-palette.ts. */
477
376
  --oods-color-brand-b-status-accent-text: oklch(0.42 0.143903 305); /** color.brand.B.status.accent.text; generated from palette/seeds.json by generate-palette.ts. */
478
377
  --oods-color-brand-b-status-accent-icon: oklch(0.5 0.15 305); /** color.brand.B.status.accent.icon; generated from palette/seeds.json by generate-palette.ts. */
378
+ --oods-motion-transition-hover-delay: 0ms; /** Hover affordances across buttons, chips, and cards. */
379
+ --oods-motion-transition-hover-timing-function: cubic-bezier(0.2, 0, 0.38, 1); /** Hover affordances across buttons, chips, and cards. */
380
+ --oods-motion-transition-focus-delay: 0ms; /** Focus outlines and glow elevation. */
381
+ --oods-motion-transition-focus-timing-function: cubic-bezier(0.2, 0, 0.38, 1); /** Focus outlines and glow elevation. */
382
+ --oods-motion-transition-chip-in-delay: 0ms; /** Chip selection and entry into filter groups. */
383
+ --oods-motion-transition-chip-in-timing-function: cubic-bezier(0.05, 0.7, 0.1, 1); /** Chip selection and entry into filter groups. */
384
+ --oods-motion-transition-chip-out-delay: 0ms; /** Chip deselection or removal. */
385
+ --oods-motion-transition-chip-out-timing-function: cubic-bezier(0.2, 0, 0.38, 1); /** Chip deselection or removal. */
386
+ --oods-motion-transition-banner-reveal-delay: 20ms; /** Banner entrance along the vertical axis. */
387
+ --oods-motion-transition-banner-reveal-timing-function: cubic-bezier(0.05, 0.7, 0.1, 1); /** Banner entrance along the vertical axis. */
388
+ --oods-motion-reduced-transition-hover-delay: 0ms; /** Hover states snap immediately when motion is reduced. */
389
+ --oods-motion-reduced-transition-hover-timing-function: cubic-bezier(0, 0, 1, 1); /** Hover states snap immediately when motion is reduced. */
390
+ --oods-motion-reduced-transition-focus-delay: 0ms; /** Focus rings become instant in reduced-motion. */
391
+ --oods-motion-reduced-transition-focus-timing-function: cubic-bezier(0, 0, 1, 1); /** Focus rings become instant in reduced-motion. */
392
+ --oods-motion-reduced-transition-chip-in-delay: 0ms; /** Chip selection occurs without momentum. */
393
+ --oods-motion-reduced-transition-chip-in-timing-function: cubic-bezier(0, 0, 1, 1); /** Chip selection occurs without momentum. */
394
+ --oods-motion-reduced-transition-chip-out-delay: 0ms; /** Chip removal happens immediately. */
395
+ --oods-motion-reduced-transition-chip-out-timing-function: cubic-bezier(0, 0, 1, 1); /** Chip removal happens immediately. */
396
+ --oods-motion-reduced-transition-banner-reveal-delay: 0ms; /** Banner reveal falls back to an instant appearance. */
397
+ --oods-motion-reduced-transition-banner-reveal-timing-function: cubic-bezier(0, 0, 1, 1); /** Banner reveal falls back to an instant appearance. */
398
+ --oods-shadow-elevation-card-offset-x: 0px; /** Baseline elevation shadow for cards and raised panels. */
399
+ --oods-shadow-elevation-card-offset-y: 16px; /** Baseline elevation shadow for cards and raised panels. */
400
+ --oods-shadow-elevation-card-blur: 40px; /** Baseline elevation shadow for cards and raised panels. */
401
+ --oods-shadow-elevation-card-spread: -12px; /** Baseline elevation shadow for cards and raised panels. */
402
+ --oods-shadow-elevation-card-color: rgba(15, 23, 42, 0.12); /** Baseline elevation shadow for cards and raised panels. */
403
+ --oods-shadow-elevation-overlay-offset-x: 0px; /** High elevation shadow used for overlays and dialogs. */
404
+ --oods-shadow-elevation-overlay-offset-y: 24px; /** High elevation shadow used for overlays and dialogs. */
405
+ --oods-shadow-elevation-overlay-blur: 56px; /** High elevation shadow used for overlays and dialogs. */
406
+ --oods-shadow-elevation-overlay-spread: -16px; /** High elevation shadow used for overlays and dialogs. */
407
+ --oods-shadow-elevation-overlay-color: rgba(15, 23, 42, 0.24); /** High elevation shadow used for overlays and dialogs. */
408
+ --oods-overlay-transition-open-delay: 0ms; /** Overlay open transition; collapses under reduced motion. */
409
+ --oods-overlay-transition-open-timing-function: cubic-bezier(0.2, 0, 0.38, 1); /** Overlay open transition; collapses under reduced motion. */
410
+ --oods-overlay-transition-close-delay: 0ms; /** Overlay close transition; collapses under reduced motion. */
411
+ --oods-overlay-transition-close-timing-function: cubic-bezier(0.2, 0, 0.38, 1); /** Overlay close transition; collapses under reduced motion. */
412
+ --sys-shadow-panel-offset-x: 0px; /** Raised-panel shadow; the card elevation from the reference shadow scale, expanded into its parts. */
413
+ --sys-shadow-panel-offset-y: 16px; /** Raised-panel shadow; the card elevation from the reference shadow scale, expanded into its parts. */
414
+ --sys-shadow-panel-blur: 40px; /** Raised-panel shadow; the card elevation from the reference shadow scale, expanded into its parts. */
415
+ --sys-shadow-panel-spread: -12px; /** Raised-panel shadow; the card elevation from the reference shadow scale, expanded into its parts. */
416
+ --sys-shadow-panel-color: rgba(15, 23, 42, 0.12); /** Raised-panel shadow; the card elevation from the reference shadow scale, expanded into its parts. */
417
+ --sys-shadow-overlay-offset-x: 0px; /** Overlay shadow for menus and trays; the overlay elevation from the reference shadow scale, expanded into its parts. */
418
+ --sys-shadow-overlay-offset-y: 24px; /** Overlay shadow for menus and trays; the overlay elevation from the reference shadow scale, expanded into its parts. */
419
+ --sys-shadow-overlay-blur: 56px; /** Overlay shadow for menus and trays; the overlay elevation from the reference shadow scale, expanded into its parts. */
420
+ --sys-shadow-overlay-spread: -16px; /** Overlay shadow for menus and trays; the overlay elevation from the reference shadow scale, expanded into its parts. */
421
+ --sys-shadow-overlay-color: rgba(15, 23, 42, 0.24); /** Overlay shadow for menus and trays; the overlay elevation from the reference shadow scale, expanded into its parts. */
422
+ --sys-motion-reduced-transition-hover-delay: 0ms; /** Reduced-motion hover transition. */
423
+ --sys-motion-reduced-transition-hover-timing-function: cubic-bezier(0, 0, 1, 1); /** Reduced-motion hover transition. */
424
+ --sys-motion-reduced-transition-focus-delay: 0ms; /** Reduced-motion focus transition. */
425
+ --sys-motion-reduced-transition-focus-timing-function: cubic-bezier(0, 0, 1, 1); /** Reduced-motion focus transition. */
426
+ --sys-motion-reduced-transition-chip-in-delay: 0ms; /** Reduced-motion chip entry transition. */
427
+ --sys-motion-reduced-transition-chip-in-timing-function: cubic-bezier(0, 0, 1, 1); /** Reduced-motion chip entry transition. */
428
+ --sys-motion-reduced-transition-chip-out-delay: 0ms; /** Reduced-motion chip exit transition. */
429
+ --sys-motion-reduced-transition-chip-out-timing-function: cubic-bezier(0, 0, 1, 1); /** Reduced-motion chip exit transition. */
430
+ --sys-motion-reduced-transition-banner-reveal-delay: 0ms; /** Reduced-motion banner reveal transition. */
431
+ --sys-motion-reduced-transition-banner-reveal-timing-function: cubic-bezier(0, 0, 1, 1); /** Reduced-motion banner reveal transition. */
432
+ --sys-motion-transition-hover-delay: 0ms; /** System hover transition for interactive affordances. */
433
+ --sys-motion-transition-hover-timing-function: cubic-bezier(0.2, 0, 0.38, 1); /** System hover transition for interactive affordances. */
434
+ --sys-motion-transition-focus-delay: 0ms; /** System focus transition for outlines/glow. */
435
+ --sys-motion-transition-focus-timing-function: cubic-bezier(0.2, 0, 0.38, 1); /** System focus transition for outlines/glow. */
436
+ --sys-motion-transition-chip-in-delay: 0ms; /** System chip entry transition. */
437
+ --sys-motion-transition-chip-in-timing-function: cubic-bezier(0.05, 0.7, 0.1, 1); /** System chip entry transition. */
438
+ --sys-motion-transition-chip-out-delay: 0ms; /** System chip exit transition. */
439
+ --sys-motion-transition-chip-out-timing-function: cubic-bezier(0.2, 0, 0.38, 1); /** System chip exit transition. */
440
+ --sys-motion-transition-banner-reveal-delay: 20ms; /** System banner reveal transition. */
441
+ --sys-motion-transition-banner-reveal-timing-function: cubic-bezier(0.05, 0.7, 0.1, 1); /** System banner reveal transition. */
442
+ --sys-text-scale-caption-text-case: uppercase; /** System caption scale. */
443
+ --sys-text-scale-label-md-text-case: none; /** System label medium scale. */
444
+ --oods-text-scale-caption-text-case: uppercase; /** Caption text for metadata, badges, and helper copy. */
445
+ --oods-text-scale-label-md-text-case: none; /** Form labels and actionable micro copy. */
446
+ --theme-dark-motion-transition-hover-delay: 0ms; /** Hover affordances across buttons, chips, and cards. */
447
+ --theme-dark-motion-transition-hover-timing-function: cubic-bezier(0.2, 0, 0.38, 1); /** Hover affordances across buttons, chips, and cards. */
448
+ --theme-dark-motion-transition-focus-delay: 0ms; /** Focus outlines and glow elevation. */
449
+ --theme-dark-motion-transition-focus-timing-function: cubic-bezier(0.2, 0, 0.38, 1); /** Focus outlines and glow elevation. */
450
+ --theme-dark-motion-transition-chip-in-delay: 0ms; /** Chip selection and entry into filter groups. */
451
+ --theme-dark-motion-transition-chip-in-timing-function: cubic-bezier(0.05, 0.7, 0.1, 1); /** Chip selection and entry into filter groups. */
452
+ --theme-dark-motion-transition-chip-out-delay: 0ms; /** Chip deselection or removal. */
453
+ --theme-dark-motion-transition-chip-out-timing-function: cubic-bezier(0.2, 0, 0.38, 1); /** Chip deselection or removal. */
454
+ --theme-dark-motion-transition-banner-reveal-delay: 20ms; /** Banner entrance along the vertical axis. */
455
+ --theme-dark-motion-transition-banner-reveal-timing-function: cubic-bezier(0.05, 0.7, 0.1, 1); /** Banner entrance along the vertical axis. */
456
+ --theme-dark-motion-reduced-transition-hover-delay: 0ms; /** Hover states snap immediately when motion is reduced. */
457
+ --theme-dark-motion-reduced-transition-hover-timing-function: cubic-bezier(0, 0, 1, 1); /** Hover states snap immediately when motion is reduced. */
458
+ --theme-dark-motion-reduced-transition-focus-delay: 0ms; /** Focus rings become instant in reduced-motion. */
459
+ --theme-dark-motion-reduced-transition-focus-timing-function: cubic-bezier(0, 0, 1, 1); /** Focus rings become instant in reduced-motion. */
460
+ --theme-dark-motion-reduced-transition-chip-in-delay: 0ms; /** Chip selection occurs without momentum. */
461
+ --theme-dark-motion-reduced-transition-chip-in-timing-function: cubic-bezier(0, 0, 1, 1); /** Chip selection occurs without momentum. */
462
+ --theme-dark-motion-reduced-transition-chip-out-delay: 0ms; /** Chip removal happens immediately. */
463
+ --theme-dark-motion-reduced-transition-chip-out-timing-function: cubic-bezier(0, 0, 1, 1); /** Chip removal happens immediately. */
464
+ --theme-dark-motion-reduced-transition-banner-reveal-delay: 0ms; /** Banner reveal falls back to an instant appearance. */
465
+ --theme-dark-motion-reduced-transition-banner-reveal-timing-function: cubic-bezier(0, 0, 1, 1); /** Banner reveal falls back to an instant appearance. */
466
+ --theme-dark-shadow-elevation-card-offset-x: 0px; /** Primary elevation for dark cards—leans on outline support with a low, cool glow. */
467
+ --theme-dark-shadow-elevation-card-offset-y: 18px; /** Primary elevation for dark cards—leans on outline support with a low, cool glow. */
468
+ --theme-dark-shadow-elevation-card-blur: 48px; /** Primary elevation for dark cards—leans on outline support with a low, cool glow. */
469
+ --theme-dark-shadow-elevation-card-spread: -28px; /** Primary elevation for dark cards—leans on outline support with a low, cool glow. */
470
+ --theme-dark-shadow-elevation-card-color: rgba(4, 10, 22, 0.48); /** Primary elevation for dark cards—leans on outline support with a low, cool glow. */
471
+ --theme-dark-shadow-elevation-overlay-offset-x: 0px; /** Overlay elevation tuned for modals and trays without blooming. */
472
+ --theme-dark-shadow-elevation-overlay-offset-y: 32px; /** Overlay elevation tuned for modals and trays without blooming. */
473
+ --theme-dark-shadow-elevation-overlay-blur: 68px; /** Overlay elevation tuned for modals and trays without blooming. */
474
+ --theme-dark-shadow-elevation-overlay-spread: -30px; /** Overlay elevation tuned for modals and trays without blooming. */
475
+ --theme-dark-shadow-elevation-overlay-color: rgba(8, 18, 38, 0.55); /** Overlay elevation tuned for modals and trays without blooming. */
476
+ --theme-motion-transition-hover-delay: 0ms;
477
+ --theme-motion-transition-hover-timing-function: cubic-bezier(0.2, 0, 0.38, 1);
478
+ --theme-motion-transition-focus-delay: 0ms;
479
+ --theme-motion-transition-focus-timing-function: cubic-bezier(0.2, 0, 0.38, 1);
480
+ --theme-motion-transition-chip-in-delay: 0ms;
481
+ --theme-motion-transition-chip-in-timing-function: cubic-bezier(0.05, 0.7, 0.1, 1);
482
+ --theme-motion-transition-chip-out-delay: 0ms;
483
+ --theme-motion-transition-chip-out-timing-function: cubic-bezier(0.2, 0, 0.38, 1);
484
+ --theme-motion-transition-banner-reveal-delay: 20ms;
485
+ --theme-motion-transition-banner-reveal-timing-function: cubic-bezier(0.05, 0.7, 0.1, 1);
486
+ --theme-motion-reduced-transition-hover-delay: 0ms;
487
+ --theme-motion-reduced-transition-hover-timing-function: cubic-bezier(0, 0, 1, 1);
488
+ --theme-motion-reduced-transition-focus-delay: 0ms;
489
+ --theme-motion-reduced-transition-focus-timing-function: cubic-bezier(0, 0, 1, 1);
490
+ --theme-motion-reduced-transition-chip-in-delay: 0ms;
491
+ --theme-motion-reduced-transition-chip-in-timing-function: cubic-bezier(0, 0, 1, 1);
492
+ --theme-motion-reduced-transition-chip-out-delay: 0ms;
493
+ --theme-motion-reduced-transition-chip-out-timing-function: cubic-bezier(0, 0, 1, 1);
494
+ --theme-motion-reduced-transition-banner-reveal-delay: 0ms;
495
+ --theme-motion-reduced-transition-banner-reveal-timing-function: cubic-bezier(0, 0, 1, 1);
496
+ --theme-shadow-elevation-card-offset-x: 0px;
497
+ --theme-shadow-elevation-card-offset-y: 16px;
498
+ --theme-shadow-elevation-card-blur: 40px;
499
+ --theme-shadow-elevation-card-spread: -12px;
500
+ --theme-shadow-elevation-card-color: rgba(15, 23, 42, 0.12);
501
+ --theme-shadow-elevation-overlay-offset-x: 0px;
502
+ --theme-shadow-elevation-overlay-offset-y: 24px;
503
+ --theme-shadow-elevation-overlay-blur: 56px;
504
+ --theme-shadow-elevation-overlay-spread: -16px;
505
+ --theme-shadow-elevation-overlay-color: rgba(15, 23, 42, 0.24);
506
+ --cmp-card-shadow-offset-x: 0px; /** Default card shadow role, expanded into its parts; component rules may override it. */
507
+ --cmp-card-shadow-offset-y: 16px; /** Default card shadow role, expanded into its parts; component rules may override it. */
508
+ --cmp-card-shadow-blur: 40px; /** Default card shadow role, expanded into its parts; component rules may override it. */
509
+ --cmp-card-shadow-spread: -12px; /** Default card shadow role, expanded into its parts; component rules may override it. */
510
+ --cmp-card-shadow-color: rgba(15, 23, 42, 0.12); /** Default card shadow role, expanded into its parts; component rules may override it. */
511
+ --cmp-shadow-overlay-offset-x: 0px; /** Default overlay shadow role, expanded into its parts; component rules may override it. */
512
+ --cmp-shadow-overlay-offset-y: 24px; /** Default overlay shadow role, expanded into its parts; component rules may override it. */
513
+ --cmp-shadow-overlay-blur: 56px; /** Default overlay shadow role, expanded into its parts; component rules may override it. */
514
+ --cmp-shadow-overlay-spread: -16px; /** Default overlay shadow role, expanded into its parts; component rules may override it. */
515
+ --cmp-shadow-overlay-color: rgba(15, 23, 42, 0.24); /** Default overlay shadow role, expanded into its parts; component rules may override it. */
516
+ --cmp-shadow-panel-offset-x: 0px; /** Default shadow panel role, expanded into its parts; component rules may override it. */
517
+ --cmp-shadow-panel-offset-y: 16px; /** Default shadow panel role, expanded into its parts; component rules may override it. */
518
+ --cmp-shadow-panel-blur: 40px; /** Default shadow panel role, expanded into its parts; component rules may override it. */
519
+ --cmp-shadow-panel-spread: -12px; /** Default shadow panel role, expanded into its parts; component rules may override it. */
520
+ --cmp-shadow-panel-color: rgba(15, 23, 42, 0.12); /** Default shadow panel role, expanded into its parts; component rules may override it. */
479
521
  --oods-viz-scale-sequential-blue-1: var(--oods-viz-scale-sequential-01); /** Sequential blue step 1 - lightest for low values. */
480
522
  --oods-viz-scale-sequential-blue-2: var(--oods-viz-scale-sequential-02); /** Sequential blue step 2. */
481
523
  --oods-viz-scale-sequential-blue-3: var(--oods-viz-scale-sequential-03); /** Sequential blue step 3. */
@@ -494,39 +536,6 @@
494
536
  --oods-viz-map-region-stroke: var(--ref-color-neutral-400); /** Region boundary stroke color for choropleth regions. */
495
537
  --oods-viz-map-region-hover-stroke: var(--ref-color-primary-500); /** Region stroke color on hover state. */
496
538
  --oods-viz-map-symbol-stroke: var(--ref-color-neutral-0); /** Symbol outline stroke for contrast on filled shapes. */
497
- --oods-motion-transition-hover-duration: var(--oods-motion-duration-fast); /** Hover affordances across buttons, chips, and cards. */
498
- --oods-motion-transition-hover-timing-function: var(--oods-motion-easing-standard); /** Hover affordances across buttons, chips, and cards. */
499
- --oods-motion-transition-focus-duration: var(--oods-motion-duration-base); /** Focus outlines and glow elevation. */
500
- --oods-motion-transition-focus-timing-function: var(--oods-motion-easing-standard); /** Focus outlines and glow elevation. */
501
- --oods-motion-transition-chip-in-duration: var(--oods-motion-duration-base); /** Chip selection and entry into filter groups. */
502
- --oods-motion-transition-chip-in-timing-function: var(--oods-motion-easing-emphasized); /** Chip selection and entry into filter groups. */
503
- --oods-motion-transition-chip-out-duration: var(--oods-motion-duration-fast); /** Chip deselection or removal. */
504
- --oods-motion-transition-chip-out-timing-function: var(--oods-motion-easing-standard); /** Chip deselection or removal. */
505
- --oods-motion-transition-banner-reveal-duration: var(--oods-motion-duration-slow); /** Banner entrance along the vertical axis. */
506
- --oods-motion-transition-banner-reveal-timing-function: var(--oods-motion-easing-emphasized); /** Banner entrance along the vertical axis. */
507
- --oods-motion-reduced-transition-hover-duration: var(--oods-motion-reduced-duration-fast); /** Hover states snap immediately when motion is reduced. */
508
- --oods-motion-reduced-transition-hover-timing-function: var(--oods-motion-easing-linear); /** Hover states snap immediately when motion is reduced. */
509
- --oods-motion-reduced-transition-focus-duration: var(--oods-motion-reduced-duration-base); /** Focus rings become instant in reduced-motion. */
510
- --oods-motion-reduced-transition-focus-timing-function: var(--oods-motion-easing-linear); /** Focus rings become instant in reduced-motion. */
511
- --oods-motion-reduced-transition-chip-in-duration: var(--oods-motion-reduced-duration-base); /** Chip selection occurs without momentum. */
512
- --oods-motion-reduced-transition-chip-in-timing-function: var(--oods-motion-easing-linear); /** Chip selection occurs without momentum. */
513
- --oods-motion-reduced-transition-chip-out-duration: var(--oods-motion-reduced-duration-fast); /** Chip removal happens immediately. */
514
- --oods-motion-reduced-transition-chip-out-timing-function: var(--oods-motion-easing-linear); /** Chip removal happens immediately. */
515
- --oods-motion-reduced-transition-banner-reveal-duration: var(--oods-motion-reduced-duration-slow); /** Banner reveal falls back to an instant appearance. */
516
- --oods-motion-reduced-transition-banner-reveal-timing-function: var(--oods-motion-easing-linear); /** Banner reveal falls back to an instant appearance. */
517
- --oods-border-panel-default-width: var(--ref-border-width-hairline); /** Default border for cards and primary panels. */
518
- --oods-border-panel-default-style: var(--ref-border-style-solid); /** Default border for cards and primary panels. */
519
- --oods-border-panel-default-radius: var(--ref-border-radius-md); /** Default border for cards and primary panels. */
520
- --oods-border-surface-default-width: var(--ref-border-width-hairline); /** Alias to panel default border. */
521
- --oods-border-surface-default-style: var(--ref-border-style-solid); /** Alias to panel default border. */
522
- --oods-border-surface-default-radius: var(--ref-border-radius-md); /** Alias to panel default border. */
523
- --oods-border-status-critical-width: var(--ref-border-width-hairline); /** Critical status banner border with rounded corners. */
524
- --oods-border-status-critical-style: var(--ref-border-style-solid); /** Critical status banner border with rounded corners. */
525
- --oods-border-status-critical-radius: var(--ref-border-radius-sm); /** Critical status banner border with rounded corners. */
526
- --oods-overlay-transition-open-duration: var(--oods-motion-duration-base); /** Overlay open transition; collapses under reduced motion. */
527
- --oods-overlay-transition-open-timing-function: var(--oods-motion-easing-standard); /** Overlay open transition; collapses under reduced motion. */
528
- --oods-overlay-transition-close-duration: var(--oods-motion-duration-base); /** Overlay close transition; collapses under reduced motion. */
529
- --oods-overlay-transition-close-timing-function: var(--oods-motion-easing-standard); /** Overlay close transition; collapses under reduced motion. */
530
539
  --sys-control-gap: var(--ref-space-ramp-200); /** Semantic component geometry: control gap; ramp 200. */
531
540
  --sys-control-gap-compact: var(--ref-space-ramp-100); /** Semantic component geometry: control gap compact; ramp 100. */
532
541
  --sys-control-gap-tight: var(--ref-space-ramp-150); /** Semantic component geometry: control gap tight; ramp 150. */
@@ -576,50 +585,12 @@
576
585
  --sys-motion-reduced-duration-fast: var(--oods-motion-reduced-duration-fast); /** Reduced-motion fast duration resolves to instant. */
577
586
  --sys-motion-reduced-duration-base: var(--oods-motion-reduced-duration-base); /** Reduced-motion default duration resolves to instant. */
578
587
  --sys-motion-reduced-duration-slow: var(--oods-motion-reduced-duration-slow); /** Reduced-motion slow duration resolves to instant. */
579
- --sys-motion-reduced-transition-hover-duration: var(--oods-motion-reduced-duration-fast); /** Reduced-motion hover transition. */
580
- --sys-motion-reduced-transition-hover-timing-function: var(--oods-motion-easing-linear); /** Reduced-motion hover transition. */
581
- --sys-motion-reduced-transition-focus-duration: var(--oods-motion-reduced-duration-base); /** Reduced-motion focus transition. */
582
- --sys-motion-reduced-transition-focus-timing-function: var(--oods-motion-easing-linear); /** Reduced-motion focus transition. */
583
- --sys-motion-reduced-transition-chip-in-duration: var(--oods-motion-reduced-duration-base); /** Reduced-motion chip entry transition. */
584
- --sys-motion-reduced-transition-chip-in-timing-function: var(--oods-motion-easing-linear); /** Reduced-motion chip entry transition. */
585
- --sys-motion-reduced-transition-chip-out-duration: var(--oods-motion-reduced-duration-fast); /** Reduced-motion chip exit transition. */
586
- --sys-motion-reduced-transition-chip-out-timing-function: var(--oods-motion-easing-linear); /** Reduced-motion chip exit transition. */
587
- --sys-motion-reduced-transition-banner-reveal-duration: var(--oods-motion-reduced-duration-slow); /** Reduced-motion banner reveal transition. */
588
- --sys-motion-reduced-transition-banner-reveal-timing-function: var(--oods-motion-easing-linear); /** Reduced-motion banner reveal transition. */
589
588
  --sys-motion-easing-standard: var(--oods-motion-easing-standard); /** System standard easing curve. */
590
589
  --sys-motion-easing-emphasized: var(--oods-motion-easing-emphasized); /** System emphasized easing curve. */
591
590
  --sys-motion-easing-linear: var(--oods-motion-easing-linear); /** System linear easing curve for reduced motion. */
592
- --sys-motion-transition-hover-duration: var(--oods-motion-duration-fast); /** System hover transition for interactive affordances. */
593
- --sys-motion-transition-hover-timing-function: var(--oods-motion-easing-standard); /** System hover transition for interactive affordances. */
594
- --sys-motion-transition-focus-duration: var(--oods-motion-duration-base); /** System focus transition for outlines/glow. */
595
- --sys-motion-transition-focus-timing-function: var(--oods-motion-easing-standard); /** System focus transition for outlines/glow. */
596
- --sys-motion-transition-chip-in-duration: var(--oods-motion-duration-base); /** System chip entry transition. */
597
- --sys-motion-transition-chip-in-timing-function: var(--oods-motion-easing-emphasized); /** System chip entry transition. */
598
- --sys-motion-transition-chip-out-duration: var(--oods-motion-duration-fast); /** System chip exit transition. */
599
- --sys-motion-transition-chip-out-timing-function: var(--oods-motion-easing-standard); /** System chip exit transition. */
600
- --sys-motion-transition-banner-reveal-duration: var(--oods-motion-duration-slow); /** System banner reveal transition. */
601
- --sys-motion-transition-banner-reveal-timing-function: var(--oods-motion-easing-emphasized); /** System banner reveal transition. */
602
591
  --sys-surface-interactive-primary-default: var(--theme-surface-interactive-primary-default); /** Primary interactive surface default state. */
603
592
  --sys-surface-interactive-primary-hover: var(--theme-surface-interactive-primary-hover); /** Primary interactive surface hover state. */
604
593
  --sys-surface-interactive-primary-pressed: var(--theme-surface-interactive-primary-pressed); /** Primary interactive surface pressed state. */
605
- --sys-text-scale-caption-font-family: var(--ref-typography-families-sans); /** System caption scale. */
606
- --sys-text-scale-caption-font-weight: var(--ref-typography-weights-medium); /** System caption scale. */
607
- --sys-text-scale-caption-font-size: var(--ref-typography-sizes-xs); /** System caption scale. */
608
- --sys-text-scale-label-md-font-family: var(--ref-typography-families-sans); /** System label medium scale. */
609
- --sys-text-scale-label-md-font-weight: var(--ref-typography-weights-semibold); /** System label medium scale. */
610
- --sys-text-scale-label-md-font-size: var(--ref-typography-sizes-sm); /** System label medium scale. */
611
- --sys-text-scale-body-sm-font-family: var(--ref-typography-families-sans); /** System compact body scale. */
612
- --sys-text-scale-body-sm-font-weight: var(--ref-typography-weights-regular); /** System compact body scale. */
613
- --sys-text-scale-body-sm-font-size: var(--ref-typography-sizes-sm); /** System compact body scale. */
614
- --sys-text-scale-body-md-font-family: var(--ref-typography-families-sans); /** System default body scale. */
615
- --sys-text-scale-body-md-font-weight: var(--ref-typography-weights-regular); /** System default body scale. */
616
- --sys-text-scale-body-md-font-size: var(--ref-typography-sizes-md); /** System default body scale. */
617
- --sys-text-scale-heading-lg-font-family: var(--ref-typography-families-sans); /** System large heading scale. */
618
- --sys-text-scale-heading-lg-font-weight: var(--ref-typography-weights-semibold); /** System large heading scale. */
619
- --sys-text-scale-heading-lg-font-size: var(--ref-typography-sizes-xl); /** System large heading scale. */
620
- --sys-text-scale-heading-xl-font-family: var(--ref-typography-families-sans); /** System extra-large heading scale. */
621
- --sys-text-scale-heading-xl-font-weight: var(--ref-typography-weights-bold); /** System extra-large heading scale. */
622
- --sys-text-scale-heading-xl-font-size: var(--ref-typography-sizes-xxl); /** System extra-large heading scale. */
623
594
  --sys-text-size-sm: var(--ref-typography-sizes-sm); /** Small font scalar; seeds the size.font contract. Intentionally aliases ref directly (no theme/text mid-tier) — accepted asymmetry vs the spacing chain because font is seeded-not-consumed (Button-only). Do not 'fix' into a break. */
624
595
  --sys-text-size-md: var(--ref-typography-sizes-md); /** Medium font scalar; seeds the size.font contract. Intentionally aliases ref directly (no theme/text mid-tier) — accepted asymmetry vs the spacing chain because font is seeded-not-consumed (Button-only). Do not 'fix' into a break. */
625
596
  --sys-text-size-lg: var(--ref-typography-sizes-lg); /** Large font scalar; seeds the size.font contract. Intentionally aliases ref directly (no theme/text mid-tier) — accepted asymmetry vs the spacing chain because font is seeded-not-consumed (Button-only). Do not 'fix' into a break. */
@@ -630,44 +601,6 @@
630
601
  --oods-text-letter-spacing-tight: var(--ref-typography-letter-spacing-tight); /** Tight tracking for display headings. */
631
602
  --oods-text-letter-spacing-default: var(--ref-typography-letter-spacing-default); /** Neutral tracking. */
632
603
  --oods-text-letter-spacing-wide: var(--ref-typography-letter-spacing-wide); /** Wide tracking for uppercase or caption text. */
633
- --oods-text-scale-caption-font-family: var(--ref-typography-families-sans); /** Caption text for metadata, badges, and helper copy. */
634
- --oods-text-scale-caption-font-weight: var(--ref-typography-weights-medium); /** Caption text for metadata, badges, and helper copy. */
635
- --oods-text-scale-caption-font-size: var(--ref-typography-sizes-xs); /** Caption text for metadata, badges, and helper copy. */
636
- --oods-text-scale-label-md-font-family: var(--ref-typography-families-sans); /** Form labels and actionable micro copy. */
637
- --oods-text-scale-label-md-font-weight: var(--ref-typography-weights-semibold); /** Form labels and actionable micro copy. */
638
- --oods-text-scale-label-md-font-size: var(--ref-typography-sizes-sm); /** Form labels and actionable micro copy. */
639
- --oods-text-scale-body-sm-font-family: var(--ref-typography-families-sans); /** Compact body text for dense list views. */
640
- --oods-text-scale-body-sm-font-weight: var(--ref-typography-weights-regular); /** Compact body text for dense list views. */
641
- --oods-text-scale-body-sm-font-size: var(--ref-typography-sizes-sm); /** Compact body text for dense list views. */
642
- --oods-text-scale-body-md-font-family: var(--ref-typography-families-sans); /** Primary body copy for detail reading. */
643
- --oods-text-scale-body-md-font-weight: var(--ref-typography-weights-regular); /** Primary body copy for detail reading. */
644
- --oods-text-scale-body-md-font-size: var(--ref-typography-sizes-md); /** Primary body copy for detail reading. */
645
- --oods-text-scale-heading-lg-font-family: var(--ref-typography-families-sans); /** Major section headings and card titles. */
646
- --oods-text-scale-heading-lg-font-weight: var(--ref-typography-weights-semibold); /** Major section headings and card titles. */
647
- --oods-text-scale-heading-lg-font-size: var(--ref-typography-sizes-xl); /** Major section headings and card titles. */
648
- --oods-text-scale-heading-xl-font-family: var(--ref-typography-families-sans); /** Page-level hero headings. */
649
- --oods-text-scale-heading-xl-font-weight: var(--ref-typography-weights-bold); /** Page-level hero headings. */
650
- --oods-text-scale-heading-xl-font-size: var(--ref-typography-sizes-xxl); /** Page-level hero headings. */
651
- --theme-dark-motion-transition-hover-duration: var(--theme-dark-motion-duration-fast); /** Hover affordances across buttons, chips, and cards. */
652
- --theme-dark-motion-transition-hover-timing-function: var(--theme-dark-motion-easing-standard); /** Hover affordances across buttons, chips, and cards. */
653
- --theme-dark-motion-transition-focus-duration: var(--theme-dark-motion-duration-base); /** Focus outlines and glow elevation. */
654
- --theme-dark-motion-transition-focus-timing-function: var(--theme-dark-motion-easing-standard); /** Focus outlines and glow elevation. */
655
- --theme-dark-motion-transition-chip-in-duration: var(--theme-dark-motion-duration-base); /** Chip selection and entry into filter groups. */
656
- --theme-dark-motion-transition-chip-in-timing-function: var(--theme-dark-motion-easing-emphasized); /** Chip selection and entry into filter groups. */
657
- --theme-dark-motion-transition-chip-out-duration: var(--theme-dark-motion-duration-fast); /** Chip deselection or removal. */
658
- --theme-dark-motion-transition-chip-out-timing-function: var(--theme-dark-motion-easing-standard); /** Chip deselection or removal. */
659
- --theme-dark-motion-transition-banner-reveal-duration: var(--theme-dark-motion-duration-slow); /** Banner entrance along the vertical axis. */
660
- --theme-dark-motion-transition-banner-reveal-timing-function: var(--theme-dark-motion-easing-emphasized); /** Banner entrance along the vertical axis. */
661
- --theme-dark-motion-reduced-transition-hover-duration: var(--theme-dark-motion-reduced-duration-fast); /** Hover states snap immediately when motion is reduced. */
662
- --theme-dark-motion-reduced-transition-hover-timing-function: var(--theme-dark-motion-easing-linear); /** Hover states snap immediately when motion is reduced. */
663
- --theme-dark-motion-reduced-transition-focus-duration: var(--theme-dark-motion-reduced-duration-base); /** Focus rings become instant in reduced-motion. */
664
- --theme-dark-motion-reduced-transition-focus-timing-function: var(--theme-dark-motion-easing-linear); /** Focus rings become instant in reduced-motion. */
665
- --theme-dark-motion-reduced-transition-chip-in-duration: var(--theme-dark-motion-reduced-duration-base); /** Chip selection occurs without momentum. */
666
- --theme-dark-motion-reduced-transition-chip-in-timing-function: var(--theme-dark-motion-easing-linear); /** Chip selection occurs without momentum. */
667
- --theme-dark-motion-reduced-transition-chip-out-duration: var(--theme-dark-motion-reduced-duration-fast); /** Chip removal happens immediately. */
668
- --theme-dark-motion-reduced-transition-chip-out-timing-function: var(--theme-dark-motion-easing-linear); /** Chip removal happens immediately. */
669
- --theme-dark-motion-reduced-transition-banner-reveal-duration: var(--theme-dark-motion-reduced-duration-slow); /** Banner reveal falls back to an instant appearance. */
670
- --theme-dark-motion-reduced-transition-banner-reveal-timing-function: var(--theme-dark-motion-easing-linear); /** Banner reveal falls back to an instant appearance. */
671
604
  --theme-dark-space-inset-compact: var(--ref-space-inset-compact); /** Dark theme compact inset spacing matches light for parity. */
672
605
  --theme-dark-space-inset-default: var(--ref-space-inset-default); /** Default inset padding shared across themes. */
673
606
  --theme-dark-space-stack-compact: var(--ref-space-stack-compact); /** Compact vertical rhythm retained from base spacing. */
@@ -686,29 +619,9 @@
686
619
  --theme-motion-easing-standard: var(--oods-motion-easing-standard);
687
620
  --theme-motion-easing-emphasized: var(--oods-motion-easing-emphasized);
688
621
  --theme-motion-easing-linear: var(--oods-motion-easing-linear);
689
- --theme-motion-transition-hover-duration: var(--oods-motion-duration-fast);
690
- --theme-motion-transition-hover-timing-function: var(--oods-motion-easing-standard);
691
- --theme-motion-transition-focus-duration: var(--oods-motion-duration-base);
692
- --theme-motion-transition-focus-timing-function: var(--oods-motion-easing-standard);
693
- --theme-motion-transition-chip-in-duration: var(--oods-motion-duration-base);
694
- --theme-motion-transition-chip-in-timing-function: var(--oods-motion-easing-emphasized);
695
- --theme-motion-transition-chip-out-duration: var(--oods-motion-duration-fast);
696
- --theme-motion-transition-chip-out-timing-function: var(--oods-motion-easing-standard);
697
- --theme-motion-transition-banner-reveal-duration: var(--oods-motion-duration-slow);
698
- --theme-motion-transition-banner-reveal-timing-function: var(--oods-motion-easing-emphasized);
699
622
  --theme-motion-reduced-duration-fast: var(--oods-motion-reduced-duration-fast);
700
623
  --theme-motion-reduced-duration-base: var(--oods-motion-reduced-duration-base);
701
624
  --theme-motion-reduced-duration-slow: var(--oods-motion-reduced-duration-slow);
702
- --theme-motion-reduced-transition-hover-duration: var(--oods-motion-reduced-duration-fast);
703
- --theme-motion-reduced-transition-hover-timing-function: var(--oods-motion-easing-linear);
704
- --theme-motion-reduced-transition-focus-duration: var(--oods-motion-reduced-duration-base);
705
- --theme-motion-reduced-transition-focus-timing-function: var(--oods-motion-easing-linear);
706
- --theme-motion-reduced-transition-chip-in-duration: var(--oods-motion-reduced-duration-base);
707
- --theme-motion-reduced-transition-chip-in-timing-function: var(--oods-motion-easing-linear);
708
- --theme-motion-reduced-transition-chip-out-duration: var(--oods-motion-reduced-duration-fast);
709
- --theme-motion-reduced-transition-chip-out-timing-function: var(--oods-motion-easing-linear);
710
- --theme-motion-reduced-transition-banner-reveal-duration: var(--oods-motion-reduced-duration-slow);
711
- --theme-motion-reduced-transition-banner-reveal-timing-function: var(--oods-motion-easing-linear);
712
625
  --theme-space-inset-compact: var(--ref-space-inset-compact); /** Compact padding for dense layouts in Theme 0. */
713
626
  --theme-space-inset-default: var(--ref-space-inset-default); /** Default padding for spacious layouts in Theme 0. */
714
627
  --theme-space-stack-compact: var(--ref-space-stack-compact); /** Tight vertical rhythm in Theme 0. */
@@ -804,9 +717,93 @@
804
717
  --oods-brand-b-status-critical-text: var(--oods-color-brand-b-status-critical-text); /** Alias for Brand B critical text. */
805
718
  --oods-brand-b-status-neutral-surface: var(--oods-color-brand-b-status-neutral-surface); /** Alias for Brand B neutral surface. */
806
719
  --oods-brand-b-status-neutral-text: var(--oods-color-brand-b-status-neutral-text); /** Alias for Brand B neutral text. */
807
- --oods-border-panel-default-color: var(--theme-border-subtle); /** Default border for cards and primary panels. */
808
- --oods-border-surface-default-color: var(--theme-border-subtle); /** Alias to panel default border. */
809
- --oods-border-status-critical-color: var(--theme-status-critical-border); /** Critical status banner border with rounded corners. */
720
+ --oods-motion-transition-hover-duration: var(--oods-motion-duration-fast); /** Hover affordances across buttons, chips, and cards. */
721
+ --oods-motion-transition-focus-duration: var(--oods-motion-duration-base); /** Focus outlines and glow elevation. */
722
+ --oods-motion-transition-chip-in-duration: var(--oods-motion-duration-base); /** Chip selection and entry into filter groups. */
723
+ --oods-motion-transition-chip-out-duration: var(--oods-motion-duration-fast); /** Chip deselection or removal. */
724
+ --oods-motion-transition-banner-reveal-duration: var(--oods-motion-duration-slow); /** Banner entrance along the vertical axis. */
725
+ --oods-motion-reduced-transition-hover-duration: var(--oods-motion-reduced-duration-fast); /** Hover states snap immediately when motion is reduced. */
726
+ --oods-motion-reduced-transition-focus-duration: var(--oods-motion-reduced-duration-base); /** Focus rings become instant in reduced-motion. */
727
+ --oods-motion-reduced-transition-chip-in-duration: var(--oods-motion-reduced-duration-base); /** Chip selection occurs without momentum. */
728
+ --oods-motion-reduced-transition-chip-out-duration: var(--oods-motion-reduced-duration-fast); /** Chip removal happens immediately. */
729
+ --oods-motion-reduced-transition-banner-reveal-duration: var(--oods-motion-reduced-duration-slow); /** Banner reveal falls back to an instant appearance. */
730
+ --oods-border-panel-default-width: var(--ref-border-width-hairline); /** Default border for cards and primary panels. */
731
+ --oods-border-panel-default-style: var(--ref-border-style-solid); /** Default border for cards and primary panels. */
732
+ --oods-border-panel-default-radius: var(--ref-border-radius-md); /** Default border for cards and primary panels. */
733
+ --oods-border-surface-default-width: var(--ref-border-width-hairline); /** Alias to panel default border. */
734
+ --oods-border-surface-default-style: var(--ref-border-style-solid); /** Alias to panel default border. */
735
+ --oods-border-surface-default-radius: var(--ref-border-radius-md); /** Alias to panel default border. */
736
+ --oods-border-status-critical-width: var(--ref-border-width-hairline); /** Critical status banner border with rounded corners. */
737
+ --oods-border-status-critical-style: var(--ref-border-style-solid); /** Critical status banner border with rounded corners. */
738
+ --oods-border-status-critical-radius: var(--ref-border-radius-sm); /** Critical status banner border with rounded corners. */
739
+ --oods-overlay-transition-open-duration: var(--oods-motion-duration-base); /** Overlay open transition; collapses under reduced motion. */
740
+ --oods-overlay-transition-close-duration: var(--oods-motion-duration-base); /** Overlay close transition; collapses under reduced motion. */
741
+ --sys-motion-reduced-transition-hover-duration: var(--oods-motion-reduced-duration-fast); /** Reduced-motion hover transition. */
742
+ --sys-motion-reduced-transition-focus-duration: var(--oods-motion-reduced-duration-base); /** Reduced-motion focus transition. */
743
+ --sys-motion-reduced-transition-chip-in-duration: var(--oods-motion-reduced-duration-base); /** Reduced-motion chip entry transition. */
744
+ --sys-motion-reduced-transition-chip-out-duration: var(--oods-motion-reduced-duration-fast); /** Reduced-motion chip exit transition. */
745
+ --sys-motion-reduced-transition-banner-reveal-duration: var(--oods-motion-reduced-duration-slow); /** Reduced-motion banner reveal transition. */
746
+ --sys-motion-transition-hover-duration: var(--oods-motion-duration-fast); /** System hover transition for interactive affordances. */
747
+ --sys-motion-transition-focus-duration: var(--oods-motion-duration-base); /** System focus transition for outlines/glow. */
748
+ --sys-motion-transition-chip-in-duration: var(--oods-motion-duration-base); /** System chip entry transition. */
749
+ --sys-motion-transition-chip-out-duration: var(--oods-motion-duration-fast); /** System chip exit transition. */
750
+ --sys-motion-transition-banner-reveal-duration: var(--oods-motion-duration-slow); /** System banner reveal transition. */
751
+ --sys-text-scale-caption-font-family: var(--ref-typography-families-sans); /** System caption scale. */
752
+ --sys-text-scale-caption-font-weight: var(--ref-typography-weights-medium); /** System caption scale. */
753
+ --sys-text-scale-caption-font-size: var(--ref-typography-sizes-xs); /** System caption scale. */
754
+ --sys-text-scale-label-md-font-family: var(--ref-typography-families-sans); /** System label medium scale. */
755
+ --sys-text-scale-label-md-font-weight: var(--ref-typography-weights-semibold); /** System label medium scale. */
756
+ --sys-text-scale-label-md-font-size: var(--ref-typography-sizes-sm); /** System label medium scale. */
757
+ --sys-text-scale-body-sm-font-family: var(--ref-typography-families-sans); /** System compact body scale. */
758
+ --sys-text-scale-body-sm-font-weight: var(--ref-typography-weights-regular); /** System compact body scale. */
759
+ --sys-text-scale-body-sm-font-size: var(--ref-typography-sizes-sm); /** System compact body scale. */
760
+ --sys-text-scale-body-md-font-family: var(--ref-typography-families-sans); /** System default body scale. */
761
+ --sys-text-scale-body-md-font-weight: var(--ref-typography-weights-regular); /** System default body scale. */
762
+ --sys-text-scale-body-md-font-size: var(--ref-typography-sizes-md); /** System default body scale. */
763
+ --sys-text-scale-heading-lg-font-family: var(--ref-typography-families-sans); /** System large heading scale. */
764
+ --sys-text-scale-heading-lg-font-weight: var(--ref-typography-weights-semibold); /** System large heading scale. */
765
+ --sys-text-scale-heading-lg-font-size: var(--ref-typography-sizes-xl); /** System large heading scale. */
766
+ --sys-text-scale-heading-xl-font-family: var(--ref-typography-families-sans); /** System extra-large heading scale. */
767
+ --sys-text-scale-heading-xl-font-weight: var(--ref-typography-weights-bold); /** System extra-large heading scale. */
768
+ --sys-text-scale-heading-xl-font-size: var(--ref-typography-sizes-xxl); /** System extra-large heading scale. */
769
+ --oods-text-scale-caption-font-family: var(--ref-typography-families-sans); /** Caption text for metadata, badges, and helper copy. */
770
+ --oods-text-scale-caption-font-weight: var(--ref-typography-weights-medium); /** Caption text for metadata, badges, and helper copy. */
771
+ --oods-text-scale-caption-font-size: var(--ref-typography-sizes-xs); /** Caption text for metadata, badges, and helper copy. */
772
+ --oods-text-scale-label-md-font-family: var(--ref-typography-families-sans); /** Form labels and actionable micro copy. */
773
+ --oods-text-scale-label-md-font-weight: var(--ref-typography-weights-semibold); /** Form labels and actionable micro copy. */
774
+ --oods-text-scale-label-md-font-size: var(--ref-typography-sizes-sm); /** Form labels and actionable micro copy. */
775
+ --oods-text-scale-body-sm-font-family: var(--ref-typography-families-sans); /** Compact body text for dense list views. */
776
+ --oods-text-scale-body-sm-font-weight: var(--ref-typography-weights-regular); /** Compact body text for dense list views. */
777
+ --oods-text-scale-body-sm-font-size: var(--ref-typography-sizes-sm); /** Compact body text for dense list views. */
778
+ --oods-text-scale-body-md-font-family: var(--ref-typography-families-sans); /** Primary body copy for detail reading. */
779
+ --oods-text-scale-body-md-font-weight: var(--ref-typography-weights-regular); /** Primary body copy for detail reading. */
780
+ --oods-text-scale-body-md-font-size: var(--ref-typography-sizes-md); /** Primary body copy for detail reading. */
781
+ --oods-text-scale-heading-lg-font-family: var(--ref-typography-families-sans); /** Major section headings and card titles. */
782
+ --oods-text-scale-heading-lg-font-weight: var(--ref-typography-weights-semibold); /** Major section headings and card titles. */
783
+ --oods-text-scale-heading-lg-font-size: var(--ref-typography-sizes-xl); /** Major section headings and card titles. */
784
+ --oods-text-scale-heading-xl-font-family: var(--ref-typography-families-sans); /** Page-level hero headings. */
785
+ --oods-text-scale-heading-xl-font-weight: var(--ref-typography-weights-bold); /** Page-level hero headings. */
786
+ --oods-text-scale-heading-xl-font-size: var(--ref-typography-sizes-xxl); /** Page-level hero headings. */
787
+ --theme-dark-motion-transition-hover-duration: var(--theme-dark-motion-duration-fast); /** Hover affordances across buttons, chips, and cards. */
788
+ --theme-dark-motion-transition-focus-duration: var(--theme-dark-motion-duration-base); /** Focus outlines and glow elevation. */
789
+ --theme-dark-motion-transition-chip-in-duration: var(--theme-dark-motion-duration-base); /** Chip selection and entry into filter groups. */
790
+ --theme-dark-motion-transition-chip-out-duration: var(--theme-dark-motion-duration-fast); /** Chip deselection or removal. */
791
+ --theme-dark-motion-transition-banner-reveal-duration: var(--theme-dark-motion-duration-slow); /** Banner entrance along the vertical axis. */
792
+ --theme-dark-motion-reduced-transition-hover-duration: var(--theme-dark-motion-reduced-duration-fast); /** Hover states snap immediately when motion is reduced. */
793
+ --theme-dark-motion-reduced-transition-focus-duration: var(--theme-dark-motion-reduced-duration-base); /** Focus rings become instant in reduced-motion. */
794
+ --theme-dark-motion-reduced-transition-chip-in-duration: var(--theme-dark-motion-reduced-duration-base); /** Chip selection occurs without momentum. */
795
+ --theme-dark-motion-reduced-transition-chip-out-duration: var(--theme-dark-motion-reduced-duration-fast); /** Chip removal happens immediately. */
796
+ --theme-dark-motion-reduced-transition-banner-reveal-duration: var(--theme-dark-motion-reduced-duration-slow); /** Banner reveal falls back to an instant appearance. */
797
+ --theme-motion-transition-hover-duration: var(--oods-motion-duration-fast);
798
+ --theme-motion-transition-focus-duration: var(--oods-motion-duration-base);
799
+ --theme-motion-transition-chip-in-duration: var(--oods-motion-duration-base);
800
+ --theme-motion-transition-chip-out-duration: var(--oods-motion-duration-fast);
801
+ --theme-motion-transition-banner-reveal-duration: var(--oods-motion-duration-slow);
802
+ --theme-motion-reduced-transition-hover-duration: var(--oods-motion-reduced-duration-fast);
803
+ --theme-motion-reduced-transition-focus-duration: var(--oods-motion-reduced-duration-base);
804
+ --theme-motion-reduced-transition-chip-in-duration: var(--oods-motion-reduced-duration-base);
805
+ --theme-motion-reduced-transition-chip-out-duration: var(--oods-motion-reduced-duration-fast);
806
+ --theme-motion-reduced-transition-banner-reveal-duration: var(--oods-motion-reduced-duration-slow);
810
807
  --oods-size-font-sm: var(--sys-text-size-sm); /** Small font scalar; emits --oods-size-font-sm. Seeded NOT consumed (Button-only seed has no font-size). */
811
808
  --oods-size-font-md: var(--sys-text-size-md); /** Medium font scalar; emits --oods-size-font-md. Seeded NOT consumed (Button-only seed has no font-size). */
812
809
  --oods-size-font-lg: var(--sys-text-size-lg); /** Large font scalar; emits --oods-size-font-lg. Seeded NOT consumed (Button-only seed has no font-size). */
@@ -880,33 +877,9 @@
880
877
  --sys-text-line-height-standard: var(--oods-text-line-height-standard); /** System line-height for general UI copy. */
881
878
  --sys-text-line-height-relaxed: var(--oods-text-line-height-relaxed); /** System line-height for spacious compositions. */
882
879
  --sys-text-line-height-loose: var(--oods-text-line-height-loose); /** System line-height for long-form reading. */
883
- --sys-text-scale-caption-line-height: var(--oods-text-line-height-standard); /** System caption scale. */
884
- --sys-text-scale-caption-letter-spacing: var(--oods-text-letter-spacing-wide); /** System caption scale. */
885
- --sys-text-scale-label-md-line-height: var(--oods-text-line-height-standard); /** System label medium scale. */
886
- --sys-text-scale-label-md-letter-spacing: var(--oods-text-letter-spacing-default); /** System label medium scale. */
887
- --sys-text-scale-body-sm-line-height: var(--oods-text-line-height-relaxed); /** System compact body scale. */
888
- --sys-text-scale-body-sm-letter-spacing: var(--oods-text-letter-spacing-default); /** System compact body scale. */
889
- --sys-text-scale-body-md-line-height: var(--oods-text-line-height-relaxed); /** System default body scale. */
890
- --sys-text-scale-body-md-letter-spacing: var(--oods-text-letter-spacing-default); /** System default body scale. */
891
- --sys-text-scale-heading-lg-line-height: var(--oods-text-line-height-tight); /** System large heading scale. */
892
- --sys-text-scale-heading-lg-letter-spacing: var(--oods-text-letter-spacing-tight); /** System large heading scale. */
893
- --sys-text-scale-heading-xl-line-height: var(--oods-text-line-height-tight); /** System extra-large heading scale. */
894
- --sys-text-scale-heading-xl-letter-spacing: var(--oods-text-letter-spacing-tight); /** System extra-large heading scale. */
895
880
  --sys-icon-primary: var(--theme-icon-primary); /** Primary icon colour. */
896
881
  --sys-icon-muted: var(--theme-icon-muted); /** Muted icon colour. */
897
882
  --sys-icon-on-interactive: var(--theme-icon-on-interactive); /** Icon colour on primary interactive surfaces. */
898
- --oods-text-scale-caption-line-height: var(--oods-text-line-height-standard); /** Caption text for metadata, badges, and helper copy. */
899
- --oods-text-scale-caption-letter-spacing: var(--oods-text-letter-spacing-wide); /** Caption text for metadata, badges, and helper copy. */
900
- --oods-text-scale-label-md-line-height: var(--oods-text-line-height-standard); /** Form labels and actionable micro copy. */
901
- --oods-text-scale-label-md-letter-spacing: var(--oods-text-letter-spacing-default); /** Form labels and actionable micro copy. */
902
- --oods-text-scale-body-sm-line-height: var(--oods-text-line-height-relaxed); /** Compact body text for dense list views. */
903
- --oods-text-scale-body-sm-letter-spacing: var(--oods-text-letter-spacing-default); /** Compact body text for dense list views. */
904
- --oods-text-scale-body-md-line-height: var(--oods-text-line-height-relaxed); /** Primary body copy for detail reading. */
905
- --oods-text-scale-body-md-letter-spacing: var(--oods-text-letter-spacing-default); /** Primary body copy for detail reading. */
906
- --oods-text-scale-heading-lg-line-height: var(--oods-text-line-height-tight); /** Major section headings and card titles. */
907
- --oods-text-scale-heading-lg-letter-spacing: var(--oods-text-letter-spacing-tight); /** Major section headings and card titles. */
908
- --oods-text-scale-heading-xl-line-height: var(--oods-text-line-height-tight); /** Page-level hero headings. */
909
- --oods-text-scale-heading-xl-letter-spacing: var(--oods-text-letter-spacing-tight); /** Page-level hero headings. */
910
883
  --cmp-badge-font-size: var(--sys-text-size-sm); /** Default badge font size role; component rules may override it. */
911
884
  --cmp-badge-font-weight: var(--sys-text-weight-semibold); /** Default badge font weight role; component rules may override it. */
912
885
  --cmp-badge-gap: var(--sys-control-gap-compact); /** Default badge gap role; component rules may override it. */
@@ -961,6 +934,33 @@
961
934
  --cmp-tabs-padding-inline: var(--sys-tab-padding-inline-md); /** Default tabs padding inline role; component rules may override it. */
962
935
  --cmp-tabs-padding-inline-lg: var(--sys-tab-padding-inline-lg); /** Large tabs padding inline role; component rules may override it. */
963
936
  --cmp-tabs-padding-inline-sm: var(--sys-tab-padding-inline-sm); /** Small tabs padding inline role; component rules may override it. */
937
+ --oods-border-panel-default-color: var(--theme-border-subtle); /** Default border for cards and primary panels. */
938
+ --oods-border-surface-default-color: var(--theme-border-subtle); /** Alias to panel default border. */
939
+ --oods-border-status-critical-color: var(--theme-status-critical-border); /** Critical status banner border with rounded corners. */
940
+ --sys-text-scale-caption-line-height: var(--oods-text-line-height-standard); /** System caption scale. */
941
+ --sys-text-scale-caption-letter-spacing: var(--oods-text-letter-spacing-wide); /** System caption scale. */
942
+ --sys-text-scale-label-md-line-height: var(--oods-text-line-height-standard); /** System label medium scale. */
943
+ --sys-text-scale-label-md-letter-spacing: var(--oods-text-letter-spacing-default); /** System label medium scale. */
944
+ --sys-text-scale-body-sm-line-height: var(--oods-text-line-height-relaxed); /** System compact body scale. */
945
+ --sys-text-scale-body-sm-letter-spacing: var(--oods-text-letter-spacing-default); /** System compact body scale. */
946
+ --sys-text-scale-body-md-line-height: var(--oods-text-line-height-relaxed); /** System default body scale. */
947
+ --sys-text-scale-body-md-letter-spacing: var(--oods-text-letter-spacing-default); /** System default body scale. */
948
+ --sys-text-scale-heading-lg-line-height: var(--oods-text-line-height-tight); /** System large heading scale. */
949
+ --sys-text-scale-heading-lg-letter-spacing: var(--oods-text-letter-spacing-tight); /** System large heading scale. */
950
+ --sys-text-scale-heading-xl-line-height: var(--oods-text-line-height-tight); /** System extra-large heading scale. */
951
+ --sys-text-scale-heading-xl-letter-spacing: var(--oods-text-letter-spacing-tight); /** System extra-large heading scale. */
952
+ --oods-text-scale-caption-line-height: var(--oods-text-line-height-standard); /** Caption text for metadata, badges, and helper copy. */
953
+ --oods-text-scale-caption-letter-spacing: var(--oods-text-letter-spacing-wide); /** Caption text for metadata, badges, and helper copy. */
954
+ --oods-text-scale-label-md-line-height: var(--oods-text-line-height-standard); /** Form labels and actionable micro copy. */
955
+ --oods-text-scale-label-md-letter-spacing: var(--oods-text-letter-spacing-default); /** Form labels and actionable micro copy. */
956
+ --oods-text-scale-body-sm-line-height: var(--oods-text-line-height-relaxed); /** Compact body text for dense list views. */
957
+ --oods-text-scale-body-sm-letter-spacing: var(--oods-text-letter-spacing-default); /** Compact body text for dense list views. */
958
+ --oods-text-scale-body-md-line-height: var(--oods-text-line-height-relaxed); /** Primary body copy for detail reading. */
959
+ --oods-text-scale-body-md-letter-spacing: var(--oods-text-letter-spacing-default); /** Primary body copy for detail reading. */
960
+ --oods-text-scale-heading-lg-line-height: var(--oods-text-line-height-tight); /** Major section headings and card titles. */
961
+ --oods-text-scale-heading-lg-letter-spacing: var(--oods-text-letter-spacing-tight); /** Major section headings and card titles. */
962
+ --oods-text-scale-heading-xl-line-height: var(--oods-text-line-height-tight); /** Page-level hero headings. */
963
+ --oods-text-scale-heading-xl-letter-spacing: var(--oods-text-letter-spacing-tight); /** Page-level hero headings. */
964
964
  --oods-viz-margin-tight: var(--sys-space-inset-compact); /** Tight chart margin referencing system inset compact. */
965
965
  --oods-viz-margin-default: var(--sys-space-inline-sm); /** Default chart margin referencing inline small spacing. */
966
966
  --oods-viz-margin-roomy: var(--sys-space-stack-default); /** Roomy chart margin referencing stack default spacing. */