/* ============================================================================
   HEARTH pairing P2A — "Warm paper, cool signals" · editorial · quiet
   APPLIED TO THE PUBLIC SITE
   ----------------------------------------------------------------------------
   Owner call 2026-08-30bi (tracker §13 row 85 · study record §6a-xxvii). Source of
   every value below:
     ui_kits/Helix-Counter-Brand-And-Surfaces-Handoff/pairings/tokens/P2A-warm-paper-cool-signals.css
   Values are TRANSCRIBED from that sheet, not re-derived. Do not "improve" one here —
   change the study sheet and re-transcribe, or the two silently diverge.

   ✅ THE TYPE HALF IS NOW APPLIED (2026-08-30bq, §13 row 88 leg ① — owner: "go ahead and
   vendor the fonts"). **Newsreader** and **Hanken Grotesk** are vendored as SIL OFL 1.1
   latin-subset variable woff2 in `fonts/`, declared in the root `fonts.css`, so this sheet
   sets `--font-display` and `--font-sans` from the study spec. ⛔ The Google-Fonts `@import`
   in the study sheet is STILL not copied and never will be — the repo bans a remote font
   outright (check.sh guard 1); vendoring is what made the token settable.
   ⚠ `--font-mono` is deliberately NOT set: P2A names JetBrains Mono, which IS the canon's
   mono already, and the canon's fallback stack is richer than the study sheet's. Setting it
   would narrow the stack for no gain.
   ⚠ `--font-display-weight: 400` from the study sheet is also NOT set — measured, that token
   has ZERO consumers anywhere in the tree, so it would be a declaration nothing reads.

   ⛔ THE 9 `--signal-*` TOKENS ARE DELIBERATELY OMITTED. Measured 2026-08-30bi: ZERO
   consumers across ui_kits/public-site, and the canon does not define them. The site
   already carries that layer as `--sev-*` / `--status-*` — 48 consumer references here —
   which P2A correctly leaves alone ("severity and status keep their own hues in every
   direction"). Their values live in the study sheet if that layer is ever wired.
   ⚠ NOTE THE ONE REAL LOSS: P2A's stated character is that cool signals "free clay to
   mean failure", and its `--signal-failure: #A94E2E` IS clay. That re-assignment lands
   only when the signal layer is wired; today failure still reads from `--sev-*`.

   ⚠ GROUND CHANGE, CHECKED: canon canvas #F6F1E7 → #FAF8F4 (a cooler, lighter paper).
   All eight severity/status inks re-measured against the new grounds and all pass —
   5.01 → 7.41 on canvas, 5.31 → 7.41 on surface, none below AA 4.5:1. The site's own
   text inks as APPLIED: 16.87 (text) / 6.97 (secondary) on canvas, and the canon's muted
   #6D6355 at 5.55 — see the muted note in the block below, the one token that deviates.
   Guarded from here on — this file is in `hearth-contrast-audit.py`'s APPLIED_PAIRINGS
   set, which re-checks every canon severity ink against the grounds this sheet moved, so
   a future edit that breaks a pair fails check.sh instead of shipping.

   ⚠ DARK THEME IS NOT ADDRESSED AND DOES NOT NEED TO BE. All 17 public-site pages are
   hard-coded `<html data-theme="light">` (site.js:54 says so explicitly), so the canon's
   `:root[data-theme="dark"]` block and its `prefers-color-scheme` twin (guarded
   `:root:not([data-theme="light"])`) never match. If the site ever gains a dark mode,
   `:root[data-theme="dark"]` outranks this file's plain `:root` and it falls back to the
   canon dark — deliberately. P2A's own dark counterpart is **P2C · Ink base, signals
   only**, in the same study directory.

   ⚠ NOT LINKED FROM `motion-lab.html` — that page deliberately links no external
   stylesheet and is self-contained by design. 16 of the 17 pages carry this.

   LOAD ORDER MATTERS: must come AFTER colors_and_type.css, which redefines 14 of these
   token names. The pages link it after hearth-components.css; site.css / site-v2.css /
   site-motion.css define no tokens of their own (measured: 0), so nothing downstream
   re-overrides these.
   ============================================================================ */

:root {
  /* ---- ground + ink: warm paper ---------------------------------------- */
  --hearth-canvas:        #FAF8F4;
  --hearth-surface:       #FFFFFF;
  --hearth-raised:        #FFFFFF;
  --hearth-sunken:        #F1EEE8;

  --hearth-border:        #E7E3DB;
  --hearth-border-strong: color-mix(in srgb, #191713 14%, #FAF8F4);  /* = #DAD8D4 */
  --hearth-border-subtle: color-mix(in srgb, #191713  6%, #FAF8F4);  /* = #ECEAE6 */

  --hearth-text:           #191713;   /* 16.87:1 on canvas */
  --hearth-text-secondary: #5A554D;   /*  6.97:1 on canvas */
  /* ⛔ P2A's OWN muted ink #6E6A61 IS DELIBERATELY NOT APPLIED — the canon's #6D6355 stands.
     Measured 2026-08-30bi by `hearth-contrast-audit.py`'s APPLIED_PAIRINGS leg: #6E6A61 on the
     canon severity/status CHIP backgrounds bottoms out at 4.27:1, below AA 4.5 — this repo
     already holds a text ink to EVERY ground it can land on, and those chip fills are
     grounds. The canon ink clears all of them (worst 4.66) and reads 5.55:1 on this
     direction's #FAF8F4 canvas, so the deviation costs a barely-perceptible shift in one
     de-emphasised grey and buys back 4 failing pairs. ⚠ THIS IS THE ONE TOKEN OF THE 19
     THAT DEVIATES from the study sheet — every other value here is transcribed verbatim.
     Revisit it the day the severity chip fills are restated for this paper. */
  /* NON-TEXT ONLY — hairlines, dashed borders, dots. Never a text carrier
     (post-2026-08-28l canon; check.sh guard 26 enforces it). = #A3A099 */
  --hearth-text-faint:     color-mix(in srgb, #6E6A61 62%, #FAF8F4);
  --hearth-text-on-accent: #FFFFFF;

  /* ---- accent: ink holds the action, not a brand hue -------------------- */
  /* The direction's whole argument: keep the paper warm, take the colour OUT of the
     chrome, and let a coloured thing on screen always be carrying meaning. */
  --accent:           #191713;
  --accent-hover:     #191713;
  --accent-active:    #000000;
  --accent-solid-bg:  #191713;
  --accent-subtle-bg: #F1EEE8;
  --accent-text:      #191713;
  --accent-border:    #E0DCD4;

  /* ---- type: the study spec, now that both faces are self-hosted ------- */
  /* Fallbacks are the study sheet's own. Georgia/system-ui are what render in the
     swap window, so they are the shape the page briefly wears, not dead text. */
  --font-display: 'Newsreader', Georgia, serif;
  --font-sans:    'Hanken Grotesk', system-ui, sans-serif;

  color-scheme: light;
}
