/* GENERATED by design-system/tokens/build_tokens.py — DO NOT EDIT.
 * Source of truth: design-system/tokens/*.json
 * Brands: anahana, daily-guide, nema. Default: anahana.
 * Scope a subtree with data-brand="<brand>".
 * Roles the specs do not register are absent by design — see
 * design-system/OPEN_PATTERNS.md. Do not fill them in locally. */

:root {
  --ah-font-weight-regular: 400;
  --ah-font-weight-medium: 500;
  --ah-font-weight-wordmark: 800;
  --ah-font-size-caption: 0.8125rem;
  --ah-font-size-small: 0.9375rem;
  --ah-font-size-body: 1.0625rem;
  --ah-font-size-lead: clamp(1.1875rem, 1.13rem + 0.25vw, 1.3125rem);
  --ah-font-size-h6: 0.9375rem;
  --ah-font-size-h5: 1.0625rem;
  --ah-font-size-h4: clamp(1.1875rem, 1.13rem + 0.25vw, 1.3125rem);
  --ah-font-size-h3: clamp(1.375rem, 1.28rem + 0.4vw, 1.625rem);
  --ah-font-size-h2: clamp(1.625rem, 1.44rem + 0.78vw, 2.125rem);
  --ah-font-size-h1: clamp(2rem, 1.68rem + 1.36vw, 2.875rem);
  --ah-font-size-display-l: clamp(2.75rem, 1.9rem + 3.9vw, 5.5rem);
  --ah-font-size-display-xl: clamp(3.25rem, 2.1rem + 5.4vw, 7rem);
  --ah-font-size-numeral-hero: clamp(5.5rem, 3.1rem + 10.2vw, 10rem);
  --ah-font-size-wordmark: clamp(1.1875rem, 1.13rem + 0.25vw, 1.3125rem);
  --ah-font-size-wordmark-lg: clamp(1.375rem, 1.28rem + 0.4vw, 1.625rem);
  --ah-font-leading-display: 0.95;
  --ah-font-leading-heading: 1.22;
  --ah-font-leading-lead: 1.5;
  --ah-font-leading-body: 1.7;
  --ah-font-leading-ui: 1.45;
  --ah-font-leading-numeral: 0.82;
  --ah-font-tracking-micro: 0.01em;
  --ah-font-tracking-normal: 0;
  --ah-font-tracking-tight: -0.011em;
  --ah-font-tracking-display: -0.038em;
  --ah-font-tracking-caps: 0.14em;
  --ah-font-tracking-numeral: -0.06em;
  --ah-font-tracking-wordmark: -0.04em;
  --ah-space-0: 0;
  --ah-space-1: 0.25rem;
  --ah-space-2: 0.5rem;
  --ah-space-3: 0.75rem;
  --ah-space-4: 1rem;
  --ah-space-5: 1.5rem;
  --ah-space-6: 2rem;
  --ah-space-7: 3rem;
  --ah-space-8: 4rem;
  --ah-space-9: 6rem;
  --ah-radius-none: 0;
  --ah-radius-sm: 2px;
  --ah-radius-md: 4px;
  --ah-radius-lg: 6px;
  --ah-radius-button: 9px;
  --ah-radius-object: 13px;
  --ah-radius-pill: 999px;
  --ah-border-hairline: 1px;
  --ah-border-strong: 2px;
  --ah-border-focus: 2px;
  --ah-shadow-none: none;
  --ah-shadow-raised: 0 1px 2px rgba(32, 33, 42, 0.06);
  --ah-motion-duration-fast: 120ms;
  --ah-motion-duration-state: 220ms;
  --ah-motion-duration-base: 400ms;
  --ah-motion-duration-slow: 640ms;
  --ah-motion-easing-standard: cubic-bezier(0.22, 0.61, 0.36, 1);
  --ah-measure-prose: 41.25rem;
  --ah-measure-narrow: 28rem;
  --ah-measure-wide: 72rem;
  --ah-breakpoint-sm: 480px;
  --ah-breakpoint-md: 768px;
  --ah-breakpoint-lg: 1024px;
  --ah-breakpoint-xl: 1280px;

  /* doc 08 type hierarchy — role -> size/leading/tracking/family/weight */
  --ah-type-numeral-hero-size: var(--ah-font-size-numeral-hero);
  --ah-type-numeral-hero-leading: var(--ah-font-leading-numeral);
  --ah-type-numeral-hero-tracking: var(--ah-font-tracking-numeral);
  --ah-type-numeral-hero-family: var(--ah-font-editorial);
  --ah-type-numeral-hero-weight: var(--ah-font-weight-regular);
  --ah-type-display-xl-size: var(--ah-font-size-display-xl);
  --ah-type-display-xl-leading: var(--ah-font-leading-display);
  --ah-type-display-xl-tracking: var(--ah-font-tracking-display);
  --ah-type-display-xl-family: var(--ah-font-editorial);
  --ah-type-display-xl-weight: var(--ah-font-weight-regular);
  --ah-type-display-l-size: var(--ah-font-size-display-l);
  --ah-type-display-l-leading: var(--ah-font-leading-display);
  --ah-type-display-l-tracking: var(--ah-font-tracking-display);
  --ah-type-display-l-family: var(--ah-font-editorial);
  --ah-type-display-l-weight: var(--ah-font-weight-regular);
  --ah-type-h1-size: var(--ah-font-size-h1);
  --ah-type-h1-leading: var(--ah-font-leading-heading);
  --ah-type-h1-tracking: var(--ah-font-tracking-tight);
  --ah-type-h1-family: var(--ah-font-editorial);
  --ah-type-h1-weight: var(--ah-font-weight-regular);
  --ah-type-h2-size: var(--ah-font-size-h2);
  --ah-type-h2-leading: var(--ah-font-leading-heading);
  --ah-type-h2-tracking: var(--ah-font-tracking-tight);
  --ah-type-h2-family: var(--ah-font-editorial);
  --ah-type-h2-weight: var(--ah-font-weight-regular);
  --ah-type-h3-size: var(--ah-font-size-h3);
  --ah-type-h3-leading: var(--ah-font-leading-heading);
  --ah-type-h3-tracking: var(--ah-font-tracking-tight);
  --ah-type-h3-family: var(--ah-font-editorial);
  --ah-type-h3-weight: var(--ah-font-weight-regular);
  --ah-type-h4-size: var(--ah-font-size-h4);
  --ah-type-h4-leading: var(--ah-font-leading-heading);
  --ah-type-h4-tracking: var(--ah-font-tracking-normal);
  --ah-type-h4-family: var(--ah-font-editorial);
  --ah-type-h4-weight: var(--ah-font-weight-regular);
  --ah-type-h5-size: var(--ah-font-size-h5);
  --ah-type-h5-leading: var(--ah-font-leading-heading);
  --ah-type-h5-tracking: var(--ah-font-tracking-normal);
  --ah-type-h5-family: var(--ah-font-ui);
  --ah-type-h5-weight: var(--ah-font-weight-medium);
  --ah-type-h6-size: var(--ah-font-size-h6);
  --ah-type-h6-leading: var(--ah-font-leading-heading);
  --ah-type-h6-tracking: var(--ah-font-tracking-caps);
  --ah-type-h6-family: var(--ah-font-ui);
  --ah-type-h6-weight: var(--ah-font-weight-medium);
  --ah-type-lead-size: var(--ah-font-size-lead);
  --ah-type-lead-leading: var(--ah-font-leading-lead);
  --ah-type-lead-tracking: var(--ah-font-tracking-normal);
  --ah-type-lead-family: var(--ah-font-editorial);
  --ah-type-lead-weight: var(--ah-font-weight-regular);
  --ah-type-body-size: var(--ah-font-size-body);
  --ah-type-body-leading: var(--ah-font-leading-body);
  --ah-type-body-tracking: var(--ah-font-tracking-normal);
  --ah-type-body-family: var(--ah-font-editorial);
  --ah-type-body-weight: var(--ah-font-weight-regular);
  --ah-type-small-size: var(--ah-font-size-small);
  --ah-type-small-leading: var(--ah-font-leading-ui);
  --ah-type-small-tracking: var(--ah-font-tracking-normal);
  --ah-type-small-family: var(--ah-font-ui);
  --ah-type-small-weight: var(--ah-font-weight-regular);
  --ah-type-caption-size: var(--ah-font-size-caption);
  --ah-type-caption-leading: var(--ah-font-leading-ui);
  --ah-type-caption-tracking: var(--ah-font-tracking-micro);
  --ah-type-caption-family: var(--ah-font-ui);
  --ah-type-caption-weight: var(--ah-font-weight-regular);
  --ah-type-wordmark-size: var(--ah-font-size-wordmark);
  --ah-type-wordmark-leading: var(--ah-font-leading-heading);
  --ah-type-wordmark-tracking: var(--ah-font-tracking-wordmark);
  --ah-type-wordmark-family: var(--ah-font-ui);
  --ah-type-wordmark-weight: var(--ah-font-weight-wordmark);
  --ah-type-wordmark-lg-size: var(--ah-font-size-wordmark-lg);
  --ah-type-wordmark-lg-leading: var(--ah-font-leading-heading);
  --ah-type-wordmark-lg-tracking: var(--ah-font-tracking-wordmark);
  --ah-type-wordmark-lg-family: var(--ah-font-ui);
  --ah-type-wordmark-lg-weight: var(--ah-font-weight-wordmark);

  /* doc 16 P0-10 radius role band — components consume THESE, not the
     primitives above. Band, then role, then value. */
  /* 0-6px   Open editorial and reading surfaces. The band's top; 'none' is equally in band. */
  --ah-radius-role-editorial: var(--ah-radius-lg);
  /* 4-6px   Form fields, selects, and anything typed or chosen into. */
  --ah-radius-role-control: var(--ah-radius-md);
  /* 8-10px  Primary and secondary buttons. */
  --ah-radius-role-button: var(--ah-radius-button);
  /* 12-14px Product shells and result objects — the calculator object, cards. */
  --ah-radius-role-object: var(--ah-radius-object);
  /* n/a     Chips and badges only (doc 08). Outside the ruling, unchanged by it. */
  --ah-radius-role-chip: var(--ah-radius-pill);

  /* doc 16 P0-10 — shadows none by default. */
  --ah-shadow-role-default: var(--ah-shadow-none);

  /* doc 16 visual lock — shell/product chrome labels are sentence case. */
  --ah-chrome-label-transform: none;
  --ah-chrome-label-tracking: var(--ah-font-tracking-micro);
  --ah-chrome-label-size: var(--ah-font-size-caption);
  --ah-chrome-label-weight: var(--ah-font-weight-medium);
}

