/* ════════════════════════════════════════════════════════════════════════════════════════════
   THE PUBLIC TOKENS (Lane M2, Nov 5, 2026, ruled by Eric). ONE FILE holds the public site's type
   and colour. Every public page reads it:
     · the static pages in public/marketing/ link it in their <head>, ahead of site-chrome.css;
     · the Next public pages link it through components/public/SiteChrome.tsx;
     · site-chrome.css @imports it as well, so a page that only links the chrome still gets it.
   No page declares its own font family or brand hex. test/publicTokens.test.ts holds every public
   page to that.

   TYPE: headings in Newsreader (400, 500 and italic, optical sizing on), text in Source Sans 3
   (400 to 700). Both are self-hosted from public/fonts (SIL Open Font License): no request for a
   typeface leaves our origin. Fraunces, IBM Plex and Libre Baskerville leave every public page.

   COLOUR (the approved mockups, docs/mockups/site-2026-11 on origin/docs/m2-site):
     ink #1E1B45 · indigo #2E2A5F · purple #533F8E · soft purple #EFEBF8 / #F3F1F9 · page #FAFAFC ·
     line #E7E5F0 · body #4A4766 · muted #6A6787 · terracotta button #A4563A (white text 5.27:1;
     #C97B5C is 3.02:1 and never carries white text) · terracotta on dark #E8A98C · dark band #1F1C42.

   LIGHT ON EVERY FIRST VISIT; the moon button switches to dark (<html data-site-theme="dark">,
   written by site-kit.js). Dark re-points the same tokens; it is never a second palette of names.

   Names stay --k-* (k for kit) because every public stylesheet already reads them.
   ════════════════════════════════════════════════════════════════════════════════════════════ */

