/* ========================================================================
   Sleipnir — design tokens (single source of truth)
   ------------------------------------------------------------------------
   The canonical vocabulary every surface consumes: one accent, one navy
   ramp, one radius / spacing / elevation / type scale. Link this FIRST,
   before any page-specific <style>, so pages inherit and (only where they
   must) override. Values here match the current landing palette, so
   adopting this file is visually lossless on day one.
   ======================================================================== */

:root {
  /* ---- Brand accent ---- */
  --accent:        #6c84ff;   /* the one accent. do not drift. */
  --accent-hi:     #8b97ff;   /* brighter — hover / active */
  --accent-light:  #a4b6ff;   /* editorial ink-accent (serif emphasis) */
  --accent-dim:    #2a3470;   /* recessed fills */
  --accent-glow:   rgba(108, 132, 255, 0.30);

  /* ---- Surfaces (dark navy) ---- */
  --bg:            #08101e;
  --bg-lift:       #0a1220;
  --bg-card:       #131a2a;
  --bg-soft:       #1c2333;
  --surface:       #131a2a;
  --surface-hi:    #1a2236;
  --line:          #252e40;
  --line-soft:     #1e2535;

  /* ---- Ink ---- */
  --ink:           #f0eee5;
  --ink-soft:      #c5cad6;
  --ink-faint:     #8993a4;
  --ink-dim:       #4a5161;

  /* ---- Status ---- */
  --good:          #4ade80;
  --warning:       #d4a23a;
  --error:         #c75a5a;

  /* ---- Type roles ----
     ui:        Instrument Sans — all headings + body
     editorial: Newsreader      — emphasis, tier names, manifesto, ledes
     mono:      JetBrains Mono   — labels, meta, code, tabular numbers      */
  --font-ui:        'Instrument Sans', system-ui, -apple-system, sans-serif;
  --font-editorial: 'Newsreader', Georgia, 'Times New Roman', serif;
  --font-mono:      'JetBrains Mono', ui-monospace, 'SFMono-Regular', monospace;

  /* ---- Radius scale ---- */
  --r-1:  6px;    /* inputs, buttons, small chips */
  --r-2:  10px;   /* nested blocks, code */
  --r-3:  14px;   /* cards, panels, tiles */
  --r-pill: 999px;

  /* ---- Spacing scale (4-based) ---- */
  --s-1:  4px;
  --s-2:  8px;
  --s-3:  12px;
  --s-4:  16px;
  --s-5:  24px;
  --s-6:  32px;
  --s-7:  48px;
  --s-8:  64px;
  --s-9:  96px;
  --s-10: 120px;

  /* ---- Elevation (one ambient, one lifted, one accent ring) ---- */
  --shadow-ambient: 0 1px 2px rgba(0,0,0,0.22), 0 1px 1px rgba(0,0,0,0.14);
  --shadow-lift:    0 14px 38px rgba(0,0,0,0.36);
  --shadow-glow:    0 0 0 1px var(--accent), 0 14px 44px var(--accent-glow);

  /* ---- Motion (fast, one easing) ---- */
  --ease: cubic-bezier(.22, 1, .36, 1);
  --dur:  170ms;
}

/* Editorial face wants optical sizing + slightly looser tracking than the
   sans it sits beside. One opt-in class so any <em>/label can become the
   serif voice without re-specifying these each time. */
.editorial,
.editorial em,
em.editorial {
  font-family: var(--font-editorial);
  font-style: italic;
  font-weight: 500;
  font-optical-sizing: auto;
  letter-spacing: -0.005em;
}
