/* North Track Digital - design tokens
   =====================================================================
   SOURCE OF TRUTH NOTE (read before changing anything here)

   Design brief Section 2, principle 5 says colors, type, mark and spacing
   come from the NTD brand book. The brand book was not supplied with the
   brief (the brief itself marks it "Daniel supplies"), and it is not in
   either repo.

   These values are therefore lifted verbatim from the LIVE site's
   assets/css/main.css, whose own header records them as "sampled from
   brand assets (logo sage #495E4B, headshot studio green #3A4838)". The
   brief also states this is "a new layout and messaging layer, not a new
   identity", so the shipped identity is the correct stand-in.

   Nothing here is invented. When the brand book arrives, every color,
   font and spacing decision on the revamp is confined to THIS FILE --
   swap the values below and the whole component set follows. No component
   or page hard-codes a color, font or spacing value.
   ===================================================================== */

:root {
  /* ---- brand greens (from main.css) ---- */
  --deep:     #1B241A;
  --pine:     #2A3628;
  --moss:     #3A4838;
  --sage:     #495E4B;
  --sage-lt:  #92A98F;
  --mint:     #CBD9C6;

  /* ---- neutrals (from main.css) ---- */
  --cream:    #F7F4EB;
  --paper:    #FFFFFF;
  --sand:     #E4DFD0;
  --ink:      #1C241D;
  --ink-soft: #525C53;

  /* ---- brand book darks (operator-supplied hex, 2026-10-12) ----
     "black" and "blue" from the brand book. The book itself is still not in
     the repo; only these two values are confirmed. They take the dark-surface
     roles below so the greens become accents on charcoal, not greens on green. */
  --charcoal: #1B1B1B;
  --slate:    #343745;

  /* ---- semantic roles (new; map to the brand values above) ---- */
  --bg:            var(--cream);
  --bg-raised:     var(--paper);
  --bg-inverse:    var(--charcoal);
  --bg-inverse-2:  var(--slate);
  --text:          var(--charcoal);
  --text-soft:     var(--ink-soft);
  --text-inverse:  var(--cream);
  --text-inverse-soft: var(--mint);
  --accent:        var(--sage);
  --accent-soft:   var(--sage-lt);
  --rule:          var(--sand);
  --rule-inverse:  rgba(203, 217, 198, 0.22);

  /* ---- warm accent + tint (NEW 2026-10-12, not from brand assets) ----
     Operator brief: the page read as one-dimensional in colour. One warm
     ochre for eyebrows, numerals, figures and active states, and one pale
     green wash for a third section background. Swap or remove here when the
     brand book arrives; nothing else hard-codes them. */
  --ochre:         #C98A3C;
  --mint-wash:     #EEF2EB;
  --accent-warm:   var(--ochre);
  --bg-tint:       var(--mint-wash);

  /* ---- type (from main.css) ---- */
  --display: 'Fraunces', Georgia, serif;
  --body: system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;

  --fs-h1:    clamp(2.4rem, 5.4vw, 4rem);
  --fs-h2:    clamp(1.8rem, 3.6vw, 2.6rem);
  --fs-h3:    clamp(1.25rem, 2.2vw, 1.5rem);
  --fs-lead:  clamp(1.1rem, 1.7vw, 1.3rem);
  --fs-body:  1.0625rem;
  --fs-small: 0.92rem;
  --fs-micro: 0.78rem;

  --lh-tight: 1.12;
  --lh-body:  1.65;
  --ls-tight: -0.015em;
  --ls-caps:  0.16em;

  /* ---- spacing scale (4px base; brief has no brand-book spacing rule) ---- */
  --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: 128px;

  /* section rhythm: tighter on mobile, opens up on desktop */
  --section-y: clamp(56px, 9vw, 112px);
  --gutter: 24px;
  --wrap: 1160px;
  --wrap-narrow: 860px;

  /* ---- shape (from main.css) ---- */
  --radius: 18px;
  --radius-sm: 12px;
  --radius-pill: 999px;

  /* ---- motion (brief Section 7) ---- */
  --dur: 380ms;
  --ease: cubic-bezier(0.22, 0.61, 0.36, 1);
  --reveal-shift: 12px;
}

/* Brief Section 7: all motion disabled under prefers-reduced-motion. */
@media (prefers-reduced-motion: reduce) {
  :root { --dur: 0.01ms; --reveal-shift: 0px; }
}
