/* Generated from DESIGN.md. Edit its canonical token block, then run tools/sync_tokens.py. */
:root {
  --white:#ffffff;
  /* neutral: replace the full ramp when defining a project identity. */
  --neutral-50:#fafafa;
  --neutral-100:#f5f5f5;
  --neutral-200:#e5e5e5;
  --neutral-300:#d4d4d4;
  --neutral-400:#a3a3a3;
  --neutral-500:#6b6b6b;
  --neutral-600:#525252;
  --neutral-700:#404040;
  --neutral-800:#262626;
  --neutral-900:#171717;
  --neutral-950:#0a0a0a;
  /* brand-primary: replace the full ramp when defining a project identity. */
  --brand-primary-50:#effcf6;
  --brand-primary-100:#daf8ea;
  --brand-primary-200:#b7efd4;
  --brand-primary-300:#85e0b7;
  --brand-primary-400:#3ecf8e;
  --brand-primary-500:#2bbd7e;
  --brand-primary-600:#169b62;
  --brand-primary-700:#137547;
  --brand-primary-800:#125c3c;
  --brand-primary-900:#124b33;
  --brand-primary-950:#082d1e;
  /* brand-secondary: replace the full ramp when defining a project identity. */
  --brand-secondary-50:#f1f6ff;
  --brand-secondary-100:#e5eeff;
  --brand-secondary-200:#c9dbff;
  --brand-secondary-300:#a8c7ff;
  --brand-secondary-400:#7aa8f5;
  --brand-secondary-500:#4a83d9;
  --brand-secondary-600:#3266b5;
  --brand-secondary-700:#27539a;
  --brand-secondary-800:#21437a;
  --brand-secondary-900:#21385e;
  --brand-secondary-950:#122641;
  /* brand-tertiary: replace the full ramp when defining a project identity. */
  --brand-tertiary-50:#fff6f0;
  --brand-tertiary-100:#ffeadb;
  --brand-tertiary-200:#ffd2b5;
  --brand-tertiary-300:#f5b18a;
  --brand-tertiary-400:#e58c60;
  --brand-tertiary-500:#cc693f;
  --brand-tertiary-600:#ac4e2b;
  --brand-tertiary-700:#8c3e24;
  --brand-tertiary-800:#71331f;
  --brand-tertiary-900:#542e23;
  --brand-tertiary-950:#341b14;
  /* Status colors are independent of the brand palettes. */
  --status-success-light:#205f39; --status-success-light-bg:#e3f1e6;
  --status-success-dark:#a1d6ac; --status-success-dark-bg:#284c32;
  --status-danger-light:#b02e24; --status-danger-light-bg:#fff0ee;
  --status-danger-dark:#ffafa6; --status-danger-dark-bg:#4b2421;
  --status-warning-light:#795512; --status-warning-light-bg:#fff4d6;
  --status-warning-dark:#efd38e; --status-warning-dark-bg:#44371c;
  --status-info-light:#27539a; --status-info-light-bg:#edf3ff;
  --status-info-dark:#b3ceff; --status-info-dark-bg:#253650;
  /* Compatibility aliases for existing product styles; prefer role tokens in new code. */
  --stone-50:var(--neutral-50);
  --stone-100:var(--neutral-100);
  --stone-200:var(--neutral-200);
  --stone-400:var(--neutral-400);
  --stone-600:var(--neutral-600);
  --stone-800:var(--neutral-800);
  --stone-950:var(--neutral-950);
  --green-100:var(--brand-primary-100); --green-600:var(--brand-primary-600); --green-700:var(--brand-primary-700); --green-800:var(--brand-primary-800);
  --red-100:var(--status-danger-light-bg); --red-700:var(--status-danger-light);
  --amber-100:var(--status-warning-light-bg); --amber-800:var(--status-warning-light);
  --blue-100:var(--status-info-light-bg); --blue-700:var(--status-info-light);
  /* Semantic roles: use these in components and product styles. */
  --bg:var(--white); --bg-subtle:var(--neutral-50); --bg-muted:var(--neutral-100); --bg-inverse:var(--neutral-950);
  --fg:var(--neutral-950); --fg-secondary:var(--neutral-800); --fg-muted:var(--neutral-600); --fg-subtle:var(--neutral-500);
  --fg-placeholder:var(--neutral-500); --fg-disabled:var(--neutral-400); --fg-inverse:var(--white);
  --border:var(--neutral-200); --border-strong:var(--neutral-400);
  --brand-primary:var(--brand-primary-400);
  --brand-primary-hover:var(--brand-primary-300);
  --brand-primary-pressed:var(--brand-primary-500);
  --brand-primary-on:var(--brand-primary-950);
  --brand-primary-subtle:var(--brand-primary-50);
  --brand-primary-muted:var(--brand-primary-100);
  --brand-primary-text:var(--brand-primary-800);
  --brand-primary-border:var(--brand-primary-700);
  --brand-secondary:var(--brand-secondary-700);
  --brand-secondary-hover:var(--brand-secondary-800);
  --brand-secondary-pressed:var(--brand-secondary-900);
  --brand-secondary-on:var(--white);
  --brand-secondary-subtle:var(--brand-secondary-50);
  --brand-secondary-muted:var(--brand-secondary-100);
  --brand-secondary-text:var(--brand-secondary-800);
  --brand-secondary-border:var(--brand-secondary-600);
  --brand-tertiary:var(--brand-tertiary-700);
  --brand-tertiary-hover:var(--brand-tertiary-800);
  --brand-tertiary-pressed:var(--brand-tertiary-900);
  --brand-tertiary-on:var(--white);
  --brand-tertiary-subtle:var(--brand-tertiary-50);
  --brand-tertiary-muted:var(--brand-tertiary-100);
  --brand-tertiary-text:var(--brand-tertiary-800);
  --brand-tertiary-border:var(--brand-tertiary-600);
  --fg-brand-primary:var(--brand-primary-text); --fg-brand-secondary:var(--brand-secondary-text); --fg-brand-tertiary:var(--brand-tertiary-text);
  --accent:var(--brand-primary); --accent-hover:var(--brand-primary-hover); --accent-pressed:var(--brand-primary-pressed);
  --accent-fg:var(--brand-primary-on); --accent-subtle:var(--brand-primary-muted);
  --danger:var(--status-danger-light); --danger-bg:var(--status-danger-light-bg);
  --success:var(--status-success-light); --success-bg:var(--status-success-light-bg);
  --warning:var(--status-warning-light); --warning-bg:var(--status-warning-light-bg);
  --info:var(--status-info-light); --info-bg:var(--status-info-light-bg);
  --focus:var(--status-info-light); --scrim:#000000b3;
  --font-body:'Plus Jakarta Sans','Avenir Next',sans-serif; --font-display:var(--font-body); --font-mono:ui-monospace,monospace;
  --text-xs:.75rem; --text-sm:.875rem; --text-md:1rem;
  --text-body-lg:1.125rem; --text-lg:1.25rem; --text-xl:1.5rem;
  --text-2xl:2rem; --text-3xl:2.25rem; --text-4xl:2.5rem;
  --text-5xl:3rem; --text-6xl:3.75rem; --text-7xl:4.5rem; --text-8xl:6rem;
  --line-height-tight:1.1; --line-height-snug:1.25;
  --line-height-normal:1.5; --line-height-relaxed:1.75;
  --line-height:var(--line-height-normal); --letter-spacing:0;
  --weight-regular:400; --weight-medium:500; --weight-bold:700;
  --space-1:.25rem; --space-2:.5rem; --space-3:.75rem; --space-4:1rem; --space-5:1.25rem;
  --space-6:1.5rem; --space-8:2rem; --space-10:2.5rem; --space-12:3rem; --space-16:4rem; --space-20:5rem;
  --radius-sm:.375rem; --radius-md:.75rem; --radius-lg:1.25rem; --radius-full:999px;
  --border-width:1px; --focus-width:3px; --focus-offset:3px;
  --shadow-sm:0 2px 8px #0000000a; --shadow-lg:0 16px 48px #00000024;
  --control-sm:2rem; --control-md:2.5rem; --control-lg:3rem; --touch-target:2.75rem;
  --content-sm:28rem; --content-md:48rem; --content-lg:76rem;
  --motion-fast:140ms; --motion-normal:220ms; --ease:cubic-bezier(.2,.8,.2,1);
  --layer-sticky:10; --layer-overlay:30; --nav-height:4.5rem;
  color-scheme:light;
  /* AncestoriesXR site typography: every size, weight, leading and tracking the product pages use. */
  --letter-spacing-0:0;
  --letter-spacing-mp005em:-.005em;
  --letter-spacing-mp012em:-.012em;
  --letter-spacing-mp01em:-.01em;
  --letter-spacing-p005em:.005em;
  --letter-spacing-p01em:.01em;
  --letter-spacing-p04em:.04em;
  --letter-spacing-p06em:.06em;
  --letter-spacing-p08em:.08em;
  --letter-spacing-p14em:.14em;
  --letter-spacing-p1em:.1em;
  --line-height-1:1;
  --line-height-1p02:1.02;
  --line-height-1p04:1.04;
  --line-height-1p05:1.05;
  --line-height-1p06:1.06;
  --line-height-1p1:1.1;
  --line-height-1p12:1.12;
  --line-height-1p15:1.15;
  --line-height-1p2:1.2;
  --line-height-1p25:1.25;
  --line-height-1p3:1.3;
  --line-height-1p35:1.35;
  --line-height-1p4:1.4;
  --line-height-1p45:1.45;
  --line-height-1p5:1.5;
  --line-height-1p55:1.55;
  --line-height-1p6:1.6;
  --line-height-1p65:1.65;
  --line-height-p9:.9;
  --text-11px:11px;
  --text-12px:12px;
  --text-16px:16px;
  --text-1p0625rem:1.0625rem;
  --text-1p125rem:1.125rem;
  --text-1p1875rem:1.1875rem;
  --text-1p25rem:1.25rem;
  --text-1p375rem:1.375rem;
  --text-1p45rem:1.45rem;
  --text-1p4rem:1.4rem;
  --text-1p5rem:1.5rem;
  --text-1p625rem:1.625rem;
  --text-1p75rem:1.75rem;
  --text-1p7rem:1.7rem;
  --text-1p95rem:1.95rem;
  --text-1p9rem:1.9rem;
  --text-1rem:1rem;
  --text-28px:28px;
  --text-2p25rem:2.25rem;
  --text-2rem:2rem;
  --text-3p25rem:3.25rem;
  --text-3p5rem:3.5rem;
  --text-42px:42px;
  --text-4rem:4rem;
  --text-fluid-1:calc(100% * var(--scale));
  --text-fluid-10:clamp(2.5rem,1.3rem + 5vw,4.75rem);
  --text-fluid-11:clamp(1.0625rem,1rem + .3vw,1.25rem);
  --text-fluid-12:clamp(1.5rem,1.2rem + 1vw,2rem);
  --text-fluid-13:clamp(1.0625rem,.95rem + .4vw,1.25rem);
  --text-fluid-14:clamp(1.75rem,8vw,2.25rem);
  --text-fluid-15:clamp(2rem,1.5rem + 1.8vw,2.75rem);
  --text-fluid-16:clamp(1.5rem,1.25rem + .8vw,1.875rem);
  --text-fluid-17:clamp(1.375rem,1.1rem + .7vw,1.75rem);
  --text-fluid-18:clamp(1.0625rem,.95rem + .5vw,1.3125rem);
  --text-fluid-19:clamp(3.5rem,2.5rem + 3vw,5rem);
  --text-fluid-2:clamp(1.75rem,8.4vw,5rem);
  --text-fluid-20:clamp(1.75rem,1.1rem + 2.6vw,3rem);
  --text-fluid-21:clamp(2rem,1.2rem + 2.2vw,3.25rem);
  --text-fluid-22:clamp(2.25rem,1.6rem + 2.2vw,3rem);
  --text-fluid-23:clamp(2.25rem,1.6rem + 2.2vw,3.25rem);
  --text-fluid-24:clamp(1.5rem,1.1rem + 1.2vw,2.25rem);
  --text-fluid-25:clamp(1.75rem,1.4rem + 1.2vw,2.5rem);
  --text-fluid-26:clamp(1.625rem,1.3rem + 1vw,2.25rem);
  --text-fluid-27:clamp(1.875rem,1.4rem + 1.6vw,2.5rem);
  --text-fluid-3:clamp(2.25rem,1.6rem + 2.4vw,3.5rem);
  --text-fluid-4:clamp(1.625rem,1.1rem + 1.5vw,2.25rem);
  --text-fluid-5:clamp(2.25rem,1.3rem + 3.6vw,4rem);
  --text-fluid-6:clamp(2rem,1.2rem + 2.6vw,3.25rem);
  --text-fluid-7:clamp(2.25rem,1.2rem + 2.8vw,3.75rem);
  --text-fluid-8:clamp(2.5rem,1.2rem + 5vw,5rem);
  --text-fluid-9:clamp(2.25rem,1.2rem + 4vw,4rem);
  --text-p6875rem:.6875rem;
  --text-p72em:.72em;
  --text-p75rem:.75rem;
  --text-p8125rem:.8125rem;
  --text-p875rem:.875rem;
  --text-p9375rem:.9375rem;
  --text-p9rem:.9rem;
  --weight-400:400;
  --weight-500:500;
  --weight-600:600;
  --weight-700:700;
}
:root[data-theme="dark"] {
  --bg:#1c1c1c; --bg-subtle:#171717; --bg-muted:#262626; --bg-inverse:var(--neutral-100);
  --fg:#ededed; --fg-secondary:#d4d4d4; --fg-muted:#b4b4b4; --fg-subtle:#a3a3a3;
  --fg-placeholder:#a3a3a3; --fg-disabled:#737373; --fg-inverse:var(--neutral-950);
  --border:#333333; --border-strong:#737373;
  --brand-primary:var(--brand-primary-400);
  --brand-primary-hover:var(--brand-primary-300);
  --brand-primary-pressed:var(--brand-primary-500);
  --brand-primary-on:var(--brand-primary-950);
  --brand-primary-subtle:var(--brand-primary-950);
  --brand-primary-muted:var(--brand-primary-900);
  --brand-primary-text:var(--brand-primary-200);
  --brand-primary-border:var(--brand-primary-400);
  --brand-secondary:var(--brand-secondary-300);
  --brand-secondary-hover:var(--brand-secondary-200);
  --brand-secondary-pressed:var(--brand-secondary-400);
  --brand-secondary-on:var(--brand-secondary-950);
  --brand-secondary-subtle:var(--brand-secondary-950);
  --brand-secondary-muted:var(--brand-secondary-900);
  --brand-secondary-text:var(--brand-secondary-200);
  --brand-secondary-border:var(--brand-secondary-400);
  --brand-tertiary:var(--brand-tertiary-300);
  --brand-tertiary-hover:var(--brand-tertiary-200);
  --brand-tertiary-pressed:var(--brand-tertiary-400);
  --brand-tertiary-on:var(--brand-tertiary-950);
  --brand-tertiary-subtle:var(--brand-tertiary-950);
  --brand-tertiary-muted:var(--brand-tertiary-900);
  --brand-tertiary-text:var(--brand-tertiary-200);
  --brand-tertiary-border:var(--brand-tertiary-400);
  --danger:var(--status-danger-dark); --danger-bg:var(--status-danger-dark-bg);
  --success:var(--status-success-dark); --success-bg:var(--status-success-dark-bg);
  --warning:var(--status-warning-dark); --warning-bg:var(--status-warning-dark-bg);
  --info:var(--status-info-dark); --info-bg:var(--status-info-dark-bg);
  --focus:var(--status-info-dark);
  --shadow-sm:0 2px 8px #0003; --shadow-lg:0 16px 48px #0006;
  color-scheme:dark;
}
@media (prefers-color-scheme:dark) {
  :root:not([data-theme]) {
    --bg:#1c1c1c; --bg-subtle:#171717; --bg-muted:#262626; --bg-inverse:var(--neutral-100);
    --fg:#ededed; --fg-secondary:#d4d4d4; --fg-muted:#b4b4b4; --fg-subtle:#a3a3a3;
    --fg-placeholder:#a3a3a3; --fg-disabled:#737373; --fg-inverse:var(--neutral-950);
    --border:#333333; --border-strong:#737373;
    --brand-primary:var(--brand-primary-400);
    --brand-primary-hover:var(--brand-primary-300);
    --brand-primary-pressed:var(--brand-primary-500);
    --brand-primary-on:var(--brand-primary-950);
    --brand-primary-subtle:var(--brand-primary-950);
    --brand-primary-muted:var(--brand-primary-900);
    --brand-primary-text:var(--brand-primary-200);
    --brand-primary-border:var(--brand-primary-400);
    --brand-secondary:var(--brand-secondary-300);
    --brand-secondary-hover:var(--brand-secondary-200);
    --brand-secondary-pressed:var(--brand-secondary-400);
    --brand-secondary-on:var(--brand-secondary-950);
    --brand-secondary-subtle:var(--brand-secondary-950);
    --brand-secondary-muted:var(--brand-secondary-900);
    --brand-secondary-text:var(--brand-secondary-200);
    --brand-secondary-border:var(--brand-secondary-400);
    --brand-tertiary:var(--brand-tertiary-300);
    --brand-tertiary-hover:var(--brand-tertiary-200);
    --brand-tertiary-pressed:var(--brand-tertiary-400);
    --brand-tertiary-on:var(--brand-tertiary-950);
    --brand-tertiary-subtle:var(--brand-tertiary-950);
    --brand-tertiary-muted:var(--brand-tertiary-900);
    --brand-tertiary-text:var(--brand-tertiary-200);
    --brand-tertiary-border:var(--brand-tertiary-400);
    --danger:var(--status-danger-dark); --danger-bg:var(--status-danger-dark-bg);
    --success:var(--status-success-dark); --success-bg:var(--status-success-dark-bg);
    --warning:var(--status-warning-dark); --warning-bg:var(--status-warning-dark-bg);
    --info:var(--status-info-dark); --info-bg:var(--status-info-dark-bg);
    --focus:var(--status-info-dark);
    --shadow-sm:0 2px 8px #0003; --shadow-lg:0 16px 48px #0006;
    color-scheme:dark;
  }
}
