/* Generated from zeroshi.tokens.json — DO NOT hand-edit values; change the JSON.
   Consumers use semantic tokens (--z-*); primitives (--zp-*) are for this file only. */
:root {
  /* primitives */
  --zp-void: #000000; --zp-system: #050808; --zp-console: #071010; --zp-panel: #0b1515;
  --zp-paper: #f4fffc; --zp-cyan: #00ffef; --zp-cyan-mid: #00b8b2; --zp-cyan-dark: #003b3a;
  --zp-green: #2ee6ad; --zp-lime: #b5ff3d;
  --zp-mint: #73ffd8; /* rare diagnostic peak, rails only */ --zp-deep-green: #007a52;

  /* semantic — surfaces & text */
  --z-ground: var(--zp-system);
  --z-shell: var(--zp-console);
  --z-plate: var(--zp-panel);
  --z-text: var(--zp-paper);
  --z-text-muted: rgba(244, 255, 252, 0.62);
  --z-text-decorative: rgba(244, 255, 252, 0.34); /* never information-bearing */

  /* semantic — signal system */
  --z-signal: var(--zp-cyan);        /* <5 occurrences per hero */
  --z-state-ok: var(--zp-green);
  --z-diagnostic: var(--zp-lime);

  /* semantic — MINIMAL-tier documents (light surfaces) */
  --z-doc-ground: #ffffff;
  --z-doc-ink: #0b1515;
  --z-doc-signal: var(--zp-cyan-dark); /* cyan-mid fails contrast on white — decorative only */

  /* structure */
  --z-hairline: rgba(244, 255, 252, 0.11);
  --z-focus: var(--zp-cyan);
  --z-radius: 0px;

  /* space */
  --z-space-xs: 8px; --z-space-sm: 12px; --z-space-md: 18px;
  --z-space-lg: 32px; --z-space-xl: 64px;
  --z-space-section: clamp(48px, 9vw, 132px);

  /* motion */
  --z-dur-feedback: 150ms; --z-dur-state: 250ms;
  --z-dur-print: 760ms; --z-dur-boot-hold: 950ms; --z-dur-boot-cap: 4000ms;
  --z-ease-out-quint: cubic-bezier(0.22, 1, 0.36, 1);
  --z-ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
  --z-ease-mechanical: linear;

  /* type */
  --z-font-display: "Zx Gamut", "Arial Black", Arial, sans-serif;
  --z-font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}
