/*
 * The fleet's shared visual vocabulary — one dictionary, all ships.
 *
 * Both the Shuffler and the Tabletop load this file, so the two ships look
 * like one app with two faces. Owned by `owners/shuffler-looks-like-itself/`
 * (the slug predates the fleet scope); consult that owner before adding,
 * renaming, or changing a value here.
 *
 * WHY A SHARED FILE AND NOT A DELIBERATE DUPLICATE. The fleet does duplicate
 * `log.ts` on purpose, and someone will cite it here. It doesn't transfer:
 * that duplication is *forced* (the two copies sit on different OTel version
 * lines with incompatible constructor signatures), and when loggers drift the
 * build breaks loudly. `#221534` is `#221534` on every ship forever, and when
 * a palette drifts nothing fails — the app just quietly stops looking like
 * itself on one face. We also already ran the experiment: `docs.css` re-declared
 * three of these tokens and, while never neglected, still diverged by addition
 * inside a year.
 *
 * These tokens are NOT mirrored in any ship's own `:root`. A "fallback" copy
 * is just another dictionary, and it would turn a broken load — which is
 * loud and obvious — into a silent near-miss.
 */

:root {
  /* Identity — the fleet's purple-and-pink. */
  --deep-space: #221534;
  --dark-pink: #bb5277;
  --light-pink: #ddc7dd;
  --cute-heading-color: #9134d2;

  --narrow-border: 3px;

  /*
   * Magic's colour pie. Domain vocabulary rather than chrome, and a closed
   * set — there will never be a sixth. Any ship tinting by colour identity
   * uses exactly these; none of them invents its own red.
   */
  --mana-W: #f0e68c; /* Plains — warm gold */
  --mana-U: #3c99e5; /* Island — blue */
  --mana-B: #530aae; /* Swamp — purple */
  --mana-R: #bd0a0a; /* Mountain — red */
  --mana-G: #2a8439; /* Forest — green */

  /*
   * Type, named by ROLE rather than by typeface. Three faces, fixed jobs, and
   * there is no fourth — so the role is the stable name and the face is the
   * detail. Card names are content, not chrome.
   *
   * Two reasons these are tokens and not literals:
   *
   * 1. The literals had already drifted. Ovo's fallback stack was `"Ovo", serif`
   *    in nine places and `"Ovo", Arial, sans-serif` in one, with quoting split
   *    between single and double. Same rot as the duplicated colours above.
   * 2. THE CANVAS CANNOT USE CSS. A self-rendering tldraw shape passes a font
   *    *string* from TypeScript — there is no class to hang a rule on — so
   *    without a name here, the literal gets retyped into a .tsx file where none
   *    of the stylesheet-level conventions can reach it.
   */
  --font-chrome: "Orbitron", sans-serif; /* UI chrome: headings, buttons, labels */
  --font-content: "Ovo", serif; /* Prose and card names */
  --font-display: "Risque", cursive; /* Hero titles, slogans — site pages only */

  /*
   * Soften what you press. Decided 2026-08-06 (Jess): --radius-soft on
   * pressables, 0 on flat surfaces, and physical objects (cards, playmats,
   * count discs) keep their own real radii. The line falls at "do you touch
   * it", not at "is it small".
   *
   * Shared rather than ship-local because the rule is stated fleet-wide and a
   * tldraw shape has the same canvas-can't-use-CSS problem as the fonts above.
   *
   * ⚠️ The Shuffler still has ~13 hand-written radius values that predate this
   * and have NOT been swept onto the token. They're drift awaiting that sweep,
   * not precedent — don't copy one.
   */
  --radius-soft: 4px;

  /*
   * Decided 2026-08-07 (tabletop-physics map, ticket 11) for the Tabletop's
   * "armed" zone state: a zone about to receive a dragged card gets a glow
   * ring plus a background tint (invisible on the library/playmat, which sit
   * under an opaque picture — accepted, not a bug). Shared here (not
   * ship-local) because the consumer is a tldraw shape on the canvas, same
   * reasoning as --radius-soft above. Deliberately not --light-pink (that's
   * the global focus-ring colour) and not part of the --dark-pink/--deep-space
   * identity pair, since "armed" needs to read as a distinct signal from
   * either. Not yet consumed anywhere — the real `mtg-zone` shape doesn't
   * exist yet (blocked on the Tabletop having somewhere to put tokens/fonts).
   */
  --armed-glow: #e6a33d;
}
