/* public/shared/tokens.css — the brand palette, declared once.
 *
 * WHAT THIS REPLACES. Fifteen pages each carried their own :root with the same
 * six or seven colours in it. Six of them had drifted (docs/UX-AUDIT-2.0.md §F1,
 * measured 2026-08-23): --dim #5C5349, --chili #C81E1E, --pandan #166B49 —
 * three values that appear nowhere in docs/BRAND-GUIDE.md. Nothing went red for
 * six days, because qa/gate-a11y.mjs measures contrast and BOTH reds pass AA
 * (5.74 against 5.01), scripts/check-lint.mjs has no colour rule, and no guard
 * mentioned either hex. The defect was invisible to every instrument in the
 * build, which is the definition of the kind that comes back.
 *
 * head.css's own header said it best after the fact: sixteen copies were never
 * the avoidance of a second copy. They were the disease, and the file that
 * warned about it was one of them.
 *
 * THE VALUES ARE THE ARBITER'S RULING OF 2026-08-23: the marketing pages' set,
 * which is also the one docs/BRAND-GUIDE.md §Colour tabulates. tests/brand-
 * palette.mjs asserts each line below against the guide's own table, parsed —
 * so this file and the guide cannot disagree without something going red.
 *
 * ⚠️ A PAGE THAT LINKS THIS MUST NOT RE-DECLARE THESE TOKENS. That is not
 * style advice; it is the whole point, and tests/brand-palette.mjs enforces it
 * across every page discovered under public/. Add a page-specific colour to
 * that page's own :root, never a brand one.
 *
 * LINKED BEFORE the page's own stylesheet, so a page can still override a token
 * deliberately in a cascade a reader can see, rather than by accident. */
:root {
  /* Ground — 83% of the brand between them. */
  --bg: #FFFFFF;
  --cream: #FFF6E8;

  /* Ink and chili are 14%. Red is loud because it is rare: past roughly 10%,
     chili stops reading as an accent and starts reading as a warning. */
  --ink: #191410;
  --chili: #D62828;

  /* Everything below shares under 1.5%. */
  --kunyit: #F5B301;

  /* ── THE FOURTH BAND OF THE USAGE RING, AND IT IS NOT A TENTH COLOUR ──────
     Arbiter, 2026-08-27: the avatar fills as he spends, "green yellow orange
     then red". The brand has no orange, and docs/BRAND-HANDOFF.md:101 says so
     out loud -- "only the nine tokens above appear as colours -- no new hex".
     Both things are true at once, so this is neither an invention nor an
     exception: it is the yellow and the red this file already owns, mixed. No
     new hex enters the repo, there is one definition rather than a swatch
     somebody matched by eye, and if kunyit or chili is ever retuned the orange
     follows on its own instead of drifting away from the two it sits between.
     THE MIX IS THE ONLY DEFINITION HERE. It was written twice for a day -- a hex
     and then the mix over it -- and the hex was #E5701A, which is not what the
     mix computes to. It was chosen by eye, which is the exact thing this token
     exists to avoid, and tests/brand-palette.mjs caught it by refusing to accept
     a fallback naming a colour docs/BRAND-GUIDE.md does not have. The computed
     value now lives in the guide, once, where every other brand hex lives, and
     public/shared/head.js falls back to it. */
  --oren: color-mix(in oklab, var(--kunyit, #F5B301) 45%, var(--chili, #D62828) 55%);
  --dim: #6B6156;
  --pandan: #1F7A54;
  --wa: #25D366;

  /* Reserved. Declared so it has one value if it is ever used, rather than
     being invented twice on the day somebody reaches for it. */
  --sky: #4AA3E8;

  /* ── BODY COPY. NOT A TENTH BRAND COLOUR — A TENTH COLOUR THAT WAS ALREADY
     SHIPPING, UNNAMED, SIXTEEN TIMES OVER.
     docs/BRAND-GUIDE.md's table has nine rows and this is not one of them, and
     docs/BRAND-HANDOFF.md:101 says "only the nine tokens above appear as
     colours — no new hex". Both were true and the site disagreed with them
     anyway: the value below was the paragraph colour on six shipping pages,
     written as a bare hex every time — index 5, viral 4, diy 3, thanks 2,
     admin 1, 404 1. Sixteen literals, one of them inside an inline style=.
     The approved prototype has --copy for it; the shipping site did not even
     have that.
     NAMING IT DOES NOT DECIDE IT. It is 10.63 on white and 9.92 on cream, both
     AAA, so nothing was ever wrong with the colour — what was wrong was sixteen
     copies of it, which is the shape this whole file exists to end. Whether it
     should stay a token or fold into --ink/--dim is Part 01's call (Gillian):
     it is a different depth from --dim #6B6156, so it cannot simply be merged.
     docs/UX-AUDIT-2.0.md §H is the measurement; until that call is made, one
     declaration beats sixteen. */
  --copy: #463d33;
}
