@font-face {
  font-family: 'Roboto Flex';
  font-style: normal;
  font-weight: 100 1000;
  font-stretch: 100%;
  font-display: swap;
  src: url('/fonts/roboto-flex-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
    U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
    U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Roboto Flex';
  font-style: normal;
  font-weight: 100 1000;
  font-stretch: 100%;
  font-display: swap;
  src: url('/fonts/roboto-flex-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7,
    U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F,
    U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F,
    U+A720-A7FF;
}
@font-face {
  font-family: 'Roboto Mono VF';
  font-style: normal;
  font-weight: 100 700;
  font-display: swap;
  src: url('/fonts/roboto-mono-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
    U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
    U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Roboto Mono VF';
  font-style: normal;
  font-weight: 100 700;
  font-display: swap;
  src: url('/fonts/roboto-mono-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7,
    U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F,
    U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F,
    U+A720-A7FF;
}
:root {
  /* Primary — electric emerald (the single accent) */
  --md-sys-color-primary: #2EE6A8;
  --md-sys-color-on-primary: #00331F;
  --md-sys-color-primary-container: #0E4A33;
  --md-sys-color-on-primary-container: #A7F5D6;

  /* Secondary — cool teal, supports the emerald without a second accent */
  --md-sys-color-secondary: #7FD8C4;
  --md-sys-color-on-secondary: #00382E;
  --md-sys-color-secondary-container: #0E4A3F;
  --md-sys-color-on-secondary-container: #A7F0E0;

  /* Tertiary — muted amber, used only for artwork/status, never body text */
  --md-sys-color-tertiary: #E8C46A;
  --md-sys-color-on-tertiary: #3A2E00;
  --md-sys-color-tertiary-container: #4A3B00;
  --md-sys-color-on-tertiary-container: #F5E3A8;

  /* Surface — near-black charcoal steps (cool, not warm) */
  --md-sys-color-surface: #0B0D0E;
  --md-sys-color-on-surface: #E6E8E6;
  --md-sys-color-surface-variant: #1B1F22;
  --md-sys-color-on-surface-variant: #9AA3A0;
  --md-sys-color-surface-container-lowest: #080A0B;
  --md-sys-color-surface-container-low: #111416;
  --md-sys-color-surface-container: #16191B;
  --md-sys-color-surface-container-high: #1B1F22;
  --md-sys-color-surface-container-highest: #21262A;
  --md-sys-color-inverse-surface: #E6E8E6;
  --md-sys-color-inverse-on-surface: #0B0D0E;
  --md-sys-color-inverse-primary: #0E4A33;

  /* Outline */
  --md-sys-color-outline: #6B7572;
  --md-sys-color-outline-variant: #333A3E;

  /* Surface extremes, tint and overlays */
  --md-sys-color-surface-dim: #0B0D0E;
  --md-sys-color-surface-bright: #21262A;
  --md-sys-color-surface-tint: var(--md-sys-color-primary);
  --md-sys-color-shadow: #000000;
  --md-sys-color-scrim: #000000;

  /* Error — desaturated red */
  --md-sys-color-error: #F2B8B5;
  --md-sys-color-on-error: #601410;
  --md-sys-color-error-container: #8C1D18;
  --md-sys-color-on-error-container: #F9DEDC;

  /* Brand accent quartet — kept for the ticker dots, desaturated for dark */
  --g-blue: #8AB4F8;
  --g-red: #F28B82;
  --g-yellow: #FDD663;
  --g-green: #81C995;

  /* Infima mappings */
  --ifm-color-primary: #2EE6A8;
  --ifm-color-primary-dark: #26C98F;
  --ifm-color-primary-darker: #1FAE7C;
  --ifm-color-primary-darkest: #178A62;
  --ifm-color-primary-light: #5CEFBE;
  --ifm-color-primary-lighter: #8AF5D2;
  --ifm-color-primary-lightest: #A7F5D6;

  --ifm-background-color: var(--md-sys-color-surface);
  --ifm-background-surface-color: var(--md-sys-color-surface-container-low);
  --ifm-font-color-base: var(--md-sys-color-on-surface);

  --ifm-navbar-background-color: var(--md-sys-color-surface-container-low);
  --ifm-navbar-shadow: none;
  --ifm-navbar-link-color: var(--md-sys-color-on-surface);
  --ifm-navbar-link-hover-color: var(--md-sys-color-primary);

  --ifm-footer-background-color: #080A0B;
  --ifm-footer-color: #9AA3A0;
  --ifm-footer-link-color: #A7F5D6;
  --ifm-footer-link-hover-color: #5CEFBE;
  --ifm-footer-title-color: #E6E8E6;

  --ifm-link-color: var(--md-sys-color-primary);
  --ifm-link-hover-color: var(--ifm-color-primary-light);

  --ifm-code-font-size: 90%;
  --ifm-code-background: var(--md-sys-color-surface-container);
  --ifm-code-border-radius: 6px;
  --ifm-code-padding-horizontal: 0.4rem;
  --ifm-code-padding-vertical: 0.15rem;

  --ifm-heading-color: var(--md-sys-color-on-surface);
  --ifm-blockquote-border-color: var(--md-sys-color-primary);

  --docusaurus-highlighted-code-line-bg: rgba(46, 230, 168, 0.12);
}
:root {
  --md-sys-typescale-font: 'Roboto Flex', Roboto, -apple-system, BlinkMacSystemFont,
    'Segoe UI', 'Helvetica Neue', Arial, sans-serif;
  --md-sys-typescale-font-mono: 'Roboto Mono VF', 'Roboto Mono', 'JetBrains Mono',
    ui-monospace, SFMono-Regular, Menlo, monospace;

  --ifm-font-family-base: var(--md-sys-typescale-font);
  --ifm-heading-font-family: var(--md-sys-typescale-font);
  --ifm-font-family-monospace: var(--md-sys-typescale-font-mono);
  --ifm-font-size-base: 16px;
  --ifm-line-height-base: 1.6;
  --ifm-heading-font-weight: 650;
  --ifm-font-weight-semibold: 600;

  /* Display — hero moments only */
  --md-sys-typescale-display-large-size: 3.5rem;    /* 56px */
  --md-sys-typescale-display-large-line-height: 1.04;
  --md-sys-typescale-display-large-weight: 800;
  --md-sys-typescale-display-large-tracking: -0.03em;

  --md-sys-typescale-display-medium-size: 2.75rem;  /* 44px */
  --md-sys-typescale-display-medium-line-height: 1.08;
  --md-sys-typescale-display-medium-weight: 780;
  --md-sys-typescale-display-medium-tracking: -0.025em;

  --md-sys-typescale-display-small-size: 2.25rem;    /* 36px */
  --md-sys-typescale-display-small-line-height: 1.12;
  --md-sys-typescale-display-small-weight: 760;
  --md-sys-typescale-display-small-tracking: -0.02em;

  /* Headline — section openers */
  --md-sys-typescale-headline-large-size: 2rem;       /* 32px */
  --md-sys-typescale-headline-large-line-height: 1.15;
  --md-sys-typescale-headline-large-weight: 720;
  --md-sys-typescale-headline-large-tracking: -0.018em;

  --md-sys-typescale-headline-medium-size: 1.75rem;   /* 28px */
  --md-sys-typescale-headline-medium-line-height: 1.2;
  --md-sys-typescale-headline-medium-weight: 700;
  --md-sys-typescale-headline-medium-tracking: -0.015em;

  --md-sys-typescale-headline-small-size: 1.5rem;     /* 24px */
  --md-sys-typescale-headline-small-line-height: 1.25;
  --md-sys-typescale-headline-small-weight: 680;
  --md-sys-typescale-headline-small-tracking: -0.012em;

  /* Title — card and dialog headers */
  --md-sys-typescale-title-large-size: 1.375rem;      /* 22px */
  --md-sys-typescale-title-large-line-height: 1.25;
  --md-sys-typescale-title-large-weight: 650;
  --md-sys-typescale-title-large-tracking: -0.008em;

  --md-sys-typescale-title-medium-size: 1rem;         /* 16px */
  --md-sys-typescale-title-medium-line-height: 1.5;
  --md-sys-typescale-title-medium-weight: 620;
  --md-sys-typescale-title-medium-tracking: 0.009em;

  --md-sys-typescale-title-small-size: 0.875rem;      /* 14px */
  --md-sys-typescale-title-small-line-height: 1.43;
  --md-sys-typescale-title-small-weight: 600;
  --md-sys-typescale-title-small-tracking: 0.007em;

  /* Body — running prose */
  --md-sys-typescale-body-large-size: 1rem;           /* 16px */
  --md-sys-typescale-body-large-line-height: 1.6;
  --md-sys-typescale-body-large-weight: 400;
  --md-sys-typescale-body-large-tracking: 0.009em;

  --md-sys-typescale-body-medium-size: 0.875rem;      /* 14px */
  --md-sys-typescale-body-medium-line-height: 1.57;
  --md-sys-typescale-body-medium-weight: 400;
  --md-sys-typescale-body-medium-tracking: 0.016em;

  --md-sys-typescale-body-small-size: 0.75rem;        /* 12px */
  --md-sys-typescale-body-small-line-height: 1.5;
  --md-sys-typescale-body-small-weight: 400;
  --md-sys-typescale-body-small-tracking: 0.03em;

  /* Label — buttons, chips, overlines */
  --md-sys-typescale-label-large-size: 0.875rem;      /* 14px */
  --md-sys-typescale-label-large-line-height: 1.43;
  --md-sys-typescale-label-large-weight: 600;
  --md-sys-typescale-label-large-tracking: 0.007em;

  --md-sys-typescale-label-medium-size: 0.75rem;      /* 12px */
  --md-sys-typescale-label-medium-line-height: 1.33;
  --md-sys-typescale-label-medium-weight: 600;
  --md-sys-typescale-label-medium-tracking: 0.05em;

  --md-sys-typescale-label-small-size: 0.6875rem;     /* 11px */
  --md-sys-typescale-label-small-line-height: 1.45;
  --md-sys-typescale-label-small-weight: 600;
  --md-sys-typescale-label-small-tracking: 0.06em;
}
:root {
  --md-spacing-xs: 4px;
  --md-spacing-sm: 8px;
  --md-spacing-md: 16px;
  --md-spacing-lg: 24px;
  --md-spacing-xl: 32px;
  --md-spacing-2xl: 48px;
  --md-spacing-3xl: 64px;

  /* Elevation — hairline borders carry depth; shadows are subtle and tinted */
  --md-elevation-0: none;
  --md-elevation-1: 0 1px 2px rgba(0, 0, 0, 0.3), 0 1px 3px rgba(0, 0, 0, 0.4);
  --md-elevation-2: 0 2px 6px rgba(0, 0, 0, 0.32), 0 4px 12px rgba(0, 0, 0, 0.42);
  --md-elevation-3: 0 4px 12px rgba(0, 0, 0, 0.36), 0 8px 24px rgba(0, 0, 0, 0.46);
  --md-elevation-4: 0 6px 18px rgba(0, 0, 0, 0.4), 0 14px 36px rgba(0, 0, 0, 0.5);
  --md-elevation-5: 0 10px 28px rgba(0, 0, 0, 0.44), 0 22px 56px rgba(0, 0, 0, 0.56);

  /* Shape scale — editorial: sharp on small, soft on large, no pill overload */
  --md-sys-shape-corner-none: 0px;
  --md-sys-shape-corner-extra-small: 2px;
  --md-sys-shape-corner-small: 4px;
  --md-sys-shape-corner-medium: 8px;
  --md-sys-shape-corner-large: 12px;
  --md-sys-shape-corner-large-increased: 16px;
  --md-sys-shape-corner-extra-large: 20px;
  --md-sys-shape-corner-extra-large-increased: 24px;
  --md-sys-shape-corner-extra-extra-large: 28px;
  --md-sys-shape-corner-full: 9999px;

  --md-radius-xs: var(--md-sys-shape-corner-extra-small);
  --md-radius-sm: var(--md-sys-shape-corner-small);
  --md-radius-md: var(--md-sys-shape-corner-medium);
  --md-radius-lg: var(--md-sys-shape-corner-large);
  --md-radius-xl: var(--md-sys-shape-corner-extra-large);
  --md-radius-2xl: 24px;
  --md-radius-full: var(--md-sys-shape-corner-full);

  /* Asymmetric expressive corner recipes */
  --md-shape-asymmetric-start:
    var(--md-sys-shape-corner-extra-small) var(--md-sys-shape-corner-extra-large)
    var(--md-sys-shape-corner-extra-large) var(--md-sys-shape-corner-extra-small);
  --md-shape-asymmetric-end:
    var(--md-sys-shape-corner-extra-large) var(--md-sys-shape-corner-extra-small)
    var(--md-sys-shape-corner-extra-small) var(--md-sys-shape-corner-extra-large);

  /* Motion — spring curves, short durations, transform/opacity only */
  --md-sys-motion-easing-standard: cubic-bezier(0.2, 0, 0, 1);
  --md-sys-motion-easing-standard-decelerate: cubic-bezier(0, 0, 0, 1);
  --md-sys-motion-easing-standard-accelerate: cubic-bezier(0.3, 0, 1, 1);
  --md-sys-motion-easing-emphasized: cubic-bezier(0.2, 0, 0, 1);
  --md-sys-motion-easing-emphasized-decelerate: cubic-bezier(0.05, 0.7, 0.1, 1);
  --md-sys-motion-easing-emphasized-accelerate: cubic-bezier(0.3, 0, 0.8, 0.15);
  --md-sys-motion-spring-fast: cubic-bezier(0.42, 1.67, 0.21, 0.9);
  --md-sys-motion-spring-default: cubic-bezier(0.34, 1.3, 0.64, 1);
  --md-sys-motion-spring-slow: cubic-bezier(0.27, 1.06, 0.18, 1);

  --md-motion-emphasized: var(--md-sys-motion-easing-emphasized);
  --md-motion-emphasized-decelerate: var(--md-sys-motion-easing-emphasized-decelerate);
  --md-motion-emphasized-accelerate: var(--md-sys-motion-easing-emphasized-accelerate);
  --md-motion-spring: var(--md-sys-motion-spring-default);

  --md-duration-short: 150ms;
  --md-duration-medium: 300ms;
  --md-duration-long: 450ms;
  --md-duration-extra-long: 700ms;

  /* Glassmorphism — only on floating chrome that does not sit over text */
  --md-glass-tint-opacity: 90%;
  --md-glass-blur: 20px;
  --md-glass-saturate: 160%;
  --md-glass-glint: rgba(255, 255, 255, 0.06);
  --md-glass-outline-opacity: 50%;
}
:root {
  --doc-motif: url('/img/doc-motif-foundation.svg');
  --doc-section-color: var(--md-sys-color-primary);

  /* Reading measure. Prose is capped; tables, code and diagrams are not. */
  --doc-measure: 70ch;
  --doc-measure-heading: 45ch;

  /* Amber as an artwork role. Raw --g-yellow clears 3:1 against a dark
     surface but only reaches 1.9:1 against white, so the light scheme uses a
     darkened mix and the dark scheme uses the brand value as is. */
  --doc-accent-amber: var(--g-yellow);

  /* Artwork strengths. Kept low so nothing competes with the text. */
  --doc-art-strength: 18%;
  --doc-art-strength-strong: 62%;
  --doc-rail-strength: 34%;
}
:root {
    --doc-measure: none;
    --doc-measure-heading: none;
  }
:root {
  --md-sys-color-primary: #0E6B4A;
  --md-sys-color-on-primary: #FFFFFF;
  --md-sys-color-primary-container: #A7F5D6;
  --md-sys-color-on-primary-container: #00331F;

  --md-sys-color-secondary: #006B5A;
  --md-sys-color-on-secondary: #FFFFFF;
  --md-sys-color-secondary-container: #A7F0E0;
  --md-sys-color-on-secondary-container: #00382E;

  --md-sys-color-tertiary: #6B5200;
  --md-sys-color-on-tertiary: #FFFFFF;
  --md-sys-color-tertiary-container: #F5E3A8;
  --md-sys-color-on-tertiary-container: #3A2E00;

  --md-sys-color-surface: #F7F8F7;
  --md-sys-color-on-surface: #1A1C1B;
  --md-sys-color-surface-variant: #E1E4E2;
  --md-sys-color-on-surface-variant: #444846;
  --md-sys-color-surface-container-lowest: #FFFFFF;
  --md-sys-color-surface-container-low: #EFF1EF;
  --md-sys-color-surface-container: #E7EAE8;
  --md-sys-color-surface-container-high: #DDE1DE;
  --md-sys-color-surface-container-highest: #D3D8D5;
  --md-sys-color-inverse-surface: #1A1C1B;
  --md-sys-color-inverse-on-surface: #F7F8F7;
  --md-sys-color-inverse-primary: #A7F5D6;

  --md-sys-color-outline: #6B7572;
  --md-sys-color-outline-variant: #C4CAC7;

  --md-sys-color-surface-dim: #D3D8D5;
  --md-sys-color-surface-bright: #F7F8F7;
  --md-sys-color-surface-tint: var(--md-sys-color-primary);
  --md-sys-color-shadow: #000000;
  --md-sys-color-scrim: #000000;

  --md-sys-color-error: #B3261E;
  --md-sys-color-on-error: #FFFFFF;
  --md-sys-color-error-container: #F9DEDC;
  --md-sys-color-on-error-container: #410E0B;

  --g-blue: #4285F4;
  --g-red: #EA4335;
  --g-yellow: #F9AB00;
  --g-green: #34A853;

  --ifm-color-primary: #0E6B4A;
  --ifm-color-primary-dark: #0C5C3F;
  --ifm-color-primary-darker: #0A4E35;
  --ifm-color-primary-darkest: #073A27;
  --ifm-color-primary-light: #178A62;
  --ifm-color-primary-lighter: #1FAE7C;
  --ifm-color-primary-lightest: #A7F5D6;

  --ifm-background-color: var(--md-sys-color-surface);
  --ifm-background-surface-color: var(--md-sys-color-surface-container-low);
  --ifm-font-color-base: var(--md-sys-color-on-surface);

  --ifm-navbar-background-color: var(--md-sys-color-surface-container-low);
  --ifm-navbar-link-color: var(--md-sys-color-on-surface);
  --ifm-navbar-link-hover-color: var(--md-sys-color-primary);

  --ifm-footer-background-color: #1A1C1B;
  --ifm-footer-color: #C4CAC7;
  --ifm-footer-link-color: #A7F5D6;
  --ifm-footer-link-hover-color: #5CEFBE;
  --ifm-footer-title-color: #FFFFFF;

  --ifm-link-color: var(--md-sys-color-primary);
  --ifm-link-hover-color: var(--ifm-color-primary-dark);

  --ifm-code-background: var(--md-sys-color-surface-container);
  --ifm-heading-color: var(--md-sys-color-on-surface);

  --docusaurus-highlighted-code-line-bg: rgba(14, 107, 74, 0.1);
}
:root {
  --doc-accent-amber: color-mix(in srgb, var(--g-yellow) 60%, var(--md-sys-color-on-surface));
  --doc-art-strength: 16%;
  --doc-art-strength-strong: 62%;
  --doc-rail-strength: 34%;
}
@media(prefers-color-scheme:dark){:root {
  /* Primary — electric emerald (the single accent) */
  --md-sys-color-primary: #2EE6A8;
  --md-sys-color-on-primary: #00331F;
  --md-sys-color-primary-container: #0E4A33;
  --md-sys-color-on-primary-container: #A7F5D6;

  /* Secondary — cool teal, supports the emerald without a second accent */
  --md-sys-color-secondary: #7FD8C4;
  --md-sys-color-on-secondary: #00382E;
  --md-sys-color-secondary-container: #0E4A3F;
  --md-sys-color-on-secondary-container: #A7F0E0;

  /* Tertiary — muted amber, used only for artwork/status, never body text */
  --md-sys-color-tertiary: #E8C46A;
  --md-sys-color-on-tertiary: #3A2E00;
  --md-sys-color-tertiary-container: #4A3B00;
  --md-sys-color-on-tertiary-container: #F5E3A8;

  /* Surface — near-black charcoal steps (cool, not warm) */
  --md-sys-color-surface: #0B0D0E;
  --md-sys-color-on-surface: #E6E8E6;
  --md-sys-color-surface-variant: #1B1F22;
  --md-sys-color-on-surface-variant: #9AA3A0;
  --md-sys-color-surface-container-lowest: #080A0B;
  --md-sys-color-surface-container-low: #111416;
  --md-sys-color-surface-container: #16191B;
  --md-sys-color-surface-container-high: #1B1F22;
  --md-sys-color-surface-container-highest: #21262A;
  --md-sys-color-inverse-surface: #E6E8E6;
  --md-sys-color-inverse-on-surface: #0B0D0E;
  --md-sys-color-inverse-primary: #0E4A33;

  /* Outline */
  --md-sys-color-outline: #6B7572;
  --md-sys-color-outline-variant: #333A3E;

  /* Surface extremes, tint and overlays */
  --md-sys-color-surface-dim: #0B0D0E;
  --md-sys-color-surface-bright: #21262A;
  --md-sys-color-surface-tint: var(--md-sys-color-primary);
  --md-sys-color-shadow: #000000;
  --md-sys-color-scrim: #000000;

  /* Error — desaturated red */
  --md-sys-color-error: #F2B8B5;
  --md-sys-color-on-error: #601410;
  --md-sys-color-error-container: #8C1D18;
  --md-sys-color-on-error-container: #F9DEDC;

  /* Brand accent quartet — kept for the ticker dots, desaturated for dark */
  --g-blue: #8AB4F8;
  --g-red: #F28B82;
  --g-yellow: #FDD663;
  --g-green: #81C995;

  /* Infima mappings */
  --ifm-color-primary: #2EE6A8;
  --ifm-color-primary-dark: #26C98F;
  --ifm-color-primary-darker: #1FAE7C;
  --ifm-color-primary-darkest: #178A62;
  --ifm-color-primary-light: #5CEFBE;
  --ifm-color-primary-lighter: #8AF5D2;
  --ifm-color-primary-lightest: #A7F5D6;

  --ifm-background-color: var(--md-sys-color-surface);
  --ifm-background-surface-color: var(--md-sys-color-surface-container-low);
  --ifm-font-color-base: var(--md-sys-color-on-surface);

  --ifm-navbar-background-color: var(--md-sys-color-surface-container-low);
  --ifm-navbar-shadow: none;
  --ifm-navbar-link-color: var(--md-sys-color-on-surface);
  --ifm-navbar-link-hover-color: var(--md-sys-color-primary);

  --ifm-footer-background-color: #080A0B;
  --ifm-footer-color: #9AA3A0;
  --ifm-footer-link-color: #A7F5D6;
  --ifm-footer-link-hover-color: #5CEFBE;
  --ifm-footer-title-color: #E6E8E6;

  --ifm-link-color: var(--md-sys-color-primary);
  --ifm-link-hover-color: var(--ifm-color-primary-light);

  --ifm-code-font-size: 90%;
  --ifm-code-background: var(--md-sys-color-surface-container);
  --ifm-code-border-radius: 6px;
  --ifm-code-padding-horizontal: 0.4rem;
  --ifm-code-padding-vertical: 0.15rem;

  --ifm-heading-color: var(--md-sys-color-on-surface);
  --ifm-blockquote-border-color: var(--md-sys-color-primary);

  --docusaurus-highlighted-code-line-bg: rgba(46, 230, 168, 0.12);
}
:root {
  --md-sys-typescale-font: 'Roboto Flex', Roboto, -apple-system, BlinkMacSystemFont,
    'Segoe UI', 'Helvetica Neue', Arial, sans-serif;
  --md-sys-typescale-font-mono: 'Roboto Mono VF', 'Roboto Mono', 'JetBrains Mono',
    ui-monospace, SFMono-Regular, Menlo, monospace;

  --ifm-font-family-base: var(--md-sys-typescale-font);
  --ifm-heading-font-family: var(--md-sys-typescale-font);
  --ifm-font-family-monospace: var(--md-sys-typescale-font-mono);
  --ifm-font-size-base: 16px;
  --ifm-line-height-base: 1.6;
  --ifm-heading-font-weight: 650;
  --ifm-font-weight-semibold: 600;

  /* Display — hero moments only */
  --md-sys-typescale-display-large-size: 3.5rem;    /* 56px */
  --md-sys-typescale-display-large-line-height: 1.04;
  --md-sys-typescale-display-large-weight: 800;
  --md-sys-typescale-display-large-tracking: -0.03em;

  --md-sys-typescale-display-medium-size: 2.75rem;  /* 44px */
  --md-sys-typescale-display-medium-line-height: 1.08;
  --md-sys-typescale-display-medium-weight: 780;
  --md-sys-typescale-display-medium-tracking: -0.025em;

  --md-sys-typescale-display-small-size: 2.25rem;    /* 36px */
  --md-sys-typescale-display-small-line-height: 1.12;
  --md-sys-typescale-display-small-weight: 760;
  --md-sys-typescale-display-small-tracking: -0.02em;

  /* Headline — section openers */
  --md-sys-typescale-headline-large-size: 2rem;       /* 32px */
  --md-sys-typescale-headline-large-line-height: 1.15;
  --md-sys-typescale-headline-large-weight: 720;
  --md-sys-typescale-headline-large-tracking: -0.018em;

  --md-sys-typescale-headline-medium-size: 1.75rem;   /* 28px */
  --md-sys-typescale-headline-medium-line-height: 1.2;
  --md-sys-typescale-headline-medium-weight: 700;
  --md-sys-typescale-headline-medium-tracking: -0.015em;

  --md-sys-typescale-headline-small-size: 1.5rem;     /* 24px */
  --md-sys-typescale-headline-small-line-height: 1.25;
  --md-sys-typescale-headline-small-weight: 680;
  --md-sys-typescale-headline-small-tracking: -0.012em;

  /* Title — card and dialog headers */
  --md-sys-typescale-title-large-size: 1.375rem;      /* 22px */
  --md-sys-typescale-title-large-line-height: 1.25;
  --md-sys-typescale-title-large-weight: 650;
  --md-sys-typescale-title-large-tracking: -0.008em;

  --md-sys-typescale-title-medium-size: 1rem;         /* 16px */
  --md-sys-typescale-title-medium-line-height: 1.5;
  --md-sys-typescale-title-medium-weight: 620;
  --md-sys-typescale-title-medium-tracking: 0.009em;

  --md-sys-typescale-title-small-size: 0.875rem;      /* 14px */
  --md-sys-typescale-title-small-line-height: 1.43;
  --md-sys-typescale-title-small-weight: 600;
  --md-sys-typescale-title-small-tracking: 0.007em;

  /* Body — running prose */
  --md-sys-typescale-body-large-size: 1rem;           /* 16px */
  --md-sys-typescale-body-large-line-height: 1.6;
  --md-sys-typescale-body-large-weight: 400;
  --md-sys-typescale-body-large-tracking: 0.009em;

  --md-sys-typescale-body-medium-size: 0.875rem;      /* 14px */
  --md-sys-typescale-body-medium-line-height: 1.57;
  --md-sys-typescale-body-medium-weight: 400;
  --md-sys-typescale-body-medium-tracking: 0.016em;

  --md-sys-typescale-body-small-size: 0.75rem;        /* 12px */
  --md-sys-typescale-body-small-line-height: 1.5;
  --md-sys-typescale-body-small-weight: 400;
  --md-sys-typescale-body-small-tracking: 0.03em;

  /* Label — buttons, chips, overlines */
  --md-sys-typescale-label-large-size: 0.875rem;      /* 14px */
  --md-sys-typescale-label-large-line-height: 1.43;
  --md-sys-typescale-label-large-weight: 600;
  --md-sys-typescale-label-large-tracking: 0.007em;

  --md-sys-typescale-label-medium-size: 0.75rem;      /* 12px */
  --md-sys-typescale-label-medium-line-height: 1.33;
  --md-sys-typescale-label-medium-weight: 600;
  --md-sys-typescale-label-medium-tracking: 0.05em;

  --md-sys-typescale-label-small-size: 0.6875rem;     /* 11px */
  --md-sys-typescale-label-small-line-height: 1.45;
  --md-sys-typescale-label-small-weight: 600;
  --md-sys-typescale-label-small-tracking: 0.06em;
}
:root {
  --md-spacing-xs: 4px;
  --md-spacing-sm: 8px;
  --md-spacing-md: 16px;
  --md-spacing-lg: 24px;
  --md-spacing-xl: 32px;
  --md-spacing-2xl: 48px;
  --md-spacing-3xl: 64px;

  /* Elevation — hairline borders carry depth; shadows are subtle and tinted */
  --md-elevation-0: none;
  --md-elevation-1: 0 1px 2px rgba(0, 0, 0, 0.3), 0 1px 3px rgba(0, 0, 0, 0.4);
  --md-elevation-2: 0 2px 6px rgba(0, 0, 0, 0.32), 0 4px 12px rgba(0, 0, 0, 0.42);
  --md-elevation-3: 0 4px 12px rgba(0, 0, 0, 0.36), 0 8px 24px rgba(0, 0, 0, 0.46);
  --md-elevation-4: 0 6px 18px rgba(0, 0, 0, 0.4), 0 14px 36px rgba(0, 0, 0, 0.5);
  --md-elevation-5: 0 10px 28px rgba(0, 0, 0, 0.44), 0 22px 56px rgba(0, 0, 0, 0.56);

  /* Shape scale — editorial: sharp on small, soft on large, no pill overload */
  --md-sys-shape-corner-none: 0px;
  --md-sys-shape-corner-extra-small: 2px;
  --md-sys-shape-corner-small: 4px;
  --md-sys-shape-corner-medium: 8px;
  --md-sys-shape-corner-large: 12px;
  --md-sys-shape-corner-large-increased: 16px;
  --md-sys-shape-corner-extra-large: 20px;
  --md-sys-shape-corner-extra-large-increased: 24px;
  --md-sys-shape-corner-extra-extra-large: 28px;
  --md-sys-shape-corner-full: 9999px;

  --md-radius-xs: var(--md-sys-shape-corner-extra-small);
  --md-radius-sm: var(--md-sys-shape-corner-small);
  --md-radius-md: var(--md-sys-shape-corner-medium);
  --md-radius-lg: var(--md-sys-shape-corner-large);
  --md-radius-xl: var(--md-sys-shape-corner-extra-large);
  --md-radius-2xl: 24px;
  --md-radius-full: var(--md-sys-shape-corner-full);

  /* Asymmetric expressive corner recipes */
  --md-shape-asymmetric-start:
    var(--md-sys-shape-corner-extra-small) var(--md-sys-shape-corner-extra-large)
    var(--md-sys-shape-corner-extra-large) var(--md-sys-shape-corner-extra-small);
  --md-shape-asymmetric-end:
    var(--md-sys-shape-corner-extra-large) var(--md-sys-shape-corner-extra-small)
    var(--md-sys-shape-corner-extra-small) var(--md-sys-shape-corner-extra-large);

  /* Motion — spring curves, short durations, transform/opacity only */
  --md-sys-motion-easing-standard: cubic-bezier(0.2, 0, 0, 1);
  --md-sys-motion-easing-standard-decelerate: cubic-bezier(0, 0, 0, 1);
  --md-sys-motion-easing-standard-accelerate: cubic-bezier(0.3, 0, 1, 1);
  --md-sys-motion-easing-emphasized: cubic-bezier(0.2, 0, 0, 1);
  --md-sys-motion-easing-emphasized-decelerate: cubic-bezier(0.05, 0.7, 0.1, 1);
  --md-sys-motion-easing-emphasized-accelerate: cubic-bezier(0.3, 0, 0.8, 0.15);
  --md-sys-motion-spring-fast: cubic-bezier(0.42, 1.67, 0.21, 0.9);
  --md-sys-motion-spring-default: cubic-bezier(0.34, 1.3, 0.64, 1);
  --md-sys-motion-spring-slow: cubic-bezier(0.27, 1.06, 0.18, 1);

  --md-motion-emphasized: var(--md-sys-motion-easing-emphasized);
  --md-motion-emphasized-decelerate: var(--md-sys-motion-easing-emphasized-decelerate);
  --md-motion-emphasized-accelerate: var(--md-sys-motion-easing-emphasized-accelerate);
  --md-motion-spring: var(--md-sys-motion-spring-default);

  --md-duration-short: 150ms;
  --md-duration-medium: 300ms;
  --md-duration-long: 450ms;
  --md-duration-extra-long: 700ms;

  /* Glassmorphism — only on floating chrome that does not sit over text */
  --md-glass-tint-opacity: 90%;
  --md-glass-blur: 20px;
  --md-glass-saturate: 160%;
  --md-glass-glint: rgba(255, 255, 255, 0.06);
  --md-glass-outline-opacity: 50%;
}
:root {
  --doc-motif: url('/img/doc-motif-foundation.svg');
  --doc-section-color: var(--md-sys-color-primary);

  /* Reading measure. Prose is capped; tables, code and diagrams are not. */
  --doc-measure: 70ch;
  --doc-measure-heading: 45ch;

  /* Amber as an artwork role. Raw --g-yellow clears 3:1 against a dark
     surface but only reaches 1.9:1 against white, so the light scheme uses a
     darkened mix and the dark scheme uses the brand value as is. */
  --doc-accent-amber: var(--g-yellow);

  /* Artwork strengths. Kept low so nothing competes with the text. */
  --doc-art-strength: 18%;
  --doc-art-strength-strong: 62%;
  --doc-rail-strength: 34%;
}
:root {
    --doc-measure: none;
    --doc-measure-heading: none;
  }}
html[data-theme=dark] {
  /* Primary — electric emerald (the single accent) */
  --md-sys-color-primary: #2EE6A8;
  --md-sys-color-on-primary: #00331F;
  --md-sys-color-primary-container: #0E4A33;
  --md-sys-color-on-primary-container: #A7F5D6;

  /* Secondary — cool teal, supports the emerald without a second accent */
  --md-sys-color-secondary: #7FD8C4;
  --md-sys-color-on-secondary: #00382E;
  --md-sys-color-secondary-container: #0E4A3F;
  --md-sys-color-on-secondary-container: #A7F0E0;

  /* Tertiary — muted amber, used only for artwork/status, never body text */
  --md-sys-color-tertiary: #E8C46A;
  --md-sys-color-on-tertiary: #3A2E00;
  --md-sys-color-tertiary-container: #4A3B00;
  --md-sys-color-on-tertiary-container: #F5E3A8;

  /* Surface — near-black charcoal steps (cool, not warm) */
  --md-sys-color-surface: #0B0D0E;
  --md-sys-color-on-surface: #E6E8E6;
  --md-sys-color-surface-variant: #1B1F22;
  --md-sys-color-on-surface-variant: #9AA3A0;
  --md-sys-color-surface-container-lowest: #080A0B;
  --md-sys-color-surface-container-low: #111416;
  --md-sys-color-surface-container: #16191B;
  --md-sys-color-surface-container-high: #1B1F22;
  --md-sys-color-surface-container-highest: #21262A;
  --md-sys-color-inverse-surface: #E6E8E6;
  --md-sys-color-inverse-on-surface: #0B0D0E;
  --md-sys-color-inverse-primary: #0E4A33;

  /* Outline */
  --md-sys-color-outline: #6B7572;
  --md-sys-color-outline-variant: #333A3E;

  /* Surface extremes, tint and overlays */
  --md-sys-color-surface-dim: #0B0D0E;
  --md-sys-color-surface-bright: #21262A;
  --md-sys-color-surface-tint: var(--md-sys-color-primary);
  --md-sys-color-shadow: #000000;
  --md-sys-color-scrim: #000000;

  /* Error — desaturated red */
  --md-sys-color-error: #F2B8B5;
  --md-sys-color-on-error: #601410;
  --md-sys-color-error-container: #8C1D18;
  --md-sys-color-on-error-container: #F9DEDC;

  /* Brand accent quartet — kept for the ticker dots, desaturated for dark */
  --g-blue: #8AB4F8;
  --g-red: #F28B82;
  --g-yellow: #FDD663;
  --g-green: #81C995;

  /* Infima mappings */
  --ifm-color-primary: #2EE6A8;
  --ifm-color-primary-dark: #26C98F;
  --ifm-color-primary-darker: #1FAE7C;
  --ifm-color-primary-darkest: #178A62;
  --ifm-color-primary-light: #5CEFBE;
  --ifm-color-primary-lighter: #8AF5D2;
  --ifm-color-primary-lightest: #A7F5D6;

  --ifm-background-color: var(--md-sys-color-surface);
  --ifm-background-surface-color: var(--md-sys-color-surface-container-low);
  --ifm-font-color-base: var(--md-sys-color-on-surface);

  --ifm-navbar-background-color: var(--md-sys-color-surface-container-low);
  --ifm-navbar-shadow: none;
  --ifm-navbar-link-color: var(--md-sys-color-on-surface);
  --ifm-navbar-link-hover-color: var(--md-sys-color-primary);

  --ifm-footer-background-color: #080A0B;
  --ifm-footer-color: #9AA3A0;
  --ifm-footer-link-color: #A7F5D6;
  --ifm-footer-link-hover-color: #5CEFBE;
  --ifm-footer-title-color: #E6E8E6;

  --ifm-link-color: var(--md-sys-color-primary);
  --ifm-link-hover-color: var(--ifm-color-primary-light);

  --ifm-code-font-size: 90%;
  --ifm-code-background: var(--md-sys-color-surface-container);
  --ifm-code-border-radius: 6px;
  --ifm-code-padding-horizontal: 0.4rem;
  --ifm-code-padding-vertical: 0.15rem;

  --ifm-heading-color: var(--md-sys-color-on-surface);
  --ifm-blockquote-border-color: var(--md-sys-color-primary);

  --docusaurus-highlighted-code-line-bg: rgba(46, 230, 168, 0.12);
}
html[data-theme=dark] {
  --md-sys-typescale-font: 'Roboto Flex', Roboto, -apple-system, BlinkMacSystemFont,
    'Segoe UI', 'Helvetica Neue', Arial, sans-serif;
  --md-sys-typescale-font-mono: 'Roboto Mono VF', 'Roboto Mono', 'JetBrains Mono',
    ui-monospace, SFMono-Regular, Menlo, monospace;

  --ifm-font-family-base: var(--md-sys-typescale-font);
  --ifm-heading-font-family: var(--md-sys-typescale-font);
  --ifm-font-family-monospace: var(--md-sys-typescale-font-mono);
  --ifm-font-size-base: 16px;
  --ifm-line-height-base: 1.6;
  --ifm-heading-font-weight: 650;
  --ifm-font-weight-semibold: 600;

  /* Display — hero moments only */
  --md-sys-typescale-display-large-size: 3.5rem;    /* 56px */
  --md-sys-typescale-display-large-line-height: 1.04;
  --md-sys-typescale-display-large-weight: 800;
  --md-sys-typescale-display-large-tracking: -0.03em;

  --md-sys-typescale-display-medium-size: 2.75rem;  /* 44px */
  --md-sys-typescale-display-medium-line-height: 1.08;
  --md-sys-typescale-display-medium-weight: 780;
  --md-sys-typescale-display-medium-tracking: -0.025em;

  --md-sys-typescale-display-small-size: 2.25rem;    /* 36px */
  --md-sys-typescale-display-small-line-height: 1.12;
  --md-sys-typescale-display-small-weight: 760;
  --md-sys-typescale-display-small-tracking: -0.02em;

  /* Headline — section openers */
  --md-sys-typescale-headline-large-size: 2rem;       /* 32px */
  --md-sys-typescale-headline-large-line-height: 1.15;
  --md-sys-typescale-headline-large-weight: 720;
  --md-sys-typescale-headline-large-tracking: -0.018em;

  --md-sys-typescale-headline-medium-size: 1.75rem;   /* 28px */
  --md-sys-typescale-headline-medium-line-height: 1.2;
  --md-sys-typescale-headline-medium-weight: 700;
  --md-sys-typescale-headline-medium-tracking: -0.015em;

  --md-sys-typescale-headline-small-size: 1.5rem;     /* 24px */
  --md-sys-typescale-headline-small-line-height: 1.25;
  --md-sys-typescale-headline-small-weight: 680;
  --md-sys-typescale-headline-small-tracking: -0.012em;

  /* Title — card and dialog headers */
  --md-sys-typescale-title-large-size: 1.375rem;      /* 22px */
  --md-sys-typescale-title-large-line-height: 1.25;
  --md-sys-typescale-title-large-weight: 650;
  --md-sys-typescale-title-large-tracking: -0.008em;

  --md-sys-typescale-title-medium-size: 1rem;         /* 16px */
  --md-sys-typescale-title-medium-line-height: 1.5;
  --md-sys-typescale-title-medium-weight: 620;
  --md-sys-typescale-title-medium-tracking: 0.009em;

  --md-sys-typescale-title-small-size: 0.875rem;      /* 14px */
  --md-sys-typescale-title-small-line-height: 1.43;
  --md-sys-typescale-title-small-weight: 600;
  --md-sys-typescale-title-small-tracking: 0.007em;

  /* Body — running prose */
  --md-sys-typescale-body-large-size: 1rem;           /* 16px */
  --md-sys-typescale-body-large-line-height: 1.6;
  --md-sys-typescale-body-large-weight: 400;
  --md-sys-typescale-body-large-tracking: 0.009em;

  --md-sys-typescale-body-medium-size: 0.875rem;      /* 14px */
  --md-sys-typescale-body-medium-line-height: 1.57;
  --md-sys-typescale-body-medium-weight: 400;
  --md-sys-typescale-body-medium-tracking: 0.016em;

  --md-sys-typescale-body-small-size: 0.75rem;        /* 12px */
  --md-sys-typescale-body-small-line-height: 1.5;
  --md-sys-typescale-body-small-weight: 400;
  --md-sys-typescale-body-small-tracking: 0.03em;

  /* Label — buttons, chips, overlines */
  --md-sys-typescale-label-large-size: 0.875rem;      /* 14px */
  --md-sys-typescale-label-large-line-height: 1.43;
  --md-sys-typescale-label-large-weight: 600;
  --md-sys-typescale-label-large-tracking: 0.007em;

  --md-sys-typescale-label-medium-size: 0.75rem;      /* 12px */
  --md-sys-typescale-label-medium-line-height: 1.33;
  --md-sys-typescale-label-medium-weight: 600;
  --md-sys-typescale-label-medium-tracking: 0.05em;

  --md-sys-typescale-label-small-size: 0.6875rem;     /* 11px */
  --md-sys-typescale-label-small-line-height: 1.45;
  --md-sys-typescale-label-small-weight: 600;
  --md-sys-typescale-label-small-tracking: 0.06em;
}
html[data-theme=dark] {
  --md-spacing-xs: 4px;
  --md-spacing-sm: 8px;
  --md-spacing-md: 16px;
  --md-spacing-lg: 24px;
  --md-spacing-xl: 32px;
  --md-spacing-2xl: 48px;
  --md-spacing-3xl: 64px;

  /* Elevation — hairline borders carry depth; shadows are subtle and tinted */
  --md-elevation-0: none;
  --md-elevation-1: 0 1px 2px rgba(0, 0, 0, 0.3), 0 1px 3px rgba(0, 0, 0, 0.4);
  --md-elevation-2: 0 2px 6px rgba(0, 0, 0, 0.32), 0 4px 12px rgba(0, 0, 0, 0.42);
  --md-elevation-3: 0 4px 12px rgba(0, 0, 0, 0.36), 0 8px 24px rgba(0, 0, 0, 0.46);
  --md-elevation-4: 0 6px 18px rgba(0, 0, 0, 0.4), 0 14px 36px rgba(0, 0, 0, 0.5);
  --md-elevation-5: 0 10px 28px rgba(0, 0, 0, 0.44), 0 22px 56px rgba(0, 0, 0, 0.56);

  /* Shape scale — editorial: sharp on small, soft on large, no pill overload */
  --md-sys-shape-corner-none: 0px;
  --md-sys-shape-corner-extra-small: 2px;
  --md-sys-shape-corner-small: 4px;
  --md-sys-shape-corner-medium: 8px;
  --md-sys-shape-corner-large: 12px;
  --md-sys-shape-corner-large-increased: 16px;
  --md-sys-shape-corner-extra-large: 20px;
  --md-sys-shape-corner-extra-large-increased: 24px;
  --md-sys-shape-corner-extra-extra-large: 28px;
  --md-sys-shape-corner-full: 9999px;

  --md-radius-xs: var(--md-sys-shape-corner-extra-small);
  --md-radius-sm: var(--md-sys-shape-corner-small);
  --md-radius-md: var(--md-sys-shape-corner-medium);
  --md-radius-lg: var(--md-sys-shape-corner-large);
  --md-radius-xl: var(--md-sys-shape-corner-extra-large);
  --md-radius-2xl: 24px;
  --md-radius-full: var(--md-sys-shape-corner-full);

  /* Asymmetric expressive corner recipes */
  --md-shape-asymmetric-start:
    var(--md-sys-shape-corner-extra-small) var(--md-sys-shape-corner-extra-large)
    var(--md-sys-shape-corner-extra-large) var(--md-sys-shape-corner-extra-small);
  --md-shape-asymmetric-end:
    var(--md-sys-shape-corner-extra-large) var(--md-sys-shape-corner-extra-small)
    var(--md-sys-shape-corner-extra-small) var(--md-sys-shape-corner-extra-large);

  /* Motion — spring curves, short durations, transform/opacity only */
  --md-sys-motion-easing-standard: cubic-bezier(0.2, 0, 0, 1);
  --md-sys-motion-easing-standard-decelerate: cubic-bezier(0, 0, 0, 1);
  --md-sys-motion-easing-standard-accelerate: cubic-bezier(0.3, 0, 1, 1);
  --md-sys-motion-easing-emphasized: cubic-bezier(0.2, 0, 0, 1);
  --md-sys-motion-easing-emphasized-decelerate: cubic-bezier(0.05, 0.7, 0.1, 1);
  --md-sys-motion-easing-emphasized-accelerate: cubic-bezier(0.3, 0, 0.8, 0.15);
  --md-sys-motion-spring-fast: cubic-bezier(0.42, 1.67, 0.21, 0.9);
  --md-sys-motion-spring-default: cubic-bezier(0.34, 1.3, 0.64, 1);
  --md-sys-motion-spring-slow: cubic-bezier(0.27, 1.06, 0.18, 1);

  --md-motion-emphasized: var(--md-sys-motion-easing-emphasized);
  --md-motion-emphasized-decelerate: var(--md-sys-motion-easing-emphasized-decelerate);
  --md-motion-emphasized-accelerate: var(--md-sys-motion-easing-emphasized-accelerate);
  --md-motion-spring: var(--md-sys-motion-spring-default);

  --md-duration-short: 150ms;
  --md-duration-medium: 300ms;
  --md-duration-long: 450ms;
  --md-duration-extra-long: 700ms;

  /* Glassmorphism — only on floating chrome that does not sit over text */
  --md-glass-tint-opacity: 90%;
  --md-glass-blur: 20px;
  --md-glass-saturate: 160%;
  --md-glass-glint: rgba(255, 255, 255, 0.06);
  --md-glass-outline-opacity: 50%;
}
html[data-theme=dark] {
  --doc-motif: url('/img/doc-motif-foundation.svg');
  --doc-section-color: var(--md-sys-color-primary);

  /* Reading measure. Prose is capped; tables, code and diagrams are not. */
  --doc-measure: 70ch;
  --doc-measure-heading: 45ch;

  /* Amber as an artwork role. Raw --g-yellow clears 3:1 against a dark
     surface but only reaches 1.9:1 against white, so the light scheme uses a
     darkened mix and the dark scheme uses the brand value as is. */
  --doc-accent-amber: var(--g-yellow);

  /* Artwork strengths. Kept low so nothing competes with the text. */
  --doc-art-strength: 18%;
  --doc-art-strength-strong: 62%;
  --doc-rail-strength: 34%;
}
html[data-theme=dark] {
    --doc-measure: none;
    --doc-measure-heading: none;
  }html[data-theme=light] {
  --md-sys-color-primary: #0E6B4A;
  --md-sys-color-on-primary: #FFFFFF;
  --md-sys-color-primary-container: #A7F5D6;
  --md-sys-color-on-primary-container: #00331F;

  --md-sys-color-secondary: #006B5A;
  --md-sys-color-on-secondary: #FFFFFF;
  --md-sys-color-secondary-container: #A7F0E0;
  --md-sys-color-on-secondary-container: #00382E;

  --md-sys-color-tertiary: #6B5200;
  --md-sys-color-on-tertiary: #FFFFFF;
  --md-sys-color-tertiary-container: #F5E3A8;
  --md-sys-color-on-tertiary-container: #3A2E00;

  --md-sys-color-surface: #F7F8F7;
  --md-sys-color-on-surface: #1A1C1B;
  --md-sys-color-surface-variant: #E1E4E2;
  --md-sys-color-on-surface-variant: #444846;
  --md-sys-color-surface-container-lowest: #FFFFFF;
  --md-sys-color-surface-container-low: #EFF1EF;
  --md-sys-color-surface-container: #E7EAE8;
  --md-sys-color-surface-container-high: #DDE1DE;
  --md-sys-color-surface-container-highest: #D3D8D5;
  --md-sys-color-inverse-surface: #1A1C1B;
  --md-sys-color-inverse-on-surface: #F7F8F7;
  --md-sys-color-inverse-primary: #A7F5D6;

  --md-sys-color-outline: #6B7572;
  --md-sys-color-outline-variant: #C4CAC7;

  --md-sys-color-surface-dim: #D3D8D5;
  --md-sys-color-surface-bright: #F7F8F7;
  --md-sys-color-surface-tint: var(--md-sys-color-primary);
  --md-sys-color-shadow: #000000;
  --md-sys-color-scrim: #000000;

  --md-sys-color-error: #B3261E;
  --md-sys-color-on-error: #FFFFFF;
  --md-sys-color-error-container: #F9DEDC;
  --md-sys-color-on-error-container: #410E0B;

  --g-blue: #4285F4;
  --g-red: #EA4335;
  --g-yellow: #F9AB00;
  --g-green: #34A853;

  --ifm-color-primary: #0E6B4A;
  --ifm-color-primary-dark: #0C5C3F;
  --ifm-color-primary-darker: #0A4E35;
  --ifm-color-primary-darkest: #073A27;
  --ifm-color-primary-light: #178A62;
  --ifm-color-primary-lighter: #1FAE7C;
  --ifm-color-primary-lightest: #A7F5D6;

  --ifm-background-color: var(--md-sys-color-surface);
  --ifm-background-surface-color: var(--md-sys-color-surface-container-low);
  --ifm-font-color-base: var(--md-sys-color-on-surface);

  --ifm-navbar-background-color: var(--md-sys-color-surface-container-low);
  --ifm-navbar-link-color: var(--md-sys-color-on-surface);
  --ifm-navbar-link-hover-color: var(--md-sys-color-primary);

  --ifm-footer-background-color: #1A1C1B;
  --ifm-footer-color: #C4CAC7;
  --ifm-footer-link-color: #A7F5D6;
  --ifm-footer-link-hover-color: #5CEFBE;
  --ifm-footer-title-color: #FFFFFF;

  --ifm-link-color: var(--md-sys-color-primary);
  --ifm-link-hover-color: var(--ifm-color-primary-dark);

  --ifm-code-background: var(--md-sys-color-surface-container);
  --ifm-heading-color: var(--md-sys-color-on-surface);

  --docusaurus-highlighted-code-line-bg: rgba(14, 107, 74, 0.1);
}
html[data-theme=light] {
  --doc-accent-amber: color-mix(in srgb, var(--g-yellow) 60%, var(--md-sys-color-on-surface));
  --doc-art-strength: 16%;
  --doc-art-strength-strong: 62%;
  --doc-rail-strength: 34%;
}
html[data-theme=dark]{color-scheme:dark}html[data-theme=light]{color-scheme:light}
/* Standalone documents share the Lab's tokens; preserve content and diagram geometry. */
html[data-hub-theme] {
  --surface: var(--md-sys-color-surface);
  --ink: var(--md-sys-color-on-surface);
  --muted: var(--md-sys-color-on-surface-variant);
  --accent: var(--md-sys-color-primary);
  --hairline: var(--md-sys-color-outline-variant);
  --paper: var(--surface);
  --paper-raised: var(--md-sys-color-surface-container-low);
  --ink-soft: var(--muted);
  --line: var(--hairline);
  --bg: var(--surface);
  --text: var(--ink);
  --border: var(--hairline);
  --panel: var(--paper-raised);
  --card: var(--paper-raised);
  --accent-soft: var(--md-sys-color-primary-container);
  --code-bg: var(--md-sys-color-surface-container);
  --font-body: var(--md-sys-typescale-font);
  --font-display: var(--md-sys-typescale-font);
  --font-mono: var(--md-sys-typescale-font-mono);
  background: var(--surface);
  color: var(--ink);
  font-family: var(--md-sys-typescale-font);
  font-size: 16px;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
/* FL11: with no explicit theme (JS off, or before the bootstrap runs) follow the device setting for UA widgets too.
   The token sets already switch on prefers-color-scheme; explicit html[data-theme=light|dark] still wins. */
html[data-hub-theme]:not([data-theme]) {color-scheme:light dark;}
html[data-hub-theme] body {
  margin: 0;
  background: var(--surface);
  color: var(--ink);
  font: 400 1rem/1.6 var(--md-sys-typescale-font);
}
html[data-hub-theme] :is(h1,h2,h3,h4,h5,h6) {
  font-family: var(--md-sys-typescale-font);
  color: var(--ink);
  font-weight: 720;
  letter-spacing: -.02em;
}
html[data-hub-theme] h1 {font-size: clamp(2.2rem,4.5vw,3.4rem);line-height:1.05;}
html[data-hub-theme] h2 {line-height:1.25;}
html[data-hub-theme] :is(a) {color:var(--accent);}
/* In-text links need more than colour (WCAG 1.4.1): underline links inside running text. */
html[data-hub-theme] :is(p,dd,blockquote,td,figcaption,.fine,.standfirst,.deck) a:not(.hub-brand):not(.button) {text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em;}
html[data-hub-theme] :is(p,dd,blockquote,td,figcaption,.fine,.standfirst,.deck) a:not(.hub-brand):not(.button):hover {text-decoration-thickness:2px;}
html[data-hub-theme] li:not(:is(.hub-nav,.site-directory,.edition-nav,.editions) li) a:not(.hub-brand):not(.button) {text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em;}
html[data-hub-theme] li:not(:is(.hub-nav,.site-directory,.edition-nav,.editions) li) a:not(.hub-brand):not(.button):hover {text-decoration-thickness:2px;}
html[data-hub-theme] :is(code,pre) {font-family:var(--font-mono);}
html[data-hub-theme] :is(.kicker,.byline,.standfirst,.site-directory,.hub-nav,.hub-panel h2,.advisory,.disclosure,.masthead) {font-family:var(--md-sys-typescale-font);}
html[data-hub-theme] :is(.standfirst,.byline,.disclosure,.provenance,.site-directory-page p) {color:var(--muted);}
html[data-hub-theme] .standfirst {font-size:1.12rem;line-height:1.6;}
html[data-hub-theme] article.brief {max-width:800px;margin:0 auto;padding:48px 24px;}
html[data-hub-theme] :is(section.advisory,section.changes,.card,.panel) {background:var(--paper-raised);border:1px solid var(--hairline);border-radius:12px;}
html[data-hub-theme] .kicker {color:var(--md-sys-color-on-primary-container);background:var(--md-sys-color-primary-container);border-radius:24px;padding:6px 12px;width:fit-content;font-size:12px;letter-spacing:.08em;}
/* Target size floor (WCAG 2.2 AA 2.5.8): stand-alone footer links were 15px high. */
html[data-hub-theme] footer span > a {display:inline-block;min-height:24px;line-height:24px;}
html[data-hub-theme] .hub-nav {background:var(--paper-raised);font-family:var(--md-sys-typescale-font);}
html[data-hub-theme] .hub-nav-inner {max-width:none;min-height:60px;padding:0 16px;gap:20px;}
html[data-hub-theme] .hub-brand {font-size:18px;margin-right:12px;}
html[data-hub-theme] .hub-brand>span {background:#2854bd;color:#fff;border:0;font-size:12px;width:32px;height:32px;}
html[data-hub-theme] .hub-desktop {gap:4px;flex:1;}
html[data-hub-theme] .hub-desktop a {padding:8px 12px;font-weight:500;}
html[data-hub-theme] .hub-desktop a:last-child {margin-left:auto;}
html[data-hub-theme] .hub-nav a {color:var(--ink);}
html[data-hub-theme] .hub-nav a:hover {color:var(--accent);}
html[data-hub-theme] .hub-panel {background:var(--paper-raised);}
html[data-hub-theme] .hub-panel h2 {font-size:11px;color:var(--muted);}
html[data-hub-theme] .site-directory summary {border-color:var(--hairline);}
@media(max-width:1000px) {
  html[data-hub-theme] .hub-brand {margin-right:auto;}
  html[data-hub-theme] .hub-desktop {display:none;}
}
@media(max-width:600px) {
  html[data-hub-theme] article.brief {padding:32px 20px;}
}
/* The historical build log uses --paper for foreground, unlike other documents. */
html[data-hub-theme]:has(.metricbar) {
  --paper: var(--md-sys-color-on-surface);
  --paper-dim: var(--md-sys-color-on-surface-variant);
  --line-soft: var(--md-sys-color-outline-variant);
  --signal: var(--md-sys-color-primary);
  --signal-text: var(--md-sys-color-primary);
}
html[data-hub-theme]:has(.metricbar) :is(strong,.metricbar .v,.pname) {color:var(--md-sys-color-on-surface);}

/* ==========================================================================
   Repairs for corrupted `var(, name)` declarations.
   Generated and hand-authored pages carry declarations such as
   `border: 1px solid var(, line)` and `:root{, bg:#131314}` (the `--` was lost
   in an earlier text pass). Browsers drop them, so those borders/colours never
   applied. The page CSS cannot be edited (published editions are immutable), so
   the intended declarations are restated here with hub tokens.
   Source of the corruption is outside this repo (Mac-side arXiv publisher /
   earlier generator output); it is NOT fixed at the source here.
   ========================================================================== */
/* Current-format editions 2026-07-17..07-25 and generator STYLE: same values as the template's own rules. */
html[data-hub-theme] .byline {border-bottom:1px solid var(--hairline);}
html[data-hub-theme] blockquote.pull-quote {border-left:3px solid var(--accent);}
html[data-hub-theme] footer.provenance {border-top:1px solid var(--hairline);}
/* Nightly arXiv pages (3 inline-CSS variants, 56 of 114 pages affected). */
html[data-hub-theme] main.shell :is(.hero,.panel,.pill,.archive-list a) {border:1px solid var(--hairline);}
html[data-hub-theme] main.shell .eyebrow {color:var(--accent);}
html[data-hub-theme] main.shell :is(.subtitle,.meta-row,.foot,.panel p.meta,.panel p.source-note) {color:var(--muted);}
html[data-hub-theme] main.shell .panel p {color:var(--ink);}
html[data-hub-theme] main.shell .panel p:is(.meta,.source-note) {color:var(--muted);}
/* /prime-sieve/ (hand-authored; identified by its range input). */
html[data-hub-theme]:has(#nSlider) .card {box-shadow:none;}
html[data-hub-theme]:has(#nSlider) h2 {border-left:4px solid var(--accent);}
html[data-hub-theme]:has(#nSlider) :is(label,.legend,.note,.hero-copy,.stat .sub,.stat .label) {color:var(--muted);}
html[data-hub-theme]:has(#nSlider) input[type=range] {accent-color:var(--accent);min-height:24px;}
html[data-hub-theme]:has(#nSlider) input[type=number] {border:1px solid var(--hairline);color:var(--ink);background:var(--md-sys-color-surface-container);}
html[data-hub-theme]:has(#nSlider) input[type=number]:focus {border-color:var(--accent);outline:2px solid var(--accent);outline-offset:2px;}
html[data-hub-theme]:has(#nSlider) .btn {background:var(--md-sys-color-primary);color:var(--md-sys-color-on-primary);}
html[data-hub-theme]:has(#nSlider) .prime-chip {border:1px solid var(--hairline);color:var(--ink);}
html[data-hub-theme]:has(#nSlider) .prime-chip:hover {border-color:var(--accent);}
html[data-hub-theme]:has(#nSlider) .prime-chip.on {background:var(--md-sys-color-primary-container);border-color:var(--accent);color:var(--md-sys-color-on-primary-container);}
html[data-hub-theme]:has(#nSlider) .prime-chip .dot {background:var(--md-sys-color-outline);}
html[data-hub-theme]:has(#nSlider) .prime-chip.on .dot {background:var(--md-sys-color-on-primary-container);}
html[data-hub-theme]:has(#nSlider) .formula {color:var(--ink);}
html[data-hub-theme]:has(#nSlider) .formula .pos {color:var(--md-sys-color-primary);}
html[data-hub-theme]:has(#nSlider) .formula .neg {color:var(--md-sys-color-error);}
html[data-hub-theme]:has(#nSlider) .formula .base {color:var(--accent);}
html[data-hub-theme]:has(#nSlider) .stat {border:1px solid var(--hairline);}
html[data-hub-theme]:has(#nSlider) .stat .val:is(.good,.accent) {color:var(--md-sys-color-primary);}
html[data-hub-theme]:has(#nSlider) .stat .val.warn {color:var(--md-sys-color-tertiary);}
html[data-hub-theme]:has(#nSlider) canvas {border:1px solid var(--hairline);}
html[data-hub-theme]:has(#nSlider) .legend>span:nth-child(1) .sw {background:var(--md-sys-color-primary);}
html[data-hub-theme]:has(#nSlider) .legend>span:nth-child(2) .sw {background:var(--md-sys-color-tertiary);}

/* ==========================================================================
   Legacy editions (published before 2026-07-17; 25 distinct inline stylesheets).

   These pages were authored for a dark palette, with light text hard-coded on
   dark hero/card surfaces. The shared theme already replaced some of their
   surfaces and text with light/dark role tokens, which left light-on-light and
   dark-on-dark text in the light scheme (axe: 68 nodes on 2026-05-13, 119 on
   2026-05-20, 59 on 2026-06-27 ...). FL10 (approved): full restyle, so these
   pages adopt the current design-system look in both schemes.

   `html[data-hub-theme]:has(.edition-nav):not(:has(meta[name="brief:format"]))` is replaced at build time (scripts/build-site-theme.mjs) by
     html[data-hub-theme]:has(.edition-nav):not(:has(meta[name="brief:format"]))
   i.e. an edition page (the edition-nav is injected by build-archive-index) that
   does NOT carry the `brief:format` meta every current-format edition has.
   Regenerated/new editions carry that meta and are never matched.
   Specificity of the prefix is (0,3,2), above every selector in the inline CSS
   except `!important` declarations, which are restated at the end.
   ========================================================================== */

/* 1. Neutralise hard-coded dark-palette colours, gradients and shadows. */
html[data-hub-theme]:has(.edition-nav):not(:has(meta[name="brief:format"])) :where(body) *:not(:where(svg,svg *,img,canvas,video,audio,picture,.hub-nav,.hub-nav *,.edition-nav,.edition-nav *)) {
  color: inherit;
  background-color: transparent;
  background-image: none;
  border-color: var(--hairline);
  box-shadow: none;
}
html[data-hub-theme]:has(.edition-nav):not(:has(meta[name="brief:format"])) :where(body) *:not(:where(.hub-nav,.hub-nav *,.edition-nav,.edition-nav *))::before, html[data-hub-theme]:has(.edition-nav):not(:has(meta[name="brief:format"])) :where(body) *:not(:where(.hub-nav,.hub-nav *,.edition-nav,.edition-nav *))::after {background-image: none;}
html[data-hub-theme]:has(.edition-nav):not(:has(meta[name="brief:format"])) body {color: var(--ink);}
html[data-hub-theme]:has(.edition-nav):not(:has(meta[name="brief:format"])) :is(input,button,select,textarea) {font-family: inherit;}
/* Long unbroken strings (paths, URLs) must wrap instead of forcing horizontal scroll on phones (2026-05-22: 405px -> 436px; 2026-05-23). */
html[data-hub-theme]:has(.edition-nav):not(:has(meta[name="brief:format"])) :where(body > :not(.hub-nav,.edition-nav,script,style)) :is(p,li,dd,dt,td,th,a,h1,h2,h3,h4,span,b,strong,code) {overflow-wrap: anywhere;}
html[data-hub-theme]:has(.edition-nav):not(:has(meta[name="brief:format"])) :where(body > :not(.hub-nav,.edition-nav,script,style)) :is(article,section,div) {min-width: 0;}

/* 2. Type: the shared scale, not the page's own sizes. */
html[data-hub-theme]:has(.edition-nav):not(:has(meta[name="brief:format"])) h1 {font-size: clamp(2.2rem, 4.5vw, 3.4rem); line-height: 1.05; letter-spacing: -.02em; font-weight: 720;}
html[data-hub-theme]:has(.edition-nav):not(:has(meta[name="brief:format"])) h2 {font-size: 1.5rem; line-height: 1.25; letter-spacing: -.015em; font-weight: 700;}
html[data-hub-theme]:has(.edition-nav):not(:has(meta[name="brief:format"])) :is(h3,h4) {font-size: 1.125rem; line-height: 1.3; letter-spacing: -.008em; font-weight: 650;}
html[data-hub-theme]:has(.edition-nav):not(:has(meta[name="brief:format"])) :is(p,li,td,th,dd,dt) {font-size: .9375rem; line-height: 1.55;}
html[data-hub-theme]:has(.edition-nav):not(:has(meta[name="brief:format"])) :is(.deck,.dek,.lede,.standfirst) {font-size: 1.125rem; line-height: 1.6;}

/* 3. Surfaces: tonal containers with a hairline, 12px radius (design-system value). */
html[data-hub-theme]:has(.edition-nav):not(:has(meta[name="brief:format"])) :is(.hero,.hero-card,.hero-panel,.hero-main,.verdict,.card,.callout,.call,.proposal,.source-box,.surface,.panel,.metric,.stat,.kpi,.micro,.leader,.person,.tier-title,.topbar,.toolbar,.mini,.sources) {
  background-color: var(--md-sys-color-surface-container-low);
  border: 1px solid var(--hairline);
  border-radius: 12px;
}
html[data-hub-theme]:has(.edition-nav):not(:has(meta[name="brief:format"])) :is(.hero,.hero-card,.hero-panel,.hero-main,.verdict) {background-color: var(--md-sys-color-surface-container);}
html[data-hub-theme]:has(.edition-nav):not(:has(meta[name="brief:format"])) :is(.card,.call,.proposal,.callout,.surface,.panel,.source-box) :is(.mini,.metric,.stat,.kpi,.micro,.card,.call,.surface) {background-color: var(--md-sys-color-surface-container);}
html[data-hub-theme]:has(.edition-nav):not(:has(meta[name="brief:format"])) .sources {border: 0; background-color: transparent; border-radius: 0;}
html[data-hub-theme]:has(.edition-nav):not(:has(meta[name="brief:format"])) .proposal {border-left: 4px solid var(--accent);}
html[data-hub-theme]:has(.edition-nav):not(:has(meta[name="brief:format"])) .toolbar {display: flex; flex-wrap: wrap; gap: 8px; padding: 8px;}
html[data-hub-theme]:has(.edition-nav):not(:has(meta[name="brief:format"])) :is(button,.toolbar button,.controls button) {
  background-color: var(--md-sys-color-surface-container-high);
  color: var(--ink);
  border: 1px solid var(--md-sys-color-outline);
  border-radius: 8px;
  min-height: 48px;
  padding: 0 16px;
  font-weight: 600;
}

/* 4. Small labels: chips, pills, badges, tags. Shape is left as published (FL2 is open). */
html[data-hub-theme]:has(.edition-nav):not(:has(meta[name="brief:format"])) :is(.badge,.pill,.chip,.tag,.rank-badge,.kicker span,.num) {
  background-color: var(--md-sys-color-surface-container-highest);
  border: 1px solid var(--hairline);
}
html[data-hub-theme]:has(.edition-nav):not(:has(meta[name="brief:format"])) :is(.badge,.pill,.chip,.tag,.rank-badge):is(.fresh,.new,.official,.green,.good) {background-color: var(--md-sys-color-primary-container); color: var(--md-sys-color-on-primary-container);}
html[data-hub-theme]:has(.edition-nav):not(:has(meta[name="brief:format"])) :is(.badge,.pill,.chip,.tag,.rank-badge):is(.hot,.signal,.warn,.orange,.gold,.yellow,.material) {background-color: var(--md-sys-color-tertiary-container); color: var(--md-sys-color-on-tertiary-container);}
html[data-hub-theme]:has(.edition-nav):not(:has(meta[name="brief:format"])) :is(.badge,.pill,.chip,.tag,.rank-badge):is(.risk,.blocked,.red) {background-color: var(--md-sys-color-error-container); color: var(--md-sys-color-on-error-container);}
/* `.chip.blocked` ("No fresh source delta") was an amber-tinted neutral chip in the published pages, not an error: keep it amber. `.badge.blocked` and the other shapes stay on the error container above. */
html[data-hub-theme]:has(.edition-nav):not(:has(meta[name="brief:format"])) .chip.blocked {background-color: var(--md-sys-color-tertiary-container); color: var(--md-sys-color-on-tertiary-container);}
html[data-hub-theme]:has(.edition-nav):not(:has(meta[name="brief:format"])) :is(.badge,.pill,.chip,.tag,.rank-badge):is(.quiet,.baseline,.wiki,.blue,.violet,.secondary,.gray,.carry,.watch) {background-color: var(--md-sys-color-secondary-container); color: var(--md-sys-color-on-secondary-container);}
html[data-hub-theme]:has(.edition-nav):not(:has(meta[name="brief:format"])) :is(.badge,.pill,.chip,.tag,.rank-badge) * {color: inherit;}

/* 5. Text roles. */
html[data-hub-theme]:has(.edition-nav):not(:has(meta[name="brief:format"])) :is(.note,.muted,.meta,.meta-row,.meta-item,.small,.sub-name,.label,.print-note,.section-note,.source-note,.footer-note,.fine,.quiet-text,footer,.deck,.dek,.lede) {color: var(--muted);}
html[data-hub-theme]:has(.edition-nav):not(:has(meta[name="brief:format"])) :is(.eyebrow,.rank,.num,.company,.org,.role) {color: var(--accent);}
html[data-hub-theme]:has(.edition-nav):not(:has(meta[name="brief:format"])) :is(span,b,strong,em,i,small,p,li):is(.risk,.blocked,.red) {color: var(--md-sys-color-error);}
html[data-hub-theme]:has(.edition-nav):not(:has(meta[name="brief:format"])) :is(span,b,strong,em,i,small,p,li):is(.opportunity,.green,.good) {color: var(--md-sys-color-primary);}
html[data-hub-theme]:has(.edition-nav):not(:has(meta[name="brief:format"])) :is(span,b,strong,em,i,small,p,li):is(.watch,.hot,.warn) {color: var(--md-sys-color-tertiary);}
html[data-hub-theme]:has(.edition-nav):not(:has(meta[name="brief:format"])) a {color: var(--accent);}
html[data-hub-theme]:has(.edition-nav):not(:has(meta[name="brief:format"])) :is(p,li,dd,td,.sources) a {text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .2em;}

/* Dimmed (opacity) cards were a dark-palette device; dimming lowers text contrast. */
html[data-hub-theme]:has(.edition-nav):not(:has(meta[name="brief:format"])) :is(.quiet,.dim,.muted-card) {opacity: 1;}

/* Page-level `nav {...}` / `nav a {...}` rules in some editions also hit the injected hub navigation
   and edition navigation; restore the chrome. */
html[data-hub-theme]:has(.edition-nav):not(:has(meta[name="brief:format"])) .hub-nav {margin: 0; padding: 0; border-radius: 0; border-width: 0 0 1px; display: block; backdrop-filter: none;}
html[data-hub-theme]:has(.edition-nav):not(:has(meta[name="brief:format"])) .hub-nav a {background: none; border: 0; border-radius: 0; min-height: 0; font: inherit;}
html[data-hub-theme]:has(.edition-nav):not(:has(meta[name="brief:format"])) .hub-nav .hub-brand {font-weight: 650; font-size: 18px;}
html[data-hub-theme]:has(.edition-nav):not(:has(meta[name="brief:format"])) .hub-nav :is(.hub-panel a) {border-radius: 4px;}
html[data-hub-theme]:has(.edition-nav):not(:has(meta[name="brief:format"])) .edition-nav {position: static; margin: 0 auto; background: transparent; border-radius: 0; backdrop-filter: none; border-width: 1px 0 0;}
html[data-hub-theme]:has(.edition-nav):not(:has(meta[name="brief:format"])) .edition-nav a {background: none; border: 0; border-radius: 0; min-height: 0; color: var(--accent); font: inherit;}

/* 6. Layout safety: nothing may force the page wider than the viewport. */
html[data-hub-theme]:has(.edition-nav):not(:has(meta[name="brief:format"])) :is(main,.wrap,.page,header) {max-width: 100%;}
html[data-hub-theme]:has(.edition-nav):not(:has(meta[name="brief:format"])) :is(table,pre) {max-width: 100%;}

/* 7. Inline `!important` declarations of dark-palette colours (2026-05-15/-19/-20/-21/-23/-31).
   Beaten only by restating with !important. The print-only ones (white background) stay untouched. */
@media screen {
  html[data-hub-theme]:has(.edition-nav):not(:has(meta[name="brief:format"])) :is(.card p,.callout p,.call p,.deck,.dek,.lede,.hero p,.verdict p,.surface p,.source-box,.sources,.sources li) {color: var(--ink) !important;}
  html[data-hub-theme]:has(.edition-nav):not(:has(meta[name="brief:format"])) :is(.note,.muted,.meta,.small,.fine,footer,.deck,.dek,.lede) {color: var(--muted) !important;}
}

/* Shared expressive theme: site-wide tokens, editorial layouts, and self-hosted type. */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/dm-sans-400.ttf) format('truetype');
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/dm-sans-500.ttf) format('truetype');
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/dm-sans-700.ttf) format('truetype');
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/manrope-400.ttf) format('truetype');
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/manrope-500.ttf) format('truetype');
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/manrope-700.ttf) format('truetype');
}

/* Cream, forest green and lime from the reference. Semantic colours keep
   documentation, diagrams and saved dark-mode preferences usable. */
:root, html[data-theme='light'] {
  --md-sys-color-primary: #244e45;
  --md-sys-color-on-primary: #faf9f4;
  --md-sys-color-primary-container: #e3ed9b;
  --md-sys-color-on-primary-container: #234b41;
  --md-sys-color-secondary: #4f6651;
  --md-sys-color-on-secondary: #ffffff;
  --md-sys-color-secondary-container: #e4e9db;
  --md-sys-color-on-secondary-container: #234b41;
  --md-sys-color-tertiary: #725c26;
  --md-sys-color-tertiary-container: #eee4c8;
  --md-sys-color-on-tertiary-container: #4c3c16;
  --md-sys-color-surface: #faf9f4;
  --md-sys-color-on-surface: #234b41;
  --md-sys-color-on-surface-variant: #5f6e64;
  --md-sys-color-surface-variant: #e4e9db;
  --md-sys-color-surface-container-lowest: #ffffff;
  --md-sys-color-surface-container-low: #f1f2e9;
  --md-sys-color-surface-container: #eef1e7;
  --md-sys-color-surface-container-high: #e4e9db;
  --md-sys-color-surface-container-highest: #dce4d4;
  --md-sys-color-surface-dim: #e4e9db;
  --md-sys-color-surface-bright: #faf9f4;
  --md-sys-color-outline: #75816f;
  --md-sys-color-outline-variant: #d5dbcf;
  --ifm-color-primary: #244e45;
  --ifm-color-primary-dark: #1d4139;
  --ifm-color-primary-darker: #183a32;
  --ifm-color-primary-darkest: #102e27;
  --ifm-color-primary-light: #315f54;
  --ifm-color-primary-lighter: #38695d;
  --ifm-color-primary-lightest: #417465;
  --expressive-soft: #eef1e7;
}
html[data-theme='dark'] {
  --md-sys-color-primary: #e3ed9b;
  --md-sys-color-on-primary: #234b41;
  --md-sys-color-primary-container: #38574b;
  --md-sys-color-on-primary-container: #e3ed9b;
  --md-sys-color-secondary: #b9d1b7;
  --md-sys-color-on-secondary: #18392e;
  --md-sys-color-secondary-container: #2b4438;
  --md-sys-color-on-secondary-container: #d9e8d1;
  --md-sys-color-tertiary: #e6cc97;
  --md-sys-color-tertiary-container: #4b4029;
  --md-sys-color-on-tertiary-container: #f2e5bd;
  --md-sys-color-surface: #142b24;
  --md-sys-color-on-surface: #f3f3e7;
  --md-sys-color-on-surface-variant: #bfccba;
  --md-sys-color-surface-variant: #30483b;
  --md-sys-color-surface-container-lowest: #10221c;
  --md-sys-color-surface-container-low: #1c352b;
  --md-sys-color-surface-container: #233d31;
  --md-sys-color-surface-container-high: #30483b;
  --md-sys-color-surface-container-highest: #3a5344;
  --md-sys-color-surface-dim: #10221c;
  --md-sys-color-surface-bright: #30483b;
  --md-sys-color-outline: #93a38d;
  --md-sys-color-outline-variant: #49604f;
  --ifm-color-primary: #e3ed9b;
  --ifm-color-primary-dark: #d2dd89;
  --ifm-color-primary-darker: #c7d17d;
  --ifm-color-primary-darkest: #bac771;
  --ifm-color-primary-light: #edf3b4;
  --ifm-color-primary-lighter: #f1f5c6;
  --ifm-color-primary-lightest: #f6f8db;
  --expressive-soft: #233d31;
}
/* Match the device preference before scripts run, or when JavaScript is off. */
@media (prefers-color-scheme: dark) {
html:not([data-theme]) {
  --md-sys-color-primary: #e3ed9b;
  --md-sys-color-on-primary: #234b41;
  --md-sys-color-primary-container: #38574b;
  --md-sys-color-on-primary-container: #e3ed9b;
  --md-sys-color-secondary: #b9d1b7;
  --md-sys-color-on-secondary: #18392e;
  --md-sys-color-secondary-container: #2b4438;
  --md-sys-color-on-secondary-container: #d9e8d1;
  --md-sys-color-tertiary: #e6cc97;
  --md-sys-color-tertiary-container: #4b4029;
  --md-sys-color-on-tertiary-container: #f2e5bd;
  --md-sys-color-surface: #142b24;
  --md-sys-color-on-surface: #f3f3e7;
  --md-sys-color-on-surface-variant: #bfccba;
  --md-sys-color-surface-variant: #30483b;
  --md-sys-color-surface-container-lowest: #10221c;
  --md-sys-color-surface-container-low: #1c352b;
  --md-sys-color-surface-container: #233d31;
  --md-sys-color-surface-container-high: #30483b;
  --md-sys-color-surface-container-highest: #3a5344;
  --md-sys-color-surface-dim: #10221c;
  --md-sys-color-surface-bright: #30483b;
  --md-sys-color-outline: #93a38d;
  --md-sys-color-outline-variant: #49604f;
  --ifm-color-primary: #e3ed9b;
  --ifm-color-primary-dark: #d2dd89;
  --ifm-color-primary-darker: #c7d17d;
  --ifm-color-primary-darkest: #bac771;
  --ifm-color-primary-light: #edf3b4;
  --ifm-color-primary-lighter: #f1f5c6;
  --ifm-color-primary-lightest: #f6f8db;
  --expressive-soft: #233d31;
}
}

:root {
  --md-sys-typescale-font: 'DM Sans', sans-serif;
  --ifm-font-family-base: 'DM Sans', sans-serif;
  --ifm-heading-font-family: 'Manrope', sans-serif;
  --ifm-heading-font-weight: 500;
  --ifm-background-color: var(--md-sys-color-surface);
  --ifm-background-surface-color: var(--md-sys-color-surface-container-low);
  --ifm-font-color-base: var(--md-sys-color-on-surface);
  --ifm-navbar-background-color: var(--md-sys-color-surface);
  --ifm-navbar-link-color: var(--md-sys-color-on-surface);
  --ifm-footer-background-color: #244e45;
  --ifm-footer-color: #e0e7d7;
  --ifm-footer-link-color: #e3ed9b;
  --ifm-footer-title-color: #faf9f4;
  --ifm-link-color: var(--md-sys-color-primary);
  --ifm-link-hover-color: var(--md-sys-color-primary);
  --ifm-global-radius: 1.5rem;
  --ifm-button-border-radius: 999px;
  --ifm-navbar-height: 88px;
  --md-radius-xl: 28px;
  --md-radius-lg: 24px;
  --md-radius-md: 18px;
}
body, html[data-hub-theme] body { background:var(--md-sys-color-surface); }
html :is(h1,h2,h3), html[data-hub-theme] :is(h1,h2,h3) {
  font-family:'Manrope',sans-serif;
  font-weight:500;
  letter-spacing:-.045em;
}
html :is(h1,h2,h3) { color:var(--md-sys-color-on-surface); }
html .navbar { height:88px; border-bottom:1px solid var(--md-sys-color-outline-variant); padding-inline:clamp(20px,3.5vw,52px); }
html .navbar__brand { font-family:'Manrope',sans-serif; font-size:21px; }
html .navbar__link { font-size:14px; font-weight:500; }
html .navbar__link--active { background:var(--md-sys-color-primary-container); border-radius:999px; }
html .button { border-radius:999px; padding:14px 24px; box-shadow:none; font-weight:500; }
html .button--primary { background:var(--md-sys-color-primary); color:var(--md-sys-color-on-primary); border-color:var(--md-sys-color-primary); }
html .card { border-radius:28px; }
html[data-hub-theme] .hub-nav { background:var(--md-sys-color-surface); }
html[data-hub-theme] .hub-nav-inner { max-width:1440px; min-height:88px; padding:0 clamp(20px,3.5vw,52px); gap:24px; }
html[data-hub-theme] .hub-brand { font-family:'Manrope',sans-serif; font-size:21px; font-weight:500; }
html[data-hub-theme] .hub-brand>span { width:38px; height:38px; border-radius:50% 50% 12px 50%; background:var(--md-sys-color-primary); color:var(--md-sys-color-on-primary); font-size:12px; }
html[data-hub-theme] .hub-desktop { justify-content:center; }
html[data-hub-theme] .hub-desktop a:last-child { margin-left:0; }
html[data-hub-theme] .hub-desktop a { padding:10px 14px; border-radius:999px; }
html[data-hub-theme] .hub-desktop a[aria-current] { background:var(--md-sys-color-primary-container); color:var(--md-sys-color-on-primary-container); }
html[data-hub-theme] .hub-desktop a[aria-current]:after { content:none; }
html[data-hub-theme] .hub-explore summary { border-radius:999px; padding:12px 20px; border-color:var(--md-sys-color-outline-variant); }
html[data-hub-theme] .hub-panel { border-radius:0 0 28px 28px; }

/* Current editorial editions use a wide opening and a comfortable reading
   measure below it. Content, source badges and historical editions stay intact. */
html[data-hub-theme] article.brief { max-width:1440px; padding:30px 48px 64px; }
html[data-hub-theme] article.brief>* { max-width:820px; margin-left:auto; margin-right:auto; }
html[data-hub-theme] article.brief .masthead {
  max-width:none; margin:0 0 28px; padding:56px; border-radius:38px;
  background:linear-gradient(90deg,#153e35 0%,#153e35f5 42%,#153e3590 75%,#153e3540),url('/img/v2-astronaut.webp') center right/cover;
  color:#faf9f4; min-height:620px; display:flex; flex-direction:column; justify-content:center;
}
html[data-hub-theme] article.brief .masthead .kicker {
  padding:0; margin:0 0 26px; background:transparent; color:#e3ed9b;
  font-size:11px; font-weight:500; text-transform:uppercase; letter-spacing:.18em;
}
html[data-hub-theme] article.brief .masthead h1 {
  color:#faf9f4; font-size:clamp(38px,4.1vw,60px); font-weight:500; letter-spacing:-.055em;
  line-height:1.08; max-width:850px; margin:0 0 28px; text-wrap:balance;
}
html[data-hub-theme] article.brief .masthead .standfirst { color:#e2e8db; max-width:670px; font-size:16px; line-height:1.7; margin:0; }
.brief-actions { display:flex; gap:26px; align-items:center; flex-wrap:wrap; margin-top:32px; }
html[data-hub-theme] .brief-actions a { display:inline-flex; align-items:center; gap:24px; min-height:48px; color:#faf9f4; font-size:14px; text-decoration:none; }
html[data-hub-theme] .brief-actions a:first-child { border-radius:999px; padding:14px 22px; background:#e3ed9b; color:#234b41; }
html[data-hub-theme] .brief-actions a:hover { text-decoration:underline; text-underline-offset:4px; }
html[data-hub-theme] .brief-actions a:focus-visible { outline:3px solid #faf9f4; outline-offset:5px; }
html[data-hub-theme] article.brief>.readtime { max-width:none; padding:0 8px 26px; border-bottom:1px solid var(--hairline); font-size:13px; margin-bottom:50px; }
html[data-hub-theme] article.brief>.tldr { max-width:none; padding:32px; background:var(--expressive-soft); border:0; border-radius:30px; margin-bottom:40px; }
html[data-hub-theme] article.brief>.tldr h2 { font:500 30px/1.2 'Manrope',sans-serif; text-transform:none; letter-spacing:-.04em; margin:0 0 26px; color:var(--ink); }
html[data-hub-theme] .tldr ol.calls { grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
html[data-hub-theme] .tldr ol.calls li { display:flex; flex-direction:column; align-items:flex-start; border:0; border-radius:22px; padding:24px; gap:12px; }
html[data-hub-theme] .tldr ol.calls .num { background:var(--md-sys-color-primary-container); color:var(--md-sys-color-on-primary-container); width:36px; height:36px; border-radius:12px; flex-shrink:0; font-weight:500; }
html[data-hub-theme] .tldr ol.calls .call { font:500 23px/1.3 'Manrope',sans-serif; letter-spacing:-.035em; }
html[data-hub-theme] .tldr ol.calls .fine { margin-top:auto; overflow-wrap:anywhere; }
html[data-hub-theme] article.brief>.decisions { max-width:none; margin-block:56px; }
html[data-hub-theme] article.brief>.decisions>h2 { font-size:38px; margin-bottom:24px; }
html[data-hub-theme] .decisions ol.cards { grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
html[data-hub-theme] .decisions li.card { padding:28px; border:0; border-radius:28px; background:var(--expressive-soft); }
html[data-hub-theme] .decisions ol.cards h3 { font:500 23px/1.3 'Manrope',sans-serif; letter-spacing:-.035em; margin-bottom:20px; }
html[data-hub-theme] .decisions ol.cards p.decision { border:0; padding:0; font-family:'DM Sans',sans-serif; }
html[data-hub-theme] article.brief>section.theme { padding-top:32px; border-top:1px solid var(--hairline); }
html[data-hub-theme] article.brief>section h2 { scroll-margin-top:110px; }
html[data-hub-theme] article.brief :is(section.advisory,section.changes) { border:0; border-radius:28px; padding:32px; background:var(--expressive-soft); }
html[data-hub-theme] .badge { border-radius:999px; font-size:10px; white-space:normal; }
html[data-hub-theme] article.brief aside.reg-none { background:var(--expressive-soft); color:var(--ink); border-radius:20px; }
html[data-hub-theme] article.brief aside.reg:not(.reg-none) { background:var(--md-sys-color-error-container); color:var(--md-sys-color-on-error-container); border-left-color:var(--md-sys-color-error); }
html[data-hub-theme] article.brief aside.reg:not(.reg-none) :is(a,.fine) { color:inherit; }
html[data-hub-theme] article.brief aside.reg:not(.reg-none) h2 { color:inherit; }
html[data-hub-theme] .site-directory-page { max-width:1100px; }
html[data-hub-theme] .site-directory-page h1 { font-size:clamp(40px,6vw,76px); }
html[data-hub-theme] .site-directory-page details { background:var(--expressive-soft); border-radius:24px; padding:6px 28px; margin-bottom:16px; }
html[data-hub-theme] .site-directory-page summary { border:0; }

@media(max-width:1000px) {
  :root { --ifm-navbar-height: 72px; }
  html .navbar, html[data-hub-theme] .hub-nav-inner { min-height:72px; height:auto; }
  html[data-hub-theme] article.brief { padding:24px; }
  html[data-hub-theme] article.brief .masthead { padding:40px; }
  html[data-hub-theme] .tldr ol.calls, html[data-hub-theme] .decisions ol.cards { grid-template-columns:1fr; }
}
@media(max-width:600px) {
  html[data-hub-theme] .hub-brand { font-size:18px; }
  html[data-hub-theme] .hub-nav-inner { gap:10px; padding-inline:18px; }
  html[data-hub-theme] .hub-explore summary { padding:10px 14px; }
  html[data-hub-theme] article.brief { padding:16px 16px 40px; }
  html[data-hub-theme] article.brief .masthead { padding:32px 24px; border-radius:28px; min-height:0; background:linear-gradient(#153e35e8,#153e35f2),url('/img/v2-astronaut.webp') center/cover; }
  html[data-hub-theme] article.brief .masthead h1 { font-size:39px; letter-spacing:-.05em; }
  html[data-hub-theme] article.brief .masthead .standfirst { font-size:15px; }
  .brief-actions { gap:14px; margin-top:24px; }
  html[data-hub-theme] .brief-actions a { font-size:13px; gap:12px; }
  html[data-hub-theme] article.brief>.tldr { padding:24px 16px; }
  html[data-hub-theme] .tldr ol.calls li { padding:22px; }
  html[data-hub-theme] article.brief :is(section.advisory,section.changes) { padding:24px; }
  html[data-hub-theme] article.brief>.decisions>h2 { font-size:32px; }
}
@media print {
  html[data-hub-theme] article.brief { max-width:100%; padding:0; }
  html[data-hub-theme] article.brief .masthead { background:none; min-height:0; padding:0; }
  html[data-hub-theme] article.brief .masthead :is(h1,.kicker,.standfirst) { color:#111; }
  .brief-actions { display:none; }
}

/* Source appendices include long literal URLs; wrap them at narrow widths. */
html[data-hub-theme] article.brief a { overflow-wrap:anywhere; }
