/* ─────────────────────────────────────────────────────────────────────────
   TOKENS — the single source for colour, type, spacing, rule width.
   Linked by every screen. Change a value here and it propagates.
   Derived from the Modernist system: same warm neutral axis, same #ec3013
   accent family, radius still 0. Inverted for the dark default.
   ───────────────────────────────────────────────────────────────────── */
:root{
  --bg:#161514;
  --surface:#1e1c1b;
  --surface-2:#2d2b2b;
  --ink:#f3f2f2;
  --ink-2:#bab6b6;
  --ink-3:#7d7979;
  --hair:rgba(243,242,242,.14);
  --hair-strong:rgba(243,242,242,.30);
  --rule:2px;
  --signal:#ff563c;
  --signal-hi:#ff9783;
  --signal-deep:#ae1800;
  --signal-wash:rgba(255,86,60,.14);
  --font-ui:"Archivo",system-ui,sans-serif;
  --font-read:"Crimson Pro",Georgia,serif;
  --font-mono:"JetBrains Mono",ui-monospace,Menlo,monospace;
  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s6:24px; --s8:32px;
  --s12:48px; --s16:64px; --s24:96px;
  --radius:0px;
  --measure:34em;
}
/* Light reading mode — the same tokens, flipped. Scoped by one attribute,
   never a second system. */
[data-mode="light"]{
  --bg:#f3f2f2; --surface:#eae9e9; --surface-2:#ded9d9;
  --ink:#201e1d; --ink-2:#605d5d; --ink-3:#9b9797;
  --hair:rgba(32,30,29,.16); --hair-strong:rgba(32,30,29,.34);
  --signal:#ae1800; --signal-hi:#dd2b0f; --signal-wash:rgba(236,48,19,.10);
}
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:var(--font-ui); font-size:15px; line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
a{color:var(--signal);text-decoration:none}
a:hover{color:var(--signal-hi);text-decoration:underline;text-underline-offset:3px}
:focus-visible{outline:2px solid var(--signal);outline-offset:2px}
::selection{background:var(--signal-wash)}
@keyframes panelIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes shimmer{0%{opacity:.35}50%{opacity:.8}100%{opacity:.35}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