/* ===== Anahana · expression 35–50 ===== */
:root, [data-brand="anahana"] {
  --ah-font-editorial: "Source Serif 4", Georgia, "Times New Roman", serif;
  --ah-font-ui: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --ah-motion-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
  --ah-color-surface-canvas: #F4F0E9;
  --ah-color-surface-paper: #FFFDF9;
  --ah-color-surface-elevated: #F8F4ED;
  --ah-color-surface-inverse: #24253B;
  --ah-color-text-ink: #20212A;
  --ah-color-text-muted: #5B5B5F;  /* mix(color.doc08.text-ink, color.doc08.surface-canvas, 0.72) */
  --ah-color-text-subtle: #6A696D;  /* mix(color.doc08.text-ink, color.doc08.surface-canvas, 0.65) */
  --ah-color-text-inverse: #FFFDF9;
  --ah-color-brand-indigo: #4B4F98;
  --ah-color-brand-indigo-strong: #40447C;  /* mix(color.doc08.brand-indigo, color.doc08.text-ink, 0.75) */
  --ah-color-brand-on: #FFFDF9;
  --ah-color-accent-sage: #85AA94;
  --ah-color-accent-rose: #D67B91;
  --ah-color-accent-sky: #8FC6DA;
  --ah-color-line-hairline: #D6D3CE;  /* mix(color.doc08.text-ink, color.doc08.surface-canvas, 0.14) */
  --ah-color-line-strong: #8A888A;  /* mix(color.doc08.text-ink, color.doc08.surface-canvas, 0.5) */
  --ah-color-focus-ring: #4B4F98;
  --ah-color-semantic-success: #486454;  /* mix(color.status.success, color.doc08.text-ink, 0.75) */
  --ah-color-semantic-success-surface: #EEF0EA;  /* mix(color.status.success, color.doc08.surface-paper, 0.1) */
  --ah-color-semantic-warning: #7C5F31;  /* mix(color.status.warning, color.doc08.text-ink, 0.75) */
  --ah-color-semantic-warning-surface: #F5EFE5;  /* mix(color.status.warning, color.doc08.surface-paper, 0.1) */
  --ah-color-semantic-error: #844453;  /* mix(color.status.error, color.doc08.text-ink, 0.75) */
  --ah-color-semantic-error-surface: #F6ECEA;  /* mix(color.status.error, color.doc08.surface-paper, 0.1) */
  --ah-color-semantic-info: #46647F;  /* mix(color.status.info, color.doc08.text-ink, 0.75) */
  --ah-color-semantic-info-surface: #EEF0F0;  /* mix(color.status.info, color.doc08.surface-paper, 0.1) */
  --ah-color-expression-ground: #F8F4ED;
  --ah-color-expression-geometry: #4B4F98;
  --ah-color-expression-signal: #4B4F98;
  --ah-color-expression-wash-a: #85AA94;
  --ah-color-expression-wash-b: #D67B91;
  --ah-expression-wash-field-floor: 0.18;
  --ah-expression-wash-field-ceiling: 0.24;
  --ah-expression-wash-field-ceiling-gain: 0.4;
}

