/* ============================================================================
   Journo Run-View — tokens.css   (PIVOT: deep-black outward spiral)
   The locked :root design tokens. Imported FIRST (before styles.css).
   Obsidian-grade: a near-black canvas, luminous accents, calm premium motion.
   Authoritative direction: ui/DESIGN_DIRECTION.md.
   ========================================================================== */

:root{
  /* ---- CANVAS (deep near-black w/ faint cool bias; centre-lift + vignette) ----
     Research-tuned: NOT pure #000 (OLED banding) and darker than Obsidian's #1e1e1e. */
  --bg:#0A0B0F;            /* page base — deep near-black */
  --bg-center:#14151C;     /* centre spotlight lift (the eye sits here) */
  --bg-edge:#060708;       /* darkened rim of the vignette */
  --surface:#0E131C;       /* floating chrome (pill, HUD, transport) */
  --surface-2:#141A25;     /* raised chrome / inputs */
  --hairline:rgba(150,170,205,.10);   /* faint borders on chrome */
  --hairline-2:rgba(150,170,205,.16);
  --track:rgba(150,175,215,.15);       /* the faint spiral guide line */
  --track-lit:rgba(170,200,255,.38);   /* a traversed arc, settled */

  /* ---- ARCHITECTURAL CHROME (neutral blueprint instrument; never glows) ----
     A dot-matrix drafting field under the spiral (Lodestar-style), plus a framed
     border with crop marks + edge ruler ticks. (No line grid / polar chart.) */
  --dot:rgba(152,180,224,.14);         /* dot-matrix background dots */
  --frame:rgba(176,200,240,.34);       /* the title-block border / sheet frame */
  --frame-soft:rgba(176,200,240,.16);  /* inner rule / secondary structure */
  --tick:rgba(176,200,240,.46);        /* ruler ticks + crop marks */

  /* ---- TYPE (off-white on black) ---- */
  --text:#ECEEF3; --text-dim:#9AA6BA; --text-faint:#5C6678;

  /* ---- ACCENTS (luminous on black — kept in sync with graph.js ACCENTS) ---- */
  --band1:#5BB0FF;   /* Band 1 · write/research — blue   */
  --band2:#F8B454;   /* Band 2 · interrogate    — amber  */
  --band3:#C08CFF;   /* Band 3 · attack & finish— violet */
  --gate:#3FE0B0;    /* gates / verification    — mint   */
  --rewrite:#FF9B6B; /* return edge / rewrite   — orange */
  --idle:#465062;    /* node not yet reached            */

  /* semantic */
  --pass:#3FE0B0; --fail:#FF6B7A; --warn:#F8B454;
  --error:#FF6B7A;   /* faults found            — red    */
  --crucial:#FFD66B; /* crucial moments / best  — gold   */

  /* glow tints (flat rgba so they need no color-mix support) */
  --error-glow:rgba(255,107,122,.55);
  --crucial-glow:rgba(255,214,107,.55);
  --comet:#EAF4FF;   /* the travelling pulse core (hot white-blue) */

  /* ---- TYPOGRAPHY ---- */
  --font-ui: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --font-mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;

  --fs-cap:9.5px;   --ls-cap:.16em;     /* tracked uppercase micro-labels */
  --fs-station:8.5px; --ls-station:.04em; /* station labels (mono · schematic, telemetry-small) */
  --fs-sub:7.5px;                         /* station sublabel / metric */
  --fs-value:12px;                        /* HUD readouts (mono, tabular) */
  --fs-topic:13px;                        /* brief topic / seed caption */
  --tnum:tabular-nums;

  /* ---- MOTION (calm, premium easings) ---- */
  --flow-dur:7s;        /* ambient outward comet period */
  --breathe-dur:5.6s;   /* idle node/seed breathing */
  --state-dur:.55s;     /* station state transitions */
  --surge-dur:.9s;      /* handoff surge */
  --bloom-dur:1.7s;     /* gold bloom */
  --ping-dur:1.6s;      /* red fault bloom */
  --ease-calm:cubic-bezier(.4,0,.2,1);
  --ease-out:cubic-bezier(.16,1,.3,1);   /* expressive settle */
}
