/* COPIED, DO NOT EDIT HERE.
 * Source:        cs-jdoner-me/site/_shared/tokens-b.css
 * Source sha256: cadb3c5097012cd48a5a9a3cfd74212ef98bb7f22688ad504462f2ad68636ff0
 * Source mtime:  2026-08-20 10:21:07 PDT
 *
 * The source repo is the one place this file is edited. This copy exists so the
 * prototype runs standalone. To refresh it, copy the source again and update the
 * three lines above. If the hash above stops matching the source, this copy is stale.
 */
/* tokens-b.css -- GENERATED. Do not edit.
 *
 * Source:    site/_shared/tokens.json
 * Generator: scripts/build-tokens.py
 * Stamped into every Family B page by scripts/sync-shared.py.
 *
 * To change a colour: edit tokens.json, then run
 *     python3 scripts/build-tokens.py && python3 scripts/sync-shared.py
 *
 * Two layers. A role token (--accent, --danger) says what the colour is FOR.
 * A legacy alias (--teal, --red) is the old colour-named token, kept so existing
 * pages keep working; prefer the role name in new work.
 */
:root{
  /* ---- light ---- */
  --bg:#f5f6f8;               /* page background */
  --surface-1:#ffffff;        /* raised surface */
  --surface-2:#ffffff;        /* raised surface, second level */
  --surface-3:#eef0f4;        /* raised surface, third level */
  --text:#12151c;             /* body text */
  --muted:#525a68;            /* secondary text */
  --faint:#6b7280;            /* tertiary text, still AA on bg */
  --border:#d8dce3;           /* hairline */
  --border-strong:#c6ccd6;    /* emphasised hairline */
  --accent:#0c6b62;           /* primary accent, the one colour the eye should land on */
  --accent-soft:rgba(13,148,136,0.10); /* accent at low alpha, for fills */
  --accent-line:rgba(13,148,136,0.42); /* accent at mid alpha, for rules */
  --warning:#8a5e0c;          /* caution, not failure */
  --warning-soft:rgba(176,125,18,0.10); /* warning fill */
  --warning-line:rgba(176,125,18,0.45); /* warning rule */
  --danger:#a10022;           /* error and EWU red */
  --danger-soft:rgba(161,0,34,0.07); /* danger fill */
  --highlight:#856010;        /* achievement and XP */
  --highlight-soft:rgba(154,116,20,0.10); /* highlight fill */
  --highlight-line:rgba(154,116,20,0.40); /* highlight rule */
  --neutral:#36615b;          /* low-emphasis chrome */
  --neutral-soft:rgba(63,111,104,0.07); /* neutral fill */
  --neutral-line:rgba(63,111,104,0.38); /* neutral rule */
  /* legacy colour-named aliases, deprecated: prefer the role token above */
  --teal:var(--accent);
  --teal-soft:var(--accent-soft);
  --teal-line:var(--accent-line);
  --amber:var(--warning);
  --amber-soft:var(--warning-soft);
  --amber-line:var(--warning-line);
  --red:var(--danger);
  --red-soft:var(--danger-soft);
  --gold:var(--highlight);
  --gold-soft:var(--highlight-soft);
  --gold-line:var(--highlight-line);
  --altgray:var(--neutral);
  --altgray-soft:var(--neutral-soft);
  --altgray-line:var(--neutral-line);

  --maxw:760px;
  --radius:6px;
  --radius-sm:4px;
  --font-display:"Inter Tight",system-ui,sans-serif;
  --font-body:"Newsreader","Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;
  --font-mono:"IBM Plex Mono",ui-monospace,monospace;
}
html[data-theme="warm-dark"]{
  /* ---- warm-dark ---- */
  --bg:#15120e;               /* page background */
  --surface-1:#1c1812;        /* raised surface */
  --surface-2:#241f17;        /* raised surface, second level */
  --surface-3:#2e271d;        /* raised surface, third level */
  --text:#e6dccb;             /* body text */
  --muted:#b3a892;            /* secondary text */
  --faint:#8a8068;            /* tertiary text, still AA on bg */
  --border:#2c261c;           /* hairline */
  --border-strong:#3a3225;    /* emphasised hairline */
  --accent:#5bb3a6;           /* primary accent, the one colour the eye should land on */
  --accent-soft:rgba(91,179,166,0.10); /* accent at low alpha, for fills */
  --accent-line:rgba(91,179,166,0.38); /* accent at mid alpha, for rules */
  --warning:#d8a85a;          /* caution, not failure */
  --warning-soft:rgba(216,168,90,0.10); /* warning fill */
  --warning-line:rgba(216,168,90,0.40); /* warning rule */
  --danger:#e06c55;           /* error and EWU red */
  --danger-soft:rgba(224,108,85,0.12); /* danger fill */
  --highlight:#d8b15a;        /* achievement and XP */
  --highlight-soft:rgba(216,177,90,0.10); /* highlight fill */
  --highlight-line:rgba(216,177,90,0.38); /* highlight rule */
  --neutral:#9bb5ad;          /* low-emphasis chrome */
  --neutral-soft:rgba(155,181,173,0.09); /* neutral fill */
  --neutral-line:rgba(155,181,173,0.35); /* neutral rule */
  /* legacy colour-named aliases, deprecated: prefer the role token above */
  --teal:var(--accent);
  --teal-soft:var(--accent-soft);
  --teal-line:var(--accent-line);
  --amber:var(--warning);
  --amber-soft:var(--warning-soft);
  --amber-line:var(--warning-line);
  --red:var(--danger);
  --red-soft:var(--danger-soft);
  --gold:var(--highlight);
  --gold-soft:var(--highlight-soft);
  --gold-line:var(--highlight-line);
  --altgray:var(--neutral);
  --altgray-soft:var(--neutral-soft);
  --altgray-line:var(--neutral-line);
}
html[data-theme="cool-dark"]{
  /* ---- cool-dark ---- */
  --bg:#0a0b0e;               /* page background */
  --surface-1:#101218;        /* raised surface */
  --surface-2:#181b22;        /* raised surface, second level */
  --surface-3:#20242d;        /* raised surface, third level */
  --text:#eceef3;             /* body text */
  --muted:#a4abb8;            /* secondary text */
  --faint:#777e8b;            /* tertiary text, still AA on bg */
  --border:#21242d;           /* hairline */
  --border-strong:#2f343f;    /* emphasised hairline */
  --accent:#2dd4c0;           /* primary accent, the one colour the eye should land on */
  --accent-soft:rgba(45,212,192,0.12); /* accent at low alpha, for fills */
  --accent-line:rgba(45,212,192,0.40); /* accent at mid alpha, for rules */
  --warning:#e6a93c;          /* caution, not failure */
  --warning-soft:rgba(230,169,60,0.12); /* warning fill */
  --warning-line:rgba(230,169,60,0.40); /* warning rule */
  --danger:#ef5365;           /* error and EWU red */
  --danger-soft:rgba(239,83,101,0.14); /* danger fill */
  --highlight:#d8b15a;        /* achievement and XP */
  --highlight-soft:rgba(216,177,90,0.12); /* highlight fill */
  --highlight-line:rgba(216,177,90,0.38); /* highlight rule */
  --neutral:#8fb0aa;          /* low-emphasis chrome */
  --neutral-soft:rgba(143,176,170,0.10); /* neutral fill */
  --neutral-line:rgba(143,176,170,0.35); /* neutral rule */
  /* legacy colour-named aliases, deprecated: prefer the role token above */
  --teal:var(--accent);
  --teal-soft:var(--accent-soft);
  --teal-line:var(--accent-line);
  --amber:var(--warning);
  --amber-soft:var(--warning-soft);
  --amber-line:var(--warning-line);
  --red:var(--danger);
  --red-soft:var(--danger-soft);
  --gold:var(--highlight);
  --gold-soft:var(--highlight-soft);
  --gold-line:var(--highlight-line);
  --altgray:var(--neutral);
  --altgray-soft:var(--neutral-soft);
  --altgray-line:var(--neutral-line);
}