/* Anahana — expression states (D-AN-036). Scope a surface with data-expression="<state>". */
[data-expression="shell"] {
  --ah-expression-level: 42.5;  /* band 40–45 */
  --ah-expression-art: 0.42;
}
[data-expression="tool.open"] {
  --ah-expression-level: 52.5;  /* band 50–55 */
  --ah-expression-art: 0.53;
  --ah-expression-wash-field-floor: 0.2;
  --ah-expression-wash-field-ceiling: 0.266;
  --ah-expression-wash-field-ceiling-gain: 0.444;
}
[data-expression="result.reveal"] {
  --ah-expression-level: 65.0;  /* band 60–70 */
  --ah-expression-art: 0.65;
  --ah-expression-wash-field-floor: 0.2;
  --ah-expression-wash-field-ceiling: 0.266;
  --ah-expression-wash-field-ceiling-gain: 0.444;
}
[data-expression="reading"] {
  --ah-expression-level: 37.5;  /* band 35–40 */
  --ah-expression-art: 0.38;
}
[data-expression="invitation"] {
  --ah-expression-level: 47.5;  /* band 45–50 */
  --ah-expression-art: 0.47;
}
[data-expression="checkout"] {
  --ah-expression-level: 30.0;  /* band 25–35 */
  --ah-expression-art: 0.3;
}
[data-expression="article.shell"] {
  --ah-expression-level: 40.0;  /* band 38–42 */
  --ah-expression-art: 0.4;
}
[data-expression="article.opening"] {
  --ah-expression-level: 44.0;  /* band 42–46 */
  --ah-expression-art: 0.44;
}
[data-expression="article.insight"] {
  --ah-expression-level: 42.5;  /* band 40–45 */
  --ah-expression-art: 0.42;
}
[data-expression="meaning.mine"] {
  --ah-expression-level: 52.5;  /* band 50–55 */
  --ah-expression-art: 0.53;
}
[data-expression="meaning.mine.resolved"] {
  --ah-expression-level: 57.5;  /* band 55–60 */
  --ah-expression-art: 0.57;
  --ah-expression-wash-field-floor: 0.207;
  --ah-expression-wash-field-ceiling: 0.276;
  --ah-expression-wash-field-ceiling-gain: 0.46;
}
[data-expression="article.references"] {
  --ah-expression-level: 27.5;  /* band 25–30 */
  --ah-expression-art: 0.28;
}
[data-expression="home.hero"] {
  --ah-expression-level: 50.0;  /* band 48–52 */
  --ah-expression-art: 0.5;
}
[data-expression="home.discovery"] {
  --ah-expression-level: 57.5;  /* band 55–60 */
  --ah-expression-art: 0.57;
}
[data-expression="home.practices"] {
  --ah-expression-level: 37.5;  /* band 35–40 */
  --ah-expression-art: 0.38;
}
[data-expression="home.wellbeing"] {
  --ah-expression-level: 35.0;  /* band 32–38 */
  --ah-expression-art: 0.35;
}
[data-expression="home.tools"] {
  --ah-expression-level: 45.0;  /* band 42–48 */
  --ah-expression-art: 0.45;
}
[data-expression="home.guide"] {
  --ah-expression-level: 42.5;  /* band 40–45 */
  --ah-expression-art: 0.42;
}
[data-expression="hub.hero"] {
  --ah-expression-level: 52.5;  /* band 50–55 */
  --ah-expression-art: 0.53;
}
[data-expression="hub.utility"] {
  --ah-expression-level: 47.5;  /* band 45–50 */
  --ah-expression-art: 0.47;
}
[data-expression="hub.browse"] {
  --ah-expression-level: 37.5;  /* band 35–40 */
  --ah-expression-art: 0.38;
}
[data-expression="hub.path"] {
  --ah-expression-level: 57.5;  /* band 55–60 */
  --ah-expression-art: 0.57;
}
[data-expression="hub.editorial"] {
  --ah-expression-level: 42.5;  /* band 40–45 */
  --ah-expression-art: 0.42;
}
[data-expression="hub.index"] {
  --ah-expression-level: 32.5;  /* band 30–35 */
  --ah-expression-art: 0.33;
}
[data-expression="hub.brand"] {
  --ah-expression-level: 80.0;  /* band 70–90 */
  --ah-expression-art: 0.8;
}
/* anahana: tool.open 50-55 sits outside expression_band 35-50 — recorded, not clamped */
/* anahana: result.reveal 60-70 sits outside expression_band 35-50 — recorded, not clamped */
/* anahana: checkout 25-35 sits outside expression_band 35-50 — recorded, not clamped */
/* anahana: meaning.mine 50-55 sits outside expression_band 35-50 — recorded, not clamped */
/* anahana: meaning.mine.resolved 55-60 sits outside expression_band 35-50 — recorded, not clamped */
/* anahana: article.references 25-30 sits outside expression_band 35-50 — recorded, not clamped */
/* anahana: home.hero 48-52 sits outside expression_band 35-50 — recorded, not clamped */
/* anahana: home.discovery 55-60 sits outside expression_band 35-50 — recorded, not clamped */
/* anahana: home.wellbeing 32-38 sits outside expression_band 35-50 — recorded, not clamped */
/* anahana: hub.hero 50-55 sits outside expression_band 35-50 — recorded, not clamped */
/* anahana: hub.path 55-60 sits outside expression_band 35-50 — recorded, not clamped */
/* anahana: hub.index 30-35 sits outside expression_band 35-50 — recorded, not clamped */
/* anahana: hub.brand 70-90 sits outside expression_band 35-50 — recorded, not clamped */

