/* ─────────────────────────────────────────────────────────────
   DO NOT EDIT — generated from brand/tokens.json by brand/build-tokens.py

   Shared palette + font families. Radius and any app-local scale stay
   in the app's own stylesheet; colour and type are shared from here.
   ───────────────────────────────────────────────────────────── */
:root {
  --paper: #FAF9F7;
  --paper-tint: #F2F0EC;
  --surface-raised: #FFFFFF;
  --hatch-a: #F1EFEB;
  --hatch-b: #E6E3DD;
  --line: #E2DFD9;
  --line-soft: #E9E6E0;
  --line-chip: #DCD8D1;
  --ink: #14171A;
  --ink-body: #3E3C37;
  --ink-2: #4A4842;
  --ink-muted: #6B6862;
  --ink-faint: #6B6862;
  --accent: #9C2B22;
  --link: #23415C;
  --link-hover: #152838;
  --link-tint: #DCE6F0;
  --correct: #0F5130;
  --wrong: #9A4180;
  --warning: #8A6A00;
  --on-ink: #FAF9F7;
  --on-accent: #FAF9F7;
  --on-correct: #FAF9F7;
  --on-wrong: #FAF9F7;
  --band-novice: #2F6E8F;
  --band-a: #3C6E4A;
  --band-b: #8A6A00;
  --band-c: #8C3A2E;
  --hairline-weak: rgba(20,23,26,.08);
  --hairline: rgba(20,23,26,.12);
  --hairline-strong: rgba(20,23,26,.14);
  --border: rgba(20,23,26,.18);
  --border-strong: rgba(20,23,26,.24);

  /* type — families from tokens.json. Load the faces with:
     <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Noto+Sans+TC:wght@400;500;600;700&family=Ma+Shan+Zheng&display=swap"> */
  --text: 'Noto Sans TC', system-ui, -apple-system, sans-serif;
  --display: 'Space Grotesk', var(--text);
  --brush: 'Ma Shan Zheng', var(--text);
  /* legacy aliases — all resolve to --text so existing rules need not change */
  --serif: var(--text);
  --sans: var(--text);
  --mono: var(--text);
  --han: var(--text);
}

@media (prefers-color-scheme: dark) {
  :root {
    --paper: #14171A;
    --paper-tint: #1C1F23;
    --surface-raised: #24272C;
    --hatch-a: #1C1F23;
    --hatch-b: #2A2E33;
    --line: #2A2E33;
    --line-soft: #23272B;
    --line-chip: #343941;
    --ink: #FAF9F7;
    --ink-body: #E4E1DB;
    --ink-2: #C9C5BE;
    --ink-muted: #A8A49C;
    --ink-faint: #8A857D;
    --accent: #E8796A;
    --link: #9CC0E0;
    --link-hover: #C4DAEE;
    --link-tint: #22303F;
    --correct: #6FE39B;
    --wrong: #D07FBB;
    --warning: #EDBB00;
    --on-ink: #14171A;
    --on-accent: #14171A;
    --on-correct: #14171A;
    --on-wrong: #14171A;
    --band-novice: #7FC4E4;
    --band-a: #8CC79C;
    --band-b: #E0C05A;
    --band-c: #DE9585;
    --hairline-weak: rgba(250,249,247,.08);
    --hairline: rgba(250,249,247,.12);
    --hairline-strong: rgba(250,249,247,.14);
    --border: rgba(250,249,247,.18);
    --border-strong: rgba(250,249,247,.24);
  }
}
