@font-face{font-family:"Instrument Sans";src:url(/assets/fonts/InstrumentSans-latin.woff2) format("woff2");font-weight:400 700;font-style:normal;font-display:swap}
/* Design tokens. Light on :root, dark twice (system preference + data-theme). Page CSS uses only these. */
:root{
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);

  /* colour */
  --ink:#1C2B33; --on-ink:#FFFFFF; --slate:#35586B; --oak:#A8753F; --oak-soft:#F3E8DB; --oak-ink:#8A5E2E;
  --paper:#F6F7F8; --card:#FFFFFF; --sunk:#EEF1F3; --line:#E1E6E9; --line-strong:#D5DDE1; --line-faint:#C4CDD2;
  --muted:#5E6E77; --faint:#A0ADB4;
  --ok:#2F6B4F; --ok-soft:#E6F0EA; --err:#B3261E; --err-soft:#FBEAE8; --warn:#C98A00;
  --coach-bg:#1C2B33; --coach-text:#D3DBE0; --coach-accent:#E2C4A0;
  --scrim:rgba(16,24,28,.45);
  --focus:var(--slate);
  --draw:#35586B; --door:var(--oak); --win:#6FA8C7;
  --canvas:#FBFCFC; --floor:#F7EFE5;
  --grid:rgba(53,88,107,.10); --grid-2:rgba(53,88,107,.05);

  /* type */
  --font:"Instrument Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --fs-display:32px; --fs-title:28px; --fs-q:22px; --fs-h:19px; --fs-body:16px; --fs-ui:15px;
  --fs-small:14px; --fs-xs:13px; --fs-label:12px;
  --fw-regular:400; --fw-medium:500; --fw-semi:600; --fw-bold:650; --fw-heavy:700;
  --lh:1.5; --lh-tight:1.15; --track-label:.06em; --track-title:-.02em;

  /* spacing */
  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:24px; --sp-6:32px; --sp-7:48px; --sp-8:64px;

  /* radius */
  --r-sm:8px; --r-control:10px; --r-card:12px; --r-panel:16px; --r-sheet:20px; --r-pill:999px;

  /* shadow */
  --shadow:0 1px 2px rgba(20,35,45,.05),0 4px 14px rgba(20,35,45,.06);
  --shadow-raise:0 4px 18px rgba(20,35,45,.06);
  --shadow-seg:0 1px 2px rgba(20,35,45,.12);
  --shadow-pop:0 12px 32px rgba(20,35,45,.14);
  --shadow-coach:0 16px 40px rgba(0,0,0,.3);
  --ring:0 0 0 3px color-mix(in srgb,var(--focus) 25%,transparent);

  /* sizes */
  --tap:44px; --tap-sm:36px; --bar-h:64px; --actionbar-h:80px;
  --chat-w:clamp(320px,26vw,360px); --content-w:760px; --rail-w:220px; --pad:clamp(16px,4vw,96px);

  /* motion */
  --dur-fast:.15s; --dur:.2s; --ease:cubic-bezier(.2,.7,.2,1);

  /* z-index */
  --z-float:20; --z-bar:30; --z-fab:40; --z-scrim:45; --z-drawer:50; --z-menu:60; --z-tour:80; --z-toast:90;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --ink:#E6ECEF; --on-ink:#10181C; --slate:#8FB4C7; --oak:#D9A46A; --oak-soft:#2E2519; --oak-ink:#E2C4A0;
    --paper:#10181C; --card:#18242A; --sunk:#22313A; --line:#2C3C44; --line-strong:#3A4B54; --line-faint:#4A5C66;
    --muted:#9AAAB2; --faint:#6B7C85;
    --ok:#7FC4A0; --ok-soft:#1B2E25; --err:#F2B8B5; --err-soft:#3A1E1C; --warn:#E0B04A;
    --coach-bg:#0B1215; --scrim:rgba(0,0,0,.6);
    --draw:#9CC0D2; --win:#8FC3DD; --canvas:#141E23; --floor:#222019;
    --grid:rgba(156,192,210,.12); --grid-2:rgba(156,192,210,.06);
    --shadow:0 1px 2px rgba(0,0,0,.35),0 4px 14px rgba(0,0,0,.35);
    --shadow-raise:0 4px 18px rgba(0,0,0,.35);
    --shadow-seg:0 1px 2px rgba(0,0,0,.5);
    --shadow-pop:0 12px 32px rgba(0,0,0,.5);
  }
}
:root[data-theme="dark"]{
  --ink:#E6ECEF; --on-ink:#10181C; --slate:#8FB4C7; --oak:#D9A46A; --oak-soft:#2E2519; --oak-ink:#E2C4A0;
  --paper:#10181C; --card:#18242A; --sunk:#22313A; --line:#2C3C44; --line-strong:#3A4B54; --line-faint:#4A5C66;
  --muted:#9AAAB2; --faint:#6B7C85;
  --ok:#7FC4A0; --ok-soft:#1B2E25; --err:#F2B8B5; --err-soft:#3A1E1C; --warn:#E0B04A;
  --coach-bg:#0B1215; --scrim:rgba(0,0,0,.6);
  --draw:#9CC0D2; --win:#8FC3DD; --canvas:#141E23; --floor:#222019;
  --grid:rgba(156,192,210,.12); --grid-2:rgba(156,192,210,.06);
  --shadow:0 1px 2px rgba(0,0,0,.35),0 4px 14px rgba(0,0,0,.35);
  --shadow-raise:0 4px 18px rgba(0,0,0,.35);
  --shadow-seg:0 1px 2px rgba(0,0,0,.5);
  --shadow-pop:0 12px 32px rgba(0,0,0,.5);
}
@media (prefers-reduced-motion: reduce){
  :root{--dur-fast:0s; --dur:0s}
}
