/* ============================================================
   406-site-kit — THE TOKEN CONTRACT
   ============================================================
   Every site that consumes the kit copies this file into its own
   src/css/tokens.css and fills in REAL values. The chassis
   (css/chassis.css) is authored ONLY against these role names —
   it contains zero literal colors. Tokens are per-client and
   hand-picked; the chassis is shared and never re-authored.

   The constraints are deliberate. Each one kills a failure mode
   /design-review already grades on prospect sites:
     - exactly TWO font families        → no "4 fonts" finding
     - one accent family (4 values)     → no "19 colors" finding
     - 8 fixed type steps, no ad-hoc font-size
     - --accent-ink forces the "text on accent" answer up front

   Exceptions are allowed but must be DECLARED, e.g. MOB's 4-font
   brand:   /* KIT-EXCEPTION: fonts=4 — MOB brand, Gus 2026-07 * /
   The lint (scripts/lint-site-kit.py) passes declared exceptions
   and fails silent ones.

   The values below are the 406 flagship palette — they double as
   documentation of each role. REPLACE them per client.
   ============================================================ */

/* KIT-EXCEPTION: synthetic-weights=display — Marcellus ships one weight (400) by design; every chassis heading/brand rule is overridden to 400 in css/weights.css so nothing is synthesised. Gus 2026-09-06. */
:root {
  /* Onyx & Aurum Barbershop — direction 2 "Brushed Marcellus" (brand sheet, Gus 2026-09-06).
     DARK-FIRST site: the page ground is near-black, so "ink" here is the light text that sits on it
     (same convention as tlslicks-site / kalispell-trt). Contrast measured, not eyeballed:
     gold #C9A24B on #0E0D0B = 8.10:1 · ink #EFE7D3 on #0E0D0B = 15.76:1 · ink-soft #CFC6B2 = 11.45:1 ·
     muted #A39B88 on #0E0D0B = 7.03:1 (re-measured 2026-09-07; this comment read 8.2:1 until then).
     Re-assert with: python .claude/scripts/brandkit.py --selftest (vault). */

  /* ---- Surfaces ---- */
  --surface:        #0E0D0B;  /* page ground: warm near-black */
  --surface-alt:    #161412;  /* cards, raised panels */
  --surface-dark:   #0A0908;  /* header, footer, deeper bands */

  /* ---- Ink (text on the page ground) ---- */
  --ink:            #EFE7D3;  /* headings, primary body — warm bone */
  --ink-soft:       #CFC6B2;  /* secondary body */
  --ink-muted:      #A39B88;  /* captions, meta — 7.03:1 on --surface */

  /* ---- Text on dark bands (same ground family, kept explicit for the chassis) ---- */
  --on-dark:        #EFE7D3;
  --on-dark-muted:  rgba(239, 231, 211, 0.82);
  --on-dark-faint:  rgba(239, 231, 211, 0.64);

  /* ---- Lines ---- */
  --line:           rgba(239, 231, 211, 0.12);
  --line-on-dark:   rgba(239, 231, 211, 0.12);

  /* ---- Accent (ONE family: brushed gold) ---- */
  /* 2026-09-07: the gold moved #C8A951 -> #C9A24B. TL Slicks vacated this value the same day when
     its site was corrected to its own logo gold #F1BE17, and Gus preferred it to the original. The
     two shops now measure 30.8 dE apart, against 4.2 before. */
  --accent:         #C9A24B;  /* fills, kickers, hairline rules */
  --accent-hover:   #D7B260;  /* hover state of gold fills */
  --accent-deep:    #C9A24B;  /* gold AS TEXT on the dark ground — 8.10:1, no darkening needed on screen */
  --accent-ink:     #0E0D0B;  /* text ON a gold-filled element — 8.10:1 */
  /* NAME COLLISION, deliberate on both sides: the brand kit's `accent_ink` is the OPPOSITE role —
     the accent used AS TYPE, which here is --accent-deep. Kit accent_ink == site --accent-deep;
     kit has no name for this token. Crosswalk table: onyx-aurum/brand/design-system.md. */

  /* ---- Type (exactly two families) ---- */
  --display: "Marcellus", Georgia, "Times New Roman", serif;
  --body:    "Manrope", system-ui, -apple-system, "Segoe UI", sans-serif;

  /* ---- Type scale (8 steps; every non-clamp font-size snaps to one) ---- */
  --fs-100: 0.78rem;
  --fs-200: 0.9rem;
  --fs-300: 1rem;
  --fs-400: 1.0625rem;
  --fs-500: 1.125rem;
  --fs-600: 1.25rem;
  --fs-700: 1.5rem;
  --fs-800: 2rem;

  /* ---- Layout / feel ---- */
  --wrap:        1120px;
  --radius:      4px;    /* the brand is square-shouldered; hairlines carry structure, not rounded cards */
  --radius-btn:  2px;
  --shadow:      0 12px 40px rgb(0 0 0 / 0.45);
  --ease:        cubic-bezier(0.16, 1, 0.3, 1);
  --section-pad: clamp(4rem, 8vw, 7.5rem);
}