/* ===== Your Daily Guide — an Anahana experience · expression 25–40 ===== */
[data-brand="daily-guide"] {
  --ah-font-editorial: "Source Serif 4", Georgia, "Times New Roman", serif;
  --ah-font-ui: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --ah-motion-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
  --ah-color-surface-canvas: #FFFDF9;
  --ah-color-surface-paper: #FFFDF9;
  --ah-color-surface-elevated: #F8F4ED;
  --ah-color-surface-inverse: #24253B;
  --ah-color-text-ink: #20212A;
  --ah-color-text-muted: #636368;  /* mix(color.doc08.text-ink, color.doc08.surface-paper, 0.7) */
  --ah-color-text-subtle: #6E6E72;  /* mix(color.doc08.text-ink, color.doc08.surface-paper, 0.65) */
  --ah-color-text-inverse: #FFFDF9;
  --ah-color-brand-indigo: #4B4F98;
  --ah-color-brand-indigo-strong: #40447C;  /* mix(color.doc08.brand-indigo, color.doc08.text-ink, 0.75) */
  --ah-color-brand-on: #FFFDF9;
  --ah-color-accent-sage: #85AA94;
  --ah-color-accent-rose: #D67B91;
  --ah-color-accent-sky: #8FC6DA;
  --ah-color-line-hairline: #E0DEDC;  /* mix(color.doc08.text-ink, color.doc08.surface-paper, 0.14) */
  --ah-color-line-strong: #908F92;  /* mix(color.doc08.text-ink, color.doc08.surface-paper, 0.5) */
  --ah-color-focus-ring: #75688F;
  --ah-color-semantic-success: #486454;  /* mix(color.status.success, color.doc08.text-ink, 0.75) */
  --ah-color-semantic-success-surface: #EEF0EA;  /* mix(color.status.success, color.doc08.surface-paper, 0.1) */
  --ah-color-semantic-warning: #7C5F31;  /* mix(color.status.warning, color.doc08.text-ink, 0.75) */
  --ah-color-semantic-warning-surface: #F5EFE5;  /* mix(color.status.warning, color.doc08.surface-paper, 0.1) */
  --ah-color-semantic-error: #844453;  /* mix(color.status.error, color.doc08.text-ink, 0.75) */
  --ah-color-semantic-error-surface: #F6ECEA;  /* mix(color.status.error, color.doc08.surface-paper, 0.1) */
  --ah-color-semantic-info: #46647F;  /* mix(color.status.info, color.doc08.text-ink, 0.75) */
  --ah-color-semantic-info-surface: #EEF0F0;  /* mix(color.status.info, color.doc08.surface-paper, 0.1) */
  --ah-color-expression-ground: #FFFDF9;
  --ah-color-expression-geometry: #75688F;
  --ah-color-expression-signal: #4B4F98;
  --ah-color-expression-wash-a: #8FC6DA;
  --ah-color-expression-wash-b: #85AA94;
  --ah-expression-wash-field-floor: 0.18;
  --ah-expression-wash-field-ceiling: 0.24;
  --ah-expression-wash-field-ceiling-gain: 0.4;
}

