/*!
 * Design tokens: the ONLY file that may contain a color literal, a raw radius, spacing step, type size or duration
 * (spec 8.1, A9). tests/site/tokens.test.mjs scans every other CSS, JS and template file, and dist/.
 *
 * Three layers:
 *   1. Palette primitives (--palette-*), light then dark. Components and the dark layer reference these by var().
 *   2. Semantic aliases (--surface-*, --text*, --link, --accent, --cta*, --rule*, --focus-*, --credit-*),
 *      plus the approved prototype names (--ink, --deep, ...) kept as aliases so the verbatim components port still reads.
 *      The dark layer (dark.css) re-points aliases only.
 *   3. Scales: radius, spacing, type sizes, width, motion, and the three font stacks.
 *
 * THE PRIVATE CLUB PALETTE (owner decision November 5, 2026, spec decision D35). Navy, champagne gold and ivory replaced
 * the Ledger's deep teal, brass and paper. The primitive NAMES were kept on purpose — "deep" is now navy, "brass" is
 * now champagne — so every component, the dark layer and the contrast pairs re-pointed in one edit to this file. The
 * Ledger values are in git history (tokens.css before D35) and in source/sfbl-ledger.html.
 *
 * This file is authored by hand since D35. Until then it was generated from the WordPress theme by
 * tests/site/tools/port-css.mjs, which is retired (tests/site/gates/retired/README.md).
 *
 * Decision D9 (2026-09-15) still holds: primitives + aliases declared once, so a repalette is a one-file edit.
 * site/assets/css/CONTRAST.md is regenerated from this file by `node site/tools/contrast.mjs --write`.
 */

