/* ==========================================================================
   Cameron Moquin — Design Tokens (single source of truth)
   Two tiers: primitive ramps, then semantic roles that components consume.
   Palette: the light "trust blue" rebrand (July 2026).
   Intention layer (phi 1.618, Fibonacci) wired into real type/space/motion.
   ========================================================================== */
:root {
  /* ---------- Primitive ramps ---------- */
  /* Trust blue (primary) */
  --blue-50:  #eaf3f6;
  --blue-100: #cfe3ea;
  --blue-200: #a9cdd8;
  --blue-300: #7fb3c3;
  --blue-500: #1f6f8b;   /* brand trust blue */
  --blue-700: #145a73;
  --blue-900: #0d3547;   /* deep, for the one dark band */
  --navy-900: #081f3a;   /* deepest legacy navy */

  /* Ink neutrals (text) */
  --ink-900: #14202b;    /* primary text */
  --ink-600: #3a4b5a;
  --ink-400: #5e7388;    /* muted text */
  --ink-200: #a9b6c2;

  /* Paper / surfaces (warmed white) */
  --paper-50:  #fcfaf5;  /* page ground */
  --paper-100: #f6f2ea;
  --paper-200: #f2eee6;  /* sunk surface */
  --white:     #ffffff;

  /* Jade (success / growth) */
  --jade-500: #00a86b;
  --jade-700: #0a7a52;   /* jade as readable text */

  /* Honey gold (accent) */
  --gold-400: #e4b94a;
  --gold-500: #d4a017;   /* accent fill */
  --gold-800: #8a6408;   /* gold as readable text */

  /* Status */
  --red-500: #d64545;
  --red-700: #a32d2d;

  /* ---------- Semantic roles (use these in components) ---------- */
  --surface:         var(--paper-50);
  --surface-raised:  var(--white);
  --surface-sunk:    var(--paper-200);
  --surface-invert:  var(--blue-900);   /* the one dramatic dark band */
  --text:            var(--ink-900);
  --text-muted:      var(--ink-400);
  --text-inverse:    var(--paper-50);
  --primary:         var(--blue-500);
  --primary-hover:   var(--blue-700);
  --on-primary:      var(--paper-50);
  --success:         var(--jade-500);
  --success-text:    var(--jade-700);
  --accent:          var(--gold-500);   /* fill only, scarce */
  --accent-strong:   var(--gold-800);   /* gold as text/label */
  --border-hairline: rgba(20, 32, 43, 0.12);
  --border-strong:   rgba(20, 32, 43, 0.22);
  --focus-ring:      var(--gold-500);

  /* ---------- Type scale (phi-derived) ---------- */
  --step--2: 0.618rem;
  --step--1: 0.786rem;
  --step-0:  1rem;
  --step-1:  1.272rem;
  --step-2:  1.618rem;
  --step-3:  2.058rem;
  --step-4:  2.618rem;
  --step-5:  4.236rem;
  --measure: 68ch;

  --track-label:   0.16em;   /* small mono caps */
  --track-eyebrow: 0.22em;   /* tiniest eyebrows */
  --track-display: -0.015em; /* large headings, optically tightened */

  /* ---------- Spacing (Fibonacci / 8px base) ---------- */
  --s-1: 4px;
  --s-2: 8px;
  --s-3: 12px;
  --s-4: 20px;
  --s-5: 32px;
  --s-6: 52px;
  --s-7: 84px;
  --s-8: 128px;
  --container: 1120px;
  --section-y: clamp(56px, 8vw, 128px);

  /* ---------- Radius ---------- */
  --r-sm:  6px;
  --r-md:  10px;
  --r-lg:  16px;
  --r-pill: 999px;

  /* ---------- Motion (phi-timed) ---------- */
  --dur-1: 90ms;
  --dur-2: 150ms;
  --dur-3: 240ms;
  --dur-4: 380ms;
  --dur-5: 618ms;
  --ease: cubic-bezier(0.22, 1, 0.36, 1);

  /* ---------- Type families ---------- */
  --font-display: 'Newsreader', Georgia, serif;   /* statesman serif headlines */
  --font-body:    'Barlow', sans-serif;
  --font-mono:    'Space Mono', monospace;
  --font-condensed: 'Barlow Condensed', sans-serif; /* retained for tight button/label use */

  /* ---------- Latent intention (present, unseen) ---------- */
  --phi: 1.618;
  --chai: 18;
  --proof: 47;
}
