/* =====================================================================
   Riso · design tokens
   A risograph print shop on screen: two or three flat spot inks that
   overprint (multiply) on cool, uncoated paper, with halftone shading and
   a little misregistration. The page is paper (light) by default.
   "Night run" is an opt-in edition printed on black stock: put
   data-theme="dark" on <html>. It does not follow the visitor's system
   setting, because the paper is the brand.
   Keep in sync with tokens.json (scripts/sync-tokens.mjs copies this file
   into template/css/tokens.css).
   ===================================================================== */
:root {
  /* ---- stock (the paper) ---- */
  --paper: #eef0ec;         /* cool uncoated off-white: the page. Never cream. */
  --paper-2: #e2e6e1;       /* creases, wells, the shadow side of a fold */
  --sheet: #f8f9f6;         /* brighter stock for tickets, cards and stickers */
  --grain-ink: #2a3350;     /* colour of the paper speckle */

  /* ---- spot inks: the dial. Plates print in these, overprinting each other ---- */
  --ink-a: #3255a4;         /* Medium Blue: the key ink. Display type, line art, solid buttons */
  --ink-b: #ff48b0;         /* Fluorescent Pink: halftones, swipes, ghosts. Never small text */
  --ink-c: #ffe800;         /* Yellow: optional third. Glows, tape, highlights. Never text */
  --blend: multiply;        /* how plates combine: multiply on paper, screen on black stock */

  /* ---- text inks: darker tints of the inks that pass AA on paper ---- */
  --text: #26408c;          /* body copy, 8.3:1 on paper */
  --text-2: #4a5f9c;        /* secondary copy, 5.4:1 on paper, 4.9:1 on paper-2 */
  --text-b: #b5126f;        /* small accent text from ink B (eyebrows, dates), 5.6:1 */
  --on-ink: #eef0ec;        /* paper showing through a solid ink: button labels, knockouts */
  --focus: #b5126f;

  /* ---- depth: paper on paper, never glossy ---- */
  --shadow: 0 1px 0 rgba(30, 40, 80, 0.06), 0 14px 26px -18px rgba(30, 40, 80, 0.42);
  --shadow-lift: 0 2px 0 rgba(30, 40, 80, 0.05), 0 26px 40px -22px rgba(30, 40, 80, 0.5);

  /* ---- type ---- */
  --display: "Dela Gothic One", "Arial Black", Impact, sans-serif;
  --ui: "Familjen Grotesk", "Helvetica Neue", Arial, system-ui, sans-serif;
  --mono: "Courier Prime", "Courier New", ui-monospace, monospace;
  --fs-h1: clamp(42px, 8.3vw, 128px);
  --fs-h2: clamp(32px, 4.7vw, 66px);
  --fs-cta: clamp(46px, 9vw, 140px);
  --fs-h3: 26px;
  --fs-lead: clamp(17px, 1.45vw, 20px);
  --fs-body: 16.5px;
  --fs-small: 14px;
  --fs-mono: 13px;

  /* ---- space ---- */
  --s-1: 4px; --s-2: 8px; --s-3: 12px; --s-4: 16px; --s-5: 24px; --s-6: 32px;
  --s-7: 48px; --s-8: 64px; --s-9: 112px; --s-10: 160px;
  --wrap: 1240px;
  --gutter: 24px;

  /* ---- shape: hand-cut, mostly square; pills for die-cut stickers and buttons ---- */
  --r-0: 0px;               /* sheets, zine panels */
  --r-xs: 3px;              /* tags, tape */
  --r-sm: 6px;              /* tickets */
  --r-md: 12px;             /* stickers, FAQ cards */
  --r-pill: 999px;          /* buttons, chips */

  /* ---- motion ---- */
  --ease: cubic-bezier(0.2, 0.8, 0.2, 1);
  --spring: cubic-bezier(0.34, 1.5, 0.55, 1);
  --d-reg: 1.15s;           /* plates sliding into register */
  --d-breathe: 2.6s;        /* halftone density breathing on hover */
  --d-drum: 32s;            /* the drum stripe's ticker, one full turn */
  --d-peel: 0.4s;           /* stickers peeling, tickets tearing */
}

/* Night run: fluorescent inks on black stock. Opt-in with <html data-theme="dark">. */
:root[data-theme="dark"] {
  --paper: #15161b; --paper-2: #1d1f26; --sheet: #22242c; --grain-ink: #c9cede;
  --ink-a: #5ec8e5; --ink-b: #ff48b0; --ink-c: #ffe800; --blend: screen;
  --text: #eef0ec; --text-2: #b8bdcb; --text-b: #ff8fcf; --on-ink: #15161b; --focus: #ffe800;
  --shadow: 0 1px 0 rgba(0, 0, 0, 0.4), 0 16px 30px -18px rgba(0, 0, 0, 0.8);
  --shadow-lift: 0 2px 0 rgba(0, 0, 0, 0.4), 0 28px 44px -20px rgba(0, 0, 0, 0.9);
  color-scheme: dark;
}
