/* The bundle's own copy of brand kit v1.4.2 — Inked Dark.
 *
 * Byte-for-byte the chrome half of site/assets/tokens-inked-dark.css. It is
 * copied rather than linked because the whole point of this folder is that it
 * runs unchanged from our origin, a store frame, or a directory on disk — a
 * `../../assets/` href would leave the bundle and the self-containment test
 * would fail it. scripts/check-contrast.mjs reads this file as its own surface,
 * so a copy that drifts from the site palette fails the contrast gate instead
 * of shipping a hub in amber and a game in magenta.
 *
 * Note the role names read as their opposite on a near-black surface: "ink" is
 * the light text, "canvas" is the page base. That is the kit's own convention
 * and portal.css follows it, so the two files stay swappable.
 */
:root {
  color-scheme: dark;

  --cn-color-canvas: #0c0e12;      /* Field — near-black page base */
  --cn-color-panel: #161a20;       /* Panel — the raised card surface */
  --cn-color-ink: #f3efe7;         /* Ink — text */
  --cn-color-muted: #a2acb8;       /* Muted */
  --cn-color-link: #f6b455;        /* Inline links */
  --cn-color-leaf: #14c8b8;        /* Bio — fill only */
  --cn-color-leaf-strong: #1c6f68; /* Deep */
  --cn-color-mint: #1a262a;        /* Wash */
  --cn-color-amber: #f6a13c;       /* Signal — the only accent */
  --cn-color-line: #2b323c;        /* Hairline */
  --cn-color-danger: #ff7a6b;      /* Danger */
  --cn-color-edge: #626d7c;        /* Outline — the control stroke, 3:1 on both surfaces */
  --cn-color-on-fill: #0c0e12;     /* Label on a bright fill (Bio, Signal) */
  --cn-color-offset: #3a4351;      /* Hard offset — a lit ledge, not a shadow */
  --cn-color-divider: #2b323c;     /* Dividers */

  --cn-font-display: "Fraunces", Georgia, serif;
  --cn-font-body: "IBM Plex Sans", Arial, sans-serif;
  --cn-font-mono: "IBM Plex Mono", monospace;

  --cn-space-1: 0.25rem;
  --cn-space-2: 0.5rem;
  --cn-space-3: 0.75rem;
  --cn-space-4: 1rem;
  --cn-space-6: 1.5rem;
  --cn-space-8: 2rem;
  --cn-space-12: 3rem;
  --cn-space-16: 4rem;
  --cn-space-24: 6rem;
  --cn-space-32: 8rem;

  --cn-radius-rule: 0.125rem;
  --cn-radius-control: 0.625rem;
  --cn-page-max: 74rem;
  --cn-reading-max: 68ch;
  --cn-figure-max: 60rem;

  --cn-stroke: 2.5px;
  --cn-stroke-small: 2px;
  --cn-offset: 5px;
  --cn-offset-figure: 8px;

  /* Arena field. This half is the game's own art, not the brand kit: it is what
     the canvas paints inside the folded field. A 2D canvas cannot resolve a
     custom property, so the renderer repeats these values as literals and
     test/seam-60.test.mjs keeps the two copies equal. */
  --cn-game-field: #173c33;        /* arena background */
  --cn-game-grid: #f5efdc;         /* field grid, drawn at .11 alpha */
  --cn-game-player: #f4bb3b;       /* the spark */
  --cn-game-edge: #f7ebd5;         /* mark outlines and field text */
  --cn-game-threat: #d16655;       /* shards */
  --cn-game-shield: #9cd2c8;       /* pulses */
  --cn-game-bloom: #87bd5d;        /* fold ripple, drawn at .18/.5 alpha */
}
