
:root {
  /* ── Brand: Horizon ────────────────────────────────────────────────────
     Three hues only. Amber is DECORATIVE — see --ink-amber before using it
     on text. Mixing amber into the indigo/sky washes produces an olive cast,
     which is why the home hero wash has no amber in it. */
  --indigo:        #4338CA;
  --indigo-600:    #4338CA;
  --indigo-400:    #818CF8;
  --indigo-300:    #A5B4FC;
  --indigo-200:    #C7D2FE;
  --indigo-100:    #E0E7FF;
  --indigo-50:     #EEF2FF;

  --sky:           #0284C7;
  --sky-700:       #0369A1;
  --sky-400:       #38BDF8;
  --sky-200:       #BAE6FD;
  --sky-100:       #E0F2FE;

  --amber:         #D97706;
  --amber-700:     #B45309;
  --amber-800:     #92400E;
  --amber-200:     #FDE68A;
  --amber-100:     #FEF3C7;

  /* ── Ink ─────────────────────────────────────────────────────────────── */
  --ink:           #0F172A;   /* headings, primary text                     */
  --ink-strong:    #1E293B;
  --ink-body:      #334155;
  --ink-muted:     #475569;   /* the single most-used colour in the template */
  --ink-soft:      #556579;   /* AA on white 5.96, subtle 5.61, alt 5.30 (V10.9.1) */
  --ink-faint:     #5C6B80;   
  --ink-amber:     #92400E;   /* amber TEXT at body size. NEVER use --amber:
                                 #D97706 passes AA at large sizes only.     */

  /* ── Surfaces ────────────────────────────────────────────────────────── */
  --bg:            #FFFFFF;
  --bg-subtle:     #F7F8FA;
  --bg-sunken:     #F4F6FA;
  --bg-track:      #EFF1F5;   /* stat-bar tracks, striped placeholders      */
  --bg-tint:       #F7F9FC;

  --surface-canvas:   #E9EDF4;
  --surface-panel:    #FFFFFF;
  --surface-alt:      #EEF2F8;
  --surface-row:      #F6F8FC;   /* table row A -- never pure white       */
  --surface-row-alt:  #E7EDF6;   /* table row B -- scannable alternation  */
  --surface-hover:    #E0E7FF;
  --surface-field:    #F1F5FA;
  --surface-field-on: #FFFFFF;   /* focus INVERTS the field to white       */
  --surface-sunken:   #E3E9F2;
  --surface-head:     #1E293B;
  --surface-head-2:   #273549;   /* second-level head / thead on dark      */
  --surface-head-ink: #FFFFFF;
  --surface-head-dim: #94A3B8;   /* mono labels on a dark head             */
  --field-line:       #CBD5E1;   /* field border, real weight not hairline */
  --field-line-on:    #A5B4FC;

  /* ── Lines ───────────────────────────────────────────────────────────── */
  --line:          #EDF0F4;   /* the default hairline                       */
  --line-strong:   #E2E8F0;
  --line-soft:     #E7EBF1;
  --line-cool:     #E4E9F2;
  --line-heavy:    #CBD5E1;

  /* ── Status ──────────────────────────────────────────────────────────── */
  --ok:            #15803D;
  --ok-bright:     #4ADE80;
  --ok-bg:         #DCFCE7;
  --warn:          #B45309;
  --warn-bg:       #FEF3C7;
  --danger:        #B91C1C;   
  --danger-bg:     #FEE2E2;

  /* ── Dark band (the one dark public surface) ─────────────────────────── */
  --dark-1:        #1E1B4B;
  --dark-2:        #312E81;
  --dark-3:        #075985;
  --dark-ink:      #FFFFFF;
  --dark-body:     #CBD5E1;   /* body on dark is slate, never pure white —
                                 pure white on this band exceeds 7:1 glare   */
  --dark-meta:     #94A3B8;
  --dark-chip-bg:  rgba(255,255,255,.12);
  --dark-chip-ink: #E0E7FF;

  /* ── Terminal (the one place mono stays) ─────────────────────────────── */
  --term-bg:       #0B1220;
  --term-bar:      #111A2B;
  --term-line:     #1E293B;
  --term-dot:      #334155;
  --term-path:     #8A9AB0;   /* 6.54:1 on --term-bg (was 3.93) V10.9.1 */
  --term-prompt:   #8A9AB0;   /* 6.54:1 on --term-bg (was 3.93) V10.9.1 */
  --term-command:  #E2E8F0;
  --term-value:    #38BDF8;
  --term-ok:       #4ADE80;
  --term-warn:     #FBBF24;
  --term-err:      #FCA5A5;
  --term-comment:  #7E8DA3;   

  /* ── Type ────────────────────────────────────────────────────────────── */
  --font: 'Geist', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --mono: 'Geist Mono', ui-monospace, SFMono-Regular, Menlo, monospace;

  --fs-micro:  10.5px;   /* sysbar, slot captions          */
  --fs-mono:   11.5px;   /* mono meta — the template default */
  --fs-xs:     12px;
  --fs-chip:   12.5px;
  --fs-sm:     13px;     /* most-used body-adjacent size   */
  --fs-body:   13.5px;   /* the template's true body size  */
  --fs-md:     15px;     /* lede                            */
  --fs-lg:     17px;
  --fs-xl:     19px;
  --fs-2xl:    26px;

  /* ── Radii ───────────────────────────────────────────────────────────── */
  --r-pill:    99px;     /* chips, CTAs, tracks — by far the most used      */
  --r-xs:      7px;
  --r-sm:      9px;
  --r-md:      11px;
  --r-lg:      12px;
  --r-xl:      14px;
  --r-2xl:     16px;
  --r-3xl:     18px;
  --r-4xl:     22px;     /* the circuit CTA panel                           */

  /* ── Elevation ───────────────────────────────────────────────────────── */
  --sh-card:   0 1px 2px rgba(15,23,42,.04), 0 1px 3px rgba(15,23,42,.06);
  --sh-lift:   0 4px 14px rgba(15,23,42,.08);
  --sh-pop:    0 12px 34px rgba(8,12,28,.26);
  --sh-mono:   0 2px 8px rgba(15,23,42,.12);

  /* ── Layout ──────────────────────────────────────────────────────────── */
  --shell:     1200px;
  --gutter:    28px;
  --band-y:    52px;     /* vertical rhythm between bands — tightened from the spec's 72px (N-12) */

  /* ── Focus ───────────────────────────────────────────────────────────── */
  --focus:     0 0 0 3px rgba(67,56,202,.28);
}

/* Night theme — STUB, intentionally unreachable.
   No toggle sets [data-theme="night"] anywhere in this codebase. The values
   below are structural placeholders proving the token layer can carry a second
   theme; they are NOT a signed-off palette. Wiring a toggle to this before real
   values are reviewed would ship colour nobody approved. */
:root[data-theme="night"] {
  /* --bg: …; --ink: …; --line: …;  ← fill from a reviewed night palette */
}

@media (prefers-reduced-motion: reduce) {
  /* Reduced motion is a gate, not a suggestion — transitions included, since
     they otherwise still fire on hover. (Graphics guide rule 2.) */
  *, *::before, *::after {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
}
