@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;
}
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);}
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;}
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);}
