/* Space Grotesk, the face the door wears, self-hosted so no page needs a font CDN. SIL OFL, one variable
   file covering 400 to 700 in the latin subset, 22 KB. Only fetched by a theme that names it. */
@font-face {
  font-family: "Space Grotesk";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("../fonts/space-grotesk-latin.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;
}

/* ══ zpe: the door's own language, measured from the live app on 2026-10-26 ══════════════════════════
   The door is React and Tailwind, and its taste is this scope: the ground #050507, ink #e0e7ff, the violet
   accent, Space Grotesk. On 2026-10-28 the door stopped carrying a palette of its own and reads these roles
   by name (zpe-vc/src/app/globals.css), so a value written here is the value the door renders.

   The accent is the one value that moved. The door's text accent had been its own electric purple #6b21a8,
   which measures 2.34:1 on the void; --accent is #a78bfa at 7.48:1, and that is what the door renders now.
   #6b21a8 survives only as the first stop of --accent-grad, because a gradient is a surface and its label
   sits on --accent-ink.

   It lives in its own file rather than in tokens.css so a product palette does not grow the canonical file
   every time one appears, and so a page opts in with one extra <link>. */
:root[data-theme="zpe"] {
  /* THE UA MUST BE TOLD, or every part it paints itself stays light on a near-black page: a date popup, a
     scrollbar, an autofilled field. Measured 2026-10-29 on this theme: an untyped input reported
     background rgb(255,255,255) against a surface that is rgb(5,5,7), and the popup and scrollbar followed it.
     Costs no token and fixes all three. */
  color-scheme: dark;
  --bg:#050507;
  --sunken:#030304;
  --raised:#0a0a0f;
  --ink:#e0e7ff;
  --ink2:#b6bfe0;
  --muted:#8b93b8;
  --line:#1c1c2a;
  --line2:#2a2a3d;

  --accent:#a78bfa;
  --accent-hover:#c4b5fd;
  --accent-ink:#0b0713;
  --accent-soft:#141430;
  --accent-grad:linear-gradient(96deg,#6b21a8,#3b5bdb);

  --ok:#6ee7a0;      --ok-soft:#12251a;      --ok-line:#1f4430;
  --warn:#f0b46b;    --warn-soft:#2a1f10;    --warn-line:#4a3618;
  --alert:#f08c8c;   --alert-soft:#2a1416;   --alert-line:#4a2222;

  --scrim:rgba(0,0,0,.62);
  --shadow:0 1px 2px rgba(0,0,0,.4),0 1px 3px rgba(0,0,0,.3);
  --shadow-lg:0 12px 32px rgba(0,0,0,.5),0 2px 8px rgba(0,0,0,.35);
  --ring:0 0 0 2px var(--bg),0 0 0 4px var(--accent);

  --font-sans:"Space Grotesk", ui-sans-serif, system-ui, -apple-system, sans-serif;

  /* @contrast --ink on --bg 7
     @contrast --ink on --raised 7
     @contrast --ink2 on --bg 4.5
     @contrast --muted on --bg 4.5
     @contrast --muted on --raised 4.5
     @contrast --accent on --bg 4.5
     @contrast --accent-ink on --accent 4.5
     @contrast --ok on --bg 4.5
     @contrast --warn on --bg 4.5
     @contrast --alert on --bg 4.5
     @contrast --ink on --accent-soft 4.5
    */
}
