/* ============================================================
   EXCMO · tokens.css
   Editorial-luxury system: warm paper, ink, antique brass.
   Derived from the rebrand reference. oklch throughout.
   ============================================================ */
:root {
  /* ── paper / surfaces ───────────────────────────────── */
  --paper:       oklch(94.5% 0.011 83);   /* primary warm cream */
  --paper-2:     oklch(91.8% 0.014 80);   /* recessed panel */
  --paper-3:     oklch(89.0% 0.016 78);   /* deeper panel / hover */
  --frame:       oklch(83.5% 0.018 74);   /* image frames, hairlines */
  --line:        oklch(86.5% 0.014 76);   /* dividers on paper */
  --line-soft:   oklch(89.5% 0.010 78);

  /* ── ink (dark sections + text) ─────────────────────── */
  --ink:         oklch(16.5% 0.008 64);   /* dark section bg */
  --ink-2:       oklch(20.5% 0.009 62);   /* dark card */
  --ink-line:    oklch(30% 0.010 62);     /* hairlines on dark */
  --text:        oklch(24% 0.012 58);     /* body on paper */
  --text-strong: oklch(17% 0.012 56);     /* headings on paper */
  --text-dim:    oklch(43% 0.012 60);     /* secondary on paper */
  --text-mute:   oklch(50% 0.012 62);     /* meta on paper (AA: 4.9:1) */

  /* on dark */
  --on-ink:        oklch(93% 0.010 82);   /* body on ink */
  --on-ink-strong: oklch(97% 0.008 86);   /* headings on ink */
  --on-ink-dim:    oklch(70% 0.012 70);   /* secondary on ink */
  --on-ink-mute:   oklch(61% 0.012 64);   /* AA on ink + ink-2 + placeholders */

  /* ── antique brass accent ───────────────────────────── */
  --brass:       oklch(63% 0.090 78);     /* primary accent */
  --brass-deep:  oklch(52% 0.095 70);     /* on cream, links (AA: 4.6:1) */
  --brass-bright:oklch(74% 0.105 82);     /* on dark, highlights */
  --brass-faint: oklch(63% 0.090 78 / 0.14);

  /* ── feedback ───────────────────────────────────────── */
  --danger:        oklch(58% 0.13 28);    /* invalid field border */
  --danger-on-ink: oklch(72% 0.12 32);    /* error text on dark form */

  /* ── type ───────────────────────────────────────────── */
  --serif: "Newsreader", "Georgia", "Times New Roman", serif;
  --sans:  "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", sans-serif;

  /* ── ONE disciplined modular scale (~1.25). Every component pulls from this —
        no ad-hoc sizes in main.css. Desktop (≥1280) → mobile floor. ─────────── */
  --t-display: clamp(2.5rem, 1.6rem + 3.1vw, 4.25rem);   /* 40 → 68  hero, statement */
  --t-h1:      clamp(2.1rem, 1.5rem + 2.1vw, 3.5rem);     /* 33.6 → 56  page titles */
  --t-h2:      clamp(1.8rem, 1.4rem + 1.5vw, 2.75rem);    /* 28.8 → 44  section heads, stat num */
  --t-h3:      clamp(1.5rem, 1.3rem + 0.7vw, 2.125rem);   /* 24 → 34  svc-row, case titles */
  --t-h4:      clamp(1.3rem, 1.18rem + 0.42vw, 1.6875rem);/* 20.8 → 27  card / insight / tl titles */
  --t-lead:    clamp(1.18rem, 1.08rem + 0.3vw, 1.3125rem);/* 18.9 → 21  lead / intro */
  --t-body:    clamp(1.0625rem, 1.02rem + 0.18vw, 1.125rem);/* 17 → 18  body + secondary */
  --t-sm:      var(--t-body);                              /* merged into body — one reading tier */
  --t-label:   clamp(0.875rem, 0.84rem + 0.1vw, 0.9375rem);/* 14 → 15  ALL labels + meta (one tier) */
  --t-eyebrow: var(--t-label);
  --t-meta:    var(--t-label);                             /* merged — nothing below 14px */

  --lh-tight:  1.04;
  --lh-snug:   1.18;
  --lh-body:   1.62;

  /* ── space ──────────────────────────────────────────── */
  --pad-x:     clamp(1.25rem, 0.4rem + 3.4vw, 5.5rem);
  --gap:       clamp(1.5rem, 1rem + 1.9vw, 3.1rem);
  --gap-card:  clamp(1.1rem, 0.8rem + 1vw, 1.75rem);   /* tighter, uniform gutter for card/case/insight grids */
  --section-y: clamp(4.5rem, 3rem + 6.5vw, 10.5rem);
  --maxw:      1600px;
  --maxw-text: 70ch;

  --r-sm:  6px;
  --r:     10px;
  --r-lg:  16px;
  --r-pill: 999px;

  /* ── motion ─────────────────────────────────────────── */
  --ease:      cubic-bezier(0.32, 0.72, 0, 1);     /* spring-ish */
  --ease-out:  cubic-bezier(0.16, 1, 0.3, 1);
  --d-fast:    240ms;
  --d:         480ms;
  --d-slow:    760ms;

  /* shadows — diffuse, warm, never harsh */
  --shadow-card: 0 1px 2px oklch(20% 0.02 60 / 0.04),
                 0 12px 30px -16px oklch(20% 0.02 60 / 0.18);
  --shadow-pop:  0 2px 4px oklch(20% 0.02 60 / 0.05),
                 0 30px 60px -24px oklch(20% 0.02 60 / 0.30);
}
