/* ============================================================
   START NOTE — design tokens
   Generated from DESIGN.md (the SSOT). Components read these;
   nothing re-declares a brand value.
   Provenance: [context] extracted from start-note-v1 / start-note-v2
   staged repos; [derived] computed from an extracted value;
   [invented] this run's taste, flagged; [placeholder] missing.
   Where v1 and v2 disagree, v2 wins — v1 values survive below as
   the heritage set, consumed only by the encoded heritage alternate.
   ============================================================ */

:root {
  /* ---- The console — v2 surfaces [context: v2 widgets] ---- */
  --bg:    #000000;  /* scaffold + app bar: pure black */
  --panel: #0D0D0D;  /* the sniffer panel */
  --card:  #212121;  /* status console, mapping tiles (grey.900) */
  --chip:  #303030;  /* key chips, menus (grey.850) */
  --line:  #424242;  /* resting borders (grey.800) */

  /* ---- Ink on the console [context: v2 grey scale] ---- */
  --ink:   #FFFFFF;  /* primary text */
  --soft:  #BDBDBD;  /* secondary (grey.400) */
  --dim:   #9E9E9E;  /* tertiary (grey.500) */
  --faint: #757575;  /* micro-labels, hints (grey.600) — labels only on card */

  /* ---- The four channels — state IS color [context: _colorForChannel] ---- */
  --ch-live:       #69F0AE;  /* conversation · LIVE (greenAccent) */
  --ch-pause:      #FFD740;  /* pause · learning (amberAccent) */
  --ch-transcript: #18FFFF;  /* transcript · STT only (cyanAccent) */
  --ch-record:     #FF5252;  /* audio record (redAccent) */

  /* ---- The brand gold [context: v1 theme "amber" + launcher mark] ---- */
  --amber: #FFBF00;
  --mark-green: #34A046; /* [derived] sampled approximate from launcher.png play triangle */

  /* ---- Default accent — the live green leads [invented: v2's LIVE state
          is the brand's pulse; encoded alternate flips this to amber] ---- */
  --accent: var(--ch-live);

  /* ---- Heritage set — v1, historical [context: application_theme.dart] ---- */
  --v1-amber:    #FFBF00;  /* "amber" — v1 scaffold + identity */
  --v1-rose:     #F45B69;  /* "fiery rose" — destructive */
  --v1-spring:   #04724D;  /* "dark spring green" — create */
  --v1-sea:      #8DB38B;  /* "dark sea green" — view */
  --v1-viridian: #56876D;  /* "viridian" — alt green */
  --v1-bar:      #181818;  /* v1 dark app-bar config value */
  /* [derived] heritage-alternate support values (not v1 facts) */
  --v1-paper:      #FFFFFF;
  --v1-paper-warm: #FFF6DC;
  --v1-ink:        #181818;
  --v1-dim:        #4A4A4A;
  --v1-faint:      #6E6E6E;
  --v1-pause-deep: #8F6B00;

  /* ---- Print re-tokening ---- */
  --print-bg:  #FFFFFF;
  --print-ink: #181818;

  /* ---- Typography ----
     App faces [context]: system sans + 'monospace' for every data readout.
     Doc faces [invented]: IBM Plex pairing — utilitarian console register. */
  --font-mono:    'IBM Plex Mono', 'SF Mono', Menlo, Consolas, monospace;
  --font-display: 'IBM Plex Mono', 'SF Mono', Menlo, Consolas, monospace; /* the console speaks mono */
  --font-body:    'IBM Plex Sans', -apple-system, 'Helvetica Neue', sans-serif;

  /* App scale [context]: v1 title 28 / body 16 / caption 12 · stopwatch 22 tabular
     v2 channel 20 bold ls+2 / status 14 / body 13 / micro 12–11 mono */
  --text-hero:    clamp(2.3rem, 1.6rem + 3.4vw, 4.2rem);
  --text-h1:      clamp(1.7rem, 1.3rem + 1.9vw, 2.5rem);
  --text-h2:      clamp(1.3rem, 1.05rem + 1.2vw, 1.85rem);
  --text-h3:      clamp(1.08rem, 1rem + 0.5vw, 1.3rem);
  --text-h4:      1rem;
  --text-body-lg: clamp(1.02rem, 0.94rem + 0.45vw, 1.15rem);
  --text-body:    clamp(0.94rem, 0.88rem + 0.35vw, 1.02rem);
  --text-body-sm: 0.87rem;
  --text-caption: 0.78rem;
  --text-label:   0.7rem;
  --track-channel: 0.1em;   /* [context] v2 channel header letterSpacing 2 @ 20px */
  --track-label:   0.14em;

  /* ---- Spacing [context: v2 uses a 4px rhythm — 4/8/12/16/20] ---- */
  --sp-1: 0.25rem;
  --sp-2: 0.5rem;
  --sp-3: 0.75rem;
  --sp-4: 1rem;
  --sp-5: 1.5rem;
  --sp-6: 2.25rem;
  --sp-7: 3.5rem;
  --sp-8: 5rem;
  --section-pad: clamp(4rem, 8vw, 7rem);

  /* ---- Radii [context: v2 — 6 chips · 8 timer · 10 tiles · 12 console] ---- */
  --r-sm:   6px;
  --r-md:   8px;
  --r-lg:   10px;
  --r-xl:   12px;
  --r-pill: 999px;

  /* ---- Borders — elevation is a border, never a shadow [context] ---- */
  --border-w:        1px;   /* rest */
  --border-w-live:   2px;   /* active channel [context: width 2 when live] */
  --border-w-learn:  1.5px; /* learning tile [context] */
  --border:       var(--border-w) solid var(--line);
  --border-live:  var(--border-w-live) solid var(--accent);
  /* Shadows: NONE. The console is flat black. [context: zero BoxShadow in v2] */
  --sh-none: none;

  /* ---- Motion [invented — no measured durations exist in either repo] ---- */
  --dur-fast:   120ms;
  --dur-normal: 240ms;
  --dur-slow:   480ms;
  --dur-pulse:  1200ms;   /* the REC breath */
  --ease-out: cubic-bezier(0.2, 0, 0, 1);
  --ease-cut: steps(1, end);   /* channel switches CUT — no tween */

  /* ---- Layout ---- */
  --max-w:        72rem;
  --max-w-narrow: 46rem;
  --max-w-wide:   88rem;
  --nav-w:        232px;
  --frame-w:      320px;  /* device-frame composite width */
}