:root {
  /* ---- 1. palette primitives ---- */
  --palette-brass: #A07E45;
  --palette-brass-a05: rgba(160,126,69,.05);
  --palette-brass-a07: rgba(160,126,69,.07);
  --palette-brass-a09: rgba(160,126,69,.09);
  --palette-brass-a40: rgba(160,126,69,.4);
  --palette-brass-a50: rgba(160,126,69,.5);
  --palette-brass-hover: #8C6D38;
  --palette-brass-lt-a09: rgba(201,169,110,.09);
  --palette-brass-lt-a10: rgba(201,169,110,.1);
  --palette-brass-lt-a14: rgba(201,169,110,.14);
  --palette-brass-lt-a16: rgba(201,169,110,.16);
  --palette-brass-lt-a22: rgba(201,169,110,.22);
  --palette-brass-lt-a30: rgba(201,169,110,.3);
  --palette-brass-lt-a50: rgba(201,169,110,.5);
  --palette-brass-lt-a60: rgba(201,169,110,.6);
  --palette-brass-lt-a85: rgba(201,169,110,.85);
  --palette-brass-text: #7A5C28; /* new; #A07E45 at 79% per channel; brass on paper was 3.74:1 for text. PERFORMANCE.md s3. */
  --palette-card: #FFFDF9;
  --palette-card-a95: rgba(255,253,249,.95);
  --palette-deep: #14213D;
  --palette-deep-2: #22335A;
  --palette-deep-a05: rgba(20,33,61,.05);
  --palette-deep-a08: rgba(20,33,61,.08);
  --palette-deep-a09: rgba(20,33,61,.09);
  --palette-deep-a28: rgba(20,33,61,.28);
  --palette-deep-a30: rgba(20,33,61,.3);
  --palette-footer: #0E172C;
  --palette-ink: #1B2236;
  --palette-ink-a08: rgba(27,34,54,.08);
  --palette-ink-a15: rgba(27,34,54,.15);
  --palette-ink-on-dark: #F4EFE6;
  --palette-ink-on-dark-a09: rgba(244,239,230,.09);
  --palette-ink-on-dark-a13: rgba(244,239,230,.13);
  --palette-ink-on-dark-a26: rgba(244,239,230,.26);
  --palette-ink-on-dark-a28: rgba(244,239,230,.28);
  --palette-ink-on-dark-a40: rgba(244,239,230,.4);
  --palette-ink-on-dark-a62: rgba(244,239,230,.62);
  --palette-ink-on-dark-a78: rgba(244,239,230,.78);
  --palette-ink-on-dark-a80: rgba(244,239,230,.8);
  --palette-missing: #A8321F;
  --palette-missing-a07: rgba(168,50,31,.07);
  --palette-missing-a45: rgba(168,50,31,.45);
  --palette-mist: #DCE1EC;
  --palette-mist-a50: rgba(220,225,236,.5);
  --palette-mist-a60: rgba(220,225,236,.6);
  --palette-mist-a62: rgba(220,225,236,.62);
  --palette-mist-a72: rgba(220,225,236,.72);
  --palette-mist-a80: rgba(220,225,236,.8);
  --palette-modal-bio: #2F3548;
  --palette-muted: #545A6E; /* approved #5C6A66; darkened 3% so body text clears 4.5:1 on sand (4.65). PERFORMANCE.md s3, decision D9. */
  --palette-on-brass: #121A30;
  --palette-paper: #FBF8F2;
  --palette-paper-a93: rgba(251,248,242,.93);
  --palette-placeholder: #8E94A6;
  --palette-prose: #343A4E;
  --palette-sand: #EFE8DA;
  --palette-shade-a55: rgba(10,16,32,.55);
  --palette-white: #FFFFFF;
  --palette-mono-122-a: hsl(122 34% 24%);
  --palette-mono-122-b: hsl(122 40% 14%);
  --palette-mono-14-a: hsl(14 34% 24%);
  --palette-mono-14-b: hsl(14 40% 14%);
  --palette-mono-168-a: hsl(168 34% 24%);
  --palette-mono-168-b: hsl(168 40% 14%);
  --palette-mono-186-a: hsl(186 34% 24%);
  --palette-mono-186-b: hsl(186 40% 14%);
  --palette-mono-196-a: hsl(196 34% 24%);
  --palette-mono-196-b: hsl(196 40% 14%);
  --palette-mono-200-a: hsl(200 34% 24%);
  --palette-mono-200-b: hsl(200 40% 14%);
  --palette-mono-212-a: hsl(212 34% 24%);
  --palette-mono-212-b: hsl(212 40% 14%);
  --palette-mono-228-a: hsl(228 34% 24%);
  --palette-mono-228-b: hsl(228 40% 14%);
  --palette-mono-262-a: hsl(262 34% 24%);
  --palette-mono-262-b: hsl(262 40% 14%);
  --palette-mono-28-a: hsl(28 34% 24%);
  --palette-mono-28-b: hsl(28 40% 14%);
  --palette-mono-280-a: hsl(280 34% 24%);
  --palette-mono-280-b: hsl(280 40% 14%);
  --palette-mono-330-a: hsl(330 34% 24%);
  --palette-mono-330-b: hsl(330 40% 14%);
  --palette-mono-348-a: hsl(348 34% 24%);
  --palette-mono-348-b: hsl(348 40% 14%);
  --palette-mono-44-a: hsl(44 34% 24%);
  --palette-mono-44-b: hsl(44 40% 14%);
  --palette-mono-96-a: hsl(96 34% 24%);
  --palette-mono-96-b: hsl(96 40% 14%);
  --palette-shadow: 0 1px 2px rgba(20,33,61,.06),0 8px 24px -12px rgba(20,33,61,.22);
  --palette-black-a30: rgba(0,0,0,.3);
  --palette-black-a55: rgba(0,0,0,.55);
  --palette-brass-lt: #C9A96E;
  --palette-brass-lt-a28: rgba(201,169,110,.28);
  --palette-brass-lt-a32: rgba(201,169,110,.32);
  --palette-brass-lt-a35: rgba(201,169,110,.35);
  --palette-brass-lt-a38: rgba(201,169,110,.38);
  --palette-brass-lt-hover: #DCC28F;
  --palette-card-dark: #111A2F;
  --palette-card-dark-a97: rgba(17,26,47,.97);
  --palette-card-hover-dark: #16203A;
  --palette-ink-on-dark-a08: rgba(244,239,230,.08);
  --palette-ink-on-dark-a14: rgba(244,239,230,.14);
  --palette-ink-on-dark-a16: rgba(244,239,230,.16);
  --palette-ink-on-dark-a35: rgba(244,239,230,.35);
  --palette-ink-on-dark-a38: rgba(244,239,230,.38);
  --palette-missing-on-dark: #E8907F;
  --palette-missing-on-dark-a10: rgba(232,144,127,.1);
  --palette-missing-on-dark-a45: rgba(232,144,127,.45);
  --palette-muted-on-dark: #B9B2A3;
  --palette-paper-dark: #0A1121;
  --palette-paper-dark-a93: rgba(10,17,33,.93);
  --palette-sand-dark: #18223A;
  --palette-shadow-dark: 0 1px 2px rgba(0,0,0,.3),0 10px 30px -12px rgba(0,0,0,.55);
  /* print (spec 5.10): print.css re-points the surface and text aliases at these two */
  --palette-print-paper: var(--palette-white);
  --palette-print-ink: var(--palette-ink);

  /* ---- 2. semantic aliases ---- */
  --surface-page: var(--palette-paper);
  --surface-card: var(--palette-card);
  --surface-sand: var(--palette-sand);
  --surface-deep: var(--palette-deep);
  --text: var(--palette-ink);
  --text-muted: var(--palette-muted);
  --text-on-deep: var(--palette-ink-on-dark);
  --link: var(--palette-deep);
  --accent: var(--palette-brass);
  /* gold drawn large on the page ground: the hero h1 em, the crest, the brand ring (D36). dark.css lifts it to brass-lt. */
  --accent-display: var(--palette-brass);
  --cta: var(--palette-deep);
  --cta-text: var(--palette-paper);
  --rule: var(--palette-ink-a15);
  --rule-soft: var(--palette-ink-a08);
  --focus-outer: var(--palette-brass);
  --focus-inner: var(--surface-page);
  --credit-text: var(--palette-ink-on-dark);
  --credit-ground: var(--palette-footer);
  --credit-sheen: var(--palette-brass-lt-a16);

  /* approved prototype names, as aliases */
  --ink: var(--text);
  --deep: var(--surface-deep);
  --deep-2: var(--palette-deep-2);
  --brass: var(--accent);
  --brass-lt: var(--palette-brass-lt);
  --brass-text: var(--palette-brass-text);
  --paper: var(--surface-page);
  --card: var(--surface-card);
  --sand: var(--surface-sand);
  --line: var(--rule);
  --line-soft: var(--rule-soft);
  --muted: var(--text-muted);
  --shadow: var(--palette-shadow);

  /* ---- 3. scales ---- */
  /* type (D35): a display serif, a sans for everything else, and the system monospace for the few URLs shown as code */
  --font-display: "Cormorant Garamond","Iowan Old Style",Georgia,serif;
  --font-body: "Manrope",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --font-label: var(--font-body);
  --font-code: ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --tracking-label: .2em;
  --wrap: 1180px;
  --measure-860: 860px;
  --radius-2: 2px;
  --radius-3: 3px;
  --radius-4: 4px;
  --radius-5: 5px;
  --radius-999: 999px;
  --radius-round: 50%;
  --space-neg-590: -590px;
  --space-1em: 1em;
  --space-2: 2px;
  --space-3: 3px;
  --space-4: 4px;
  --space-5: 5px;
  --space-6: 6px;
  --space-7: 7px;
  --space-8: 8px;
  --space-9: 9px;
  --space-10: 10px;
  --space-11: 11px;
  --space-12: 12px;
  --space-13: 13px;
  --space-14: 14px;
  --space-15: 15px;
  --space-16: 16px;
  --space-18: 18px;
  --space-19: 19px;
  --space-20: 20px;
  --space-22: 22px;
  --space-24: 24px;
  --space-26: 26px;
  --space-28: 28px;
  --space-30: 30px;
  --space-32: 32px;
  --space-34: 34px;
  --space-36: 36px;
  --space-40: 40px;
  --space-44: 44px;
  --space-48: 48px;
  --space-52: 52px;
  --space-54: 54px;
  --space-64: 64px;
  --space-66: 66px;
  --space-68: 68px;
  --space-74: 74px;
  --space-76: 76px;
  --space-96: 96px;
  --fs-1-02rem: 1.02rem;
  --fs-1-08rem: 1.08rem;
  --fs-1-12rem: 1.12rem;
  --fs-1-18rem: 1.18rem;
  --fs-1-2rem: 1.2rem;
  --fs-1-28rem: 1.28rem;
  --fs-1-3rem: 1.3rem;
  --fs-1-5rem: 1.5rem;
  --fs-profession-h2: clamp(1.6rem,3.2vw,2.3rem);
  --fs-quickfind-h2: clamp(1.7rem,3.2vw,2.3rem);
  --fs-1-85rem: 1.85rem;
  --fs-2-3rem: 2.3rem;
  --fs-page-title: clamp(2.3rem,4.6vw,3.4rem);
  --fs-hero-h1: clamp(2.9rem,6.4vw,5.1rem);
  --fs-8: 8px;
  --fs-9-5: 9.5px;
  --fs-10: 10px;
  --fs-10-5: 10.5px;
  --fs-11: 11px;
  --fs-11-5: 11.5px;
  --fs-12: 12px;
  --fs-12-5: 12.5px;
  --fs-13: 13px;
  --fs-13-5: 13.5px;
  --fs-14: 14px;
  --fs-14-5: 14.5px;
  --fs-15: 15px;
  --fs-15-5: 15.5px;
  --fs-16: 16px;
  --fs-16-5: 16.5px;
  --fs-17: 17px;
  --fs-18: 18px;
  --fs-18-5: 18.5px;
  --fs-19: 19px;
  --fs-19-5: 19.5px;
  --fs-20: 20px;
  --fs-21: 21px;
  --fs-sec-head-h2: clamp(2rem,3.9vw,2.9rem);
  --fs-24: 24px;
  --fs-band-h2: clamp(2rem,4.2vw,3.1rem);
  --fs-26: 26px;
  --fs-credit: var(--fs-11-5);
  --motion-0-01ms: .01ms;
  --motion-160: .16s;
  --motion-180: .18s;
  --motion-200: .2s;
  --motion-240: .24s;
  --motion-280: .28s;
  --motion-350: .35s;
  --motion-fast: var(--motion-180);
  --motion-slow: .8s;
  --motion-sheen: 9s;
  --ease-out: cubic-bezier(.2,.8,.3,1);
  --opacity-chip-count: .68;
  --credit-bar-block: 30px;
  --z-credit: 110; /* below the modal overlay (120), above the sticky header (60) */
  /* parallax depths (spec D33): how far motion.css lets a layer lag behind the scroll */
  --parallax-near: 32px;
  --parallax-mid: 64px;
  --parallax-far: 120px;
}