/* ===== Nema — an Anahana brand · expression 70–90 ===== */
[data-brand="nema"] {
  --ah-font-editorial: "Source Serif 4", Georgia, "Times New Roman", serif;
  --ah-font-ui: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --ah-motion-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
  --ah-color-surface-canvas: #24253B;
  --ah-color-surface-paper: #313246;  /* mix(color.doc08.surface-paper, color.doc09.ground-night, 0.06) */
  --ah-color-surface-elevated: #3A3B4E;  /* mix(color.doc08.surface-paper, color.doc09.ground-night, 0.1) */
  --ah-color-surface-inverse: #FFFDF9;
  --ah-color-text-ink: #F2F0EE;  /* mix(color.doc08.surface-paper, color.doc09.ground-night, 0.94) */
  --ah-color-text-muted: #C2C1C4;  /* mix(color.doc08.surface-paper, color.doc09.ground-night, 0.72) */
  --ah-color-text-subtle: #ACABB1;  /* mix(color.doc08.surface-paper, color.doc09.ground-night, 0.62) */
  --ah-color-text-inverse: #20212A;
  --ah-color-brand-indigo: #4B4F98;
  --ah-color-brand-indigo-strong: #40447C;  /* mix(color.doc08.brand-indigo, color.doc08.text-ink, 0.75) */
  --ah-color-brand-on: #FFFDF9;
  --ah-color-accent-sage: #85AA94;
  --ah-color-accent-rose: #D67B91;
  --ah-color-accent-sky: #8FC6DA;
  --ah-color-line-hairline: #474859;  /* mix(color.doc08.surface-paper, color.doc09.ground-night, 0.16) */
  --ah-color-line-strong: #777783;  /* mix(color.doc08.surface-paper, color.doc09.ground-night, 0.38) */
  --ah-color-focus-ring: #8FC6DA;
  --ah-color-semantic-success: #AABCAE;  /* mix(color.status.success, color.doc08.surface-paper, 0.5) */
  --ah-color-semantic-success-surface: #2C3341;  /* mix(color.status.success, color.doc09.ground-night, 0.16) */
  --ah-color-semantic-warning: #CCB896;  /* mix(color.status.warning, color.doc08.surface-paper, 0.5) */
  --ah-color-semantic-warning-surface: #37323A;  /* mix(color.status.warning, color.doc09.ground-night, 0.16) */
  --ah-color-semantic-error: #D2A6AD;  /* mix(color.status.error, color.doc08.surface-paper, 0.5) */
  --ah-color-semantic-error-surface: #392C41;  /* mix(color.status.error, color.doc09.ground-night, 0.16) */
  --ah-color-semantic-info: #A8BCCA;  /* mix(color.status.info, color.doc08.surface-paper, 0.5) */
  --ah-color-semantic-info-surface: #2B334A;  /* mix(color.status.info, color.doc09.ground-night, 0.16) */
  --ah-color-expression-ground: #24253B;
  --ah-color-expression-geometry: #FFFFFF;
  --ah-color-expression-signal: #FFFFFF;
  --ah-color-expression-wash-a: #D67B91;
  --ah-color-expression-wash-b: #8FC6DA;
  --ah-expression-wash-field-floor: 0.18;
  --ah-expression-wash-field-ceiling: 0.24;
  --ah-expression-wash-field-ceiling-gain: 0.4;
}

/* doc 09 section 1 — locale/fallback contract. CJK/Thai sit outside the
 * primary family decision. Never shrink semantic type tokens to rescue
 * localization overflow; change the stack instead. */
:lang(ja) {
  --ah-font-editorial: "Yu Mincho", "Hiragino Mincho ProN", serif;
  --ah-font-ui: -apple-system, "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
}
:lang(zh) {
  --ah-font-editorial: "Songti SC", "STSong", serif;
  --ah-font-ui: -apple-system, "PingFang SC", "Microsoft YaHei", sans-serif;
}
:lang(ko) {
  --ah-font-editorial: "AppleMyungjo", "Batang", serif;
  --ah-font-ui: -apple-system, "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
}
:lang(th) {
  --ah-font-editorial: "Th Sarabun New", "Tahoma", sans-serif;
  --ah-font-ui: "Tahoma", system-ui, sans-serif;
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --ah-motion-duration-fast: 0ms;
    --ah-motion-duration-state: 0ms;
    --ah-motion-duration-base: 0ms;
    --ah-motion-duration-slow: 0ms;
  }
}