@font-face{font-family:"Newsreader";font-style:normal;font-weight:400 500;font-display:swap;src:url(/fonts/newsreader-latin-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Newsreader";font-style:italic;font-weight:400 500;font-display:swap;src:url(/fonts/newsreader-latin-italic.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:200 900;font-display:swap;src:url(/fonts/sourcesans3-R3w8aZejf5Hc.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:200 900;font-display:swap;src:url(/fonts/sourcesans3-EaZejf5HdF8Q.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

/* ── Light (the default on every public page) ── */
:root{
  --k-panel:#FAFAFC;--k-surface:#FFFFFF;--k-ink:#1E1B45;--k-body:#4A4766;--k-muted:#4A4766;--k-subtle:#6A6787;
  --k-line:#E7E5F0;--k-hover:#F3F1F9;--k-soft:#EFEBF8;--k-soft-2:#F3F1F9;
  --k-accent:#2E2A5F;--k-accent-ink:#FFFFFF;--k-accent-hover:#3B3676;
  --k-purple:#533F8E;
  --k-terra:#A4563A;--k-terra-ink:#FFFFFF;--k-terra-hover:#8F4A31;
  --k-mark:#C97B5C;          /* terracotta as a mark (bars, dots, rules). Never under white text. */
  --k-mark-text:#A4563A;     /* terracotta as text on a light ground: 5.27:1 on white, 5.07:1 on the page */
  --k-ring:#533F8E;
  /* The dark bands every public page draws (the three Cs, closing bands, the district plan card). */
  --k-band:#1F1C42;--k-band-2:#3B3577;--k-band-ink:#FFFFFF;--k-band-muted:#CFCBE6;--k-band-line:rgba(255,255,255,.18);--k-band-terra:#E8A98C;
  --k-bar:#1F1C42;--k-bar-ink:#FFFFFF;--k-bar-muted:#CFCBE6;--k-bar-hover:rgba(255,255,255,.08);--k-bar-on:rgba(255,255,255,.14);
  /* The header: a white bar, ink links, terracotta Sign in, the indigo Connect With Us. */
  --k-head:#FFFFFF;--k-head-ink:#1E1B45;--k-head-muted:#1E1B45;--k-head-line:#E7E5F0;--k-head-hover:#F3F1F9;--k-head-on:transparent;--k-head-current:#533F8E;
  --k-head-mark:#A4563A;--k-head-cta:#2E2A5F;--k-head-cta-ink:#FFFFFF;--k-head-cta-hover:#3B3676;
  --k-past:#A63A1C;--k-past-tint:#FBE9E2;--k-calm:#2D6A3C;--k-calm-tint:#E6F2E8;--k-calm-dot:#3E8A52;
  --k-near-fill:#C99A2E;--k-near-tint:#FBF1DA;--k-near-ink:#7A5410;--k-plain-dot:#8A87A3;--k-plain-tint:#EFEEF4;
  --k-good-bar:#4F8A5B;
  --k-track:#ECEAF3;--k-chip:#F1EFF7;--k-shot-line:#E2DFEE;
  --k-shadow:0 1px 2px rgba(30,27,69,.06),0 10px 30px -14px rgba(30,27,69,.28);
  --k-pop:0 30px 60px -24px rgba(30,27,69,.35),0 2px 4px rgba(30,27,69,.08);
  --k-glow:#F1EDF9;
  /* An indigo card (the homepage's Budget card, the district plan): white text on it. */
  --k-indigo:#2E2A5F;--k-indigo-line:#2E2A5F;--k-indigo-ink:#FFFFFF;
  /* A white button on a dark band (the mockup's Book a time): ink text. */
  --k-on-band-btn:#FFFFFF;--k-on-band-btn-ink:#1E1B45;--k-on-band-btn-hover:#EFEBF8;
  --k-quote-mark:#C9BEE6;
  /* status and list text ON a dark band (the same in both registers) */
  --k-band-calm-tint:rgba(230,242,232,.15);--k-band-calm:#BFE3C7;--k-band-calm-dot:#7FC191;--k-band-list:#D9D6EC;
  --k-logo-line:#6A4FB3;--k-logo-dot:#C97B5C;--k-logo-word:#2E2A5F;--k-logo-rule:#C97B5C;
  /* A partner logo's tile. Light in BOTH registers and never redefined below (partner terms):
     test/partnerLogoTile.test.ts fails if a dark block redefines either token. */
  --k-partner-tile:#FFFFFF;--k-partner-tile-line:#E4E4EC;
  --k-display:"Newsreader",Georgia,"Times New Roman",serif;
  --k-sans:"Source Sans 3",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --k-mono:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;
  --k-ease:cubic-bezier(.2,.8,.2,1);--k-ease-out:cubic-bezier(.16,1,.3,1);
  --k-radius:16px;--k-radius-sm:10px;
  color-scheme:light;
}
/* ── Dark, chosen with the moon button: the same names, re-pointed ── */
:root[data-site-theme="dark"]{
  --k-panel:#14132B;--k-surface:#1D1B3A;--k-ink:#EEEDF8;--k-body:#C9C6E2;--k-muted:#C9C6E2;--k-subtle:#A9A5CA;
  --k-line:#322F58;--k-hover:#25234A;--k-soft:#2A2752;--k-soft-2:#1A1936;
  --k-accent:#C4BDF2;--k-accent-ink:#14132B;--k-accent-hover:#D6D1F7;
  --k-purple:#C4B4F4;
  --k-mark-text:#E8A98C;--k-ring:#E8A98C;
  --k-band:#0E0D22;--k-band-2:#2A2560;
  --k-bar:#0E0D22;
  --k-head:#14132B;--k-head-ink:#EEEDF8;--k-head-muted:#EEEDF8;--k-head-line:#322F58;--k-head-hover:rgba(255,255,255,.06);--k-head-current:#C4B4F4;
  --k-head-mark:#E8A98C;--k-head-cta:#C4BDF2;--k-head-cta-ink:#14132B;--k-head-cta-hover:#D6D1F7;
  --k-past:#F0916A;--k-past-tint:rgba(240,145,106,.14);--k-calm:#9ED3AE;--k-calm-tint:rgba(158,211,174,.13);--k-calm-dot:#7FC191;
  --k-near-fill:#F2C94C;--k-near-tint:rgba(242,201,76,.16);--k-near-ink:#F5D46A;--k-plain-dot:#A9A5CA;--k-plain-tint:rgba(255,255,255,.07);
  --k-good-bar:#7FC191;
  --k-track:#2A2850;--k-chip:#25234A;--k-shot-line:#322F58;
  /* the app's severity inks are inks for paper; on a public page in dark they take the kit's dark meanings */
  --color-sev-calm-ink:var(--k-calm);--color-sev-watch-ink:var(--k-near-ink);--color-sev-press-ink:var(--k-past);--color-sev-crit-ink:var(--k-past);
  --k-shadow:inset 0 0 0 1px rgba(255,255,255,.07);--k-pop:0 30px 60px -24px rgba(0,0,0,.8),inset 0 0 0 1px rgba(255,255,255,.08);
  --k-glow:#221F45;
  --k-indigo:#2A2560;--k-indigo-line:#3B3577;
  --k-quote-mark:#5B4E99;
  --k-logo-line:#A893F0;--k-logo-dot:#E0906C;--k-logo-word:#F4F1EA;--k-logo-rule:#E0906C;
  color-scheme:dark;
}
