/* ============================================================================
   ouRGeo — design tokens
   ----------------------------------------------------------------------------
   THE single source of truth for colour. Linked FIRST on every page, ahead of
   site.css, forum.css, docs.css and marketing.css. Nothing else in the repo may
   declare a `:root` block.

   Why this file exists: colour used to live in a token block that was copied
   into five places and then largely ignored, because 237 of the site's colour
   literals were alpha variants written out by hand — `rgba(79,195,247,0.16)`
   and friends, 142 occurrences of that one base triplet alone. Changing a
   token moved almost nothing. Every one of those is now
   `rgb(var(--water-rgb) / 0.16)`, so the tokens below genuinely drive the site.

   That is what the `-rgb` channel triplets are for. They are space-separated
   on purpose: `rgb(R G B / A)` is the modern syntax that accepts a var() for
   the channels, which the legacy `rgba(R, G, B, A)` form cannot do. Keep each
   triplet in step with the hex above it — they are the same colour written
   twice, and nothing checks that for you.

   Deliberately NOT tokenised: panel darks, black/white shadow washes and the
   handful of one-off hexes. They are structure rather than palette, and
   promoting them would add tokens nobody tunes.
   ========================================================================== */

:root {
  /* ── Ground ─────────────────────────────────────────────────────────── */
  --bg-0: #070b14;
  --bg-1: #0b1119;
  --map-deep: #0b1119;
  --map-panel: #101823;
  --map-line: #2c3f57;

  /* ── Palette ────────────────────────────────────────────────────────── */
  --water: #8fb4d9;
  --water-rgb: 143 180 217;

  --aqua: #a9c4a0;
  --aqua-rgb: 169 196 160;

  --route: #c9a227;
  --route-rgb: 201 162 39;

  --accent: #6f8fb5;
  --accent-rgb: 111 143 181;

  /* ── Ink ────────────────────────────────────────────────────────────── */
  --text: #b5af9d;
  --muted: #7d8594;
  /* Brighter than --text: headings, emphasis, the strong cell of a table. */
  --text-strong: #cac1ab;
  /* Placeholder text — quieter than --muted. */
  --text-faint: #616a78;
  /* Ink that sits ON a filled accent (primary button, pressed chip, avatar).
     It tracks the ACCENT, not the ground, which is why it cannot just be
     --bg-0: a light theme keeps a saturated accent and still needs dark ink. */
  --on-accent:   #070b14;

  --danger-rgb: 207 133 112;
  --muted-rgb: 125 133 148;

  /* Shadows and scrims. A triplet so light themes can cast grey rather than
     black, which is the difference between depth and grime on pale ground. */
  --shadow-rgb: 0 0 0;

  /* ── Surface fills ──────────────────────────────────────────────────── */
  /* Translucent panels — the frame, the mobile drawer, dialog backdrops, code
     blocks. These were the real obstacle to a light theme: they used to be
     near-black rgba() written out by hand, so pale ground would still have had
     near-black glass floating on it. */
  --bg0-rgb: 7 11 20;      /* matches --bg-0      */
  --bg1-rgb: 11 17 25;      /* matches --bg-1      */
  --panel-rgb: 16 24 35;     /* matches --map-panel */

  /* Highlight wash. White on a dark theme; a light theme flips it to a dark
     value, because a "highlight" over pale ground has to darken to register. */
  --hi-rgb: 255 255 255;

  /* ── State ──────────────────────────────────────────────────────────── */
  --danger: #cf8570;
  --ok: #a9c4a0;

  /* ── Type ───────────────────────────────────────────────────────────── */
  /* Every font-family in the repo is one of these three (or `inherit`), so a
     theme changes typeface the same way it changes colour. Each carries a real
     fallback stack: a theme's family is fetched on demand and the page must
     stay readable in the moment before it lands. */
  --font-display: Cinzel, Georgia, "Times New Roman", serif;
  --font-body: "EB Garamond", Garamond, Georgia, serif;
  --font-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  /* Rendered markdown in the forum. Usually --font-body; the typewriter themes
     point it at --font-mono, which is most of what makes them feel different. */
  --font-post: "EB Garamond", Garamond, Georgia, serif;

  --display-tracking: 0.12em;
  --display-transform: uppercase;

  /* ── Surface character ──────────────────────────────────────────────── */
  --radius: 2px;      /* panels and buttons: round for dev, near-square for chart */
  --rule: solid;     /* border-style on dividers and section rules */
  --paper-size: auto;
  --paper: none;      /* background-image layer for .post-body (CSS gradients) */

  /* ── Backdrop ───────────────────────────────────────────────────────── */
  /* The three layers of the fixed mountain ridge, far to near. Inline SVG in
     every page references these, so the horizon follows the palette. */
  --ridge-1: #142031;
  --ridge-2: #0f1826;
  --ridge-3: #0a121c;
}
