/* The QOR design tokens (T-116 §1.1, extended by T-119 §1.1) — the ONE :root
   custom-property layer the shell + every UI component consume. Loaded BEFORE
   shell.css everywhere shell.css loads (the /app head AND the welcome head), and
   part of the T-112 shell contract (SW precache + shell-version hash) so a
   tokens-only edit rolls the cache name.

   WARM LIGHT register (founder ruling at the T-116 gate, 2026-07-13): §3.8 applied
   as STRUCTURE — paper/ink/muted/line + the amber & pine accents, a spacing scale,
   a type scale, radii, and the serif/system font stacks. T-119 (founder-pulled
   2026-07-14) adds the editorial layer's derived values: the raised/wash grounds,
   the strong rule, the hover amber, the one focus ring, the overline voice, and
   the reading measure type. qor.domain never sees a token. No dark palette here —
   the tokens make dark POSSIBLE later; building it now would be skin beyond the
   T-119 fence. */

:root {
  /* ── the warm-light palette (§3.8) ──────────────────────────────────────── */
  --paper: #FBFAF6;   /* the page ground */
  --ink:   #262319;   /* body text */
  --muted: #6F6857;   /* secondary text, calm refusals */
  --line:  #E4E0D2;   /* hairlines, card + field borders */
  --amber: #8C6210;   /* the accent — links, primary action (5.2:1 on paper — WCAG AA body text) */
  --pine:  #3E6B54;   /* the quiet second accent — success/affirmation */

  /* ── the T-119 derived values (§1.1) ────────────────────────────────────── */
  --paper-raised: #FFFFFF;                 /* cards, inputs, toasts — one step off the paper */
  --wash:         #F3EFE3;                 /* working-surface fill, hover fill, selected pill */
  --line-strong:  #D8D2BE;                 /* emphasized rules: quote rail, working borders  */
  --amber-deep:   #6F4D0C;                 /* hover state of amber actions/links             */
  --ring:         rgba(140, 98, 16, 0.22); /* the one focus ring (amber at 22%)              */
  --shadow-soft:  0 1px 3px rgba(38, 35, 25, 0.08), 0 4px 16px rgba(38, 35, 25, 0.06);
  --ease:         120ms ease-out;          /* color/border/background only, ever             */

  /* ── spacing scale (§1.1: 4/8/12/16/24/32/48) ───────────────────────────── */
  --s1: 4px;
  --s2: 8px;
  --s3: 12px;
  --s4: 16px;
  --s5: 24px;
  --s6: 32px;
  --s7: 48px;

  /* ── type scale (T-119: the editorial register — confident, not shouty) ─── */
  --text-sm:   0.9rem;
  --text-base: 1rem;
  --text-lg:   1.15rem;
  --step-1:    1.2rem;    /* h3 */
  --step-2:    1.45rem;   /* h2, the wordmark */
  --step-3:    1.9rem;    /* h1, the publication title */
  --leading:   1.5;
  --leading-tight: 1.2;

  /* the reading voice: serif bodies on reading surfaces (T-119 §1.1) */
  --text-reading:    1.05rem;
  --leading-reading: 1.65;

  /* the overline: the meta voice (T-119 §1 move 2) — dates, states, labels */
  --overline-size: 0.72rem;
  --overline-ls:   0.08em;

  /* ── radius ─────────────────────────────────────────────────────────────── */
  --radius:    6px;
  --radius-sm: 4px;

  /* ── font stacks (§1.1: serif for reading, system for chrome) ─────────────
     Iowan-first (T-119 §1.1): every name is system-resident — nothing is
     fetched; the reader's inline stack mirrors this order by hand. */
  --font-serif:  'Iowan Old Style', Georgia, 'Palatino Linotype', 'Times New Roman', Times, serif;
  --font-system: system-ui, -apple-system, Segoe UI, Roboto, sans-serif;

  /* ── layout constants ───────────────────────────────────────────────────── */
  --measure: 40rem;   /* the single-column reading measure */
  --tap:     44px;    /* the minimum tap target (T-112 §1.4) */
}
