/* ==========================================================================
   FORELAD · DESIGN TOKENS  (v2 — Switzer / white-premium / aubergine anchor)
   Single source of truth. White dominates, aubergine is the ink + dark
   statement moments, violet is action, teal is the scarce spark. No gold.
   ========================================================================== */
:root {
  /* ---- Brand ------------------------------------------------------------ */
  --aubergine:     #2E1A47;   /* primary ink, dark bands, footer, logo */
  --aubergine-700: #3A2358;
  --violet:        #6D3FBF;   /* action: links, accents, the live word */
  --violet-deep:   #4A2B7A;   /* hover depth, gradients */
  --violet-600:    #5A34A8;   /* button hover */
  --teal:          #1F8A82;   /* the scarce spark: ticks, one CTA, accents */
  --teal-deep:     #16706A;
  --teal-tint:     #E9F4F3;

  /* ---- Violet-tinted neutral ramp (does the premium work) --------------- */
  --ink-900: #14101F;   /* strongest text */
  --ink-800: #211A30;
  --ink-700: #322C44;   /* body on light */
  --ink-600: #4A4360;
  --ink-500: #6B6480;   /* secondary text */
  --ink-400: #948CBA;   /* faint text, captions */
  --ink-300: #B7B2C7;
  --ink-200: #D9D5E4;
  --ink-150: #E9E4F2;   /* hairline border */
  --ink-100: #F1EEF7;   /* soft fill */
  --ink-50:  #F8F7FB;   /* off-white surface */
  --white:   #FFFFFF;

  /* ---- Semantic roles --------------------------------------------------- */
  --bg:           var(--white);
  --bg-subtle:    var(--ink-50);
  --bg-tint:      #F4F0FB;         /* faint lilac section wash */
  --surface:      var(--white);
  --border:       var(--ink-150);
  --border-soft:  #F0ECF7;

  --text-strong:  var(--aubergine);
  --text-body:    var(--ink-700);
  --text-muted:   var(--ink-500);
  --text-faint:   var(--ink-400);

  --accent:       var(--violet);
  --accent-hover: var(--violet-600);
  --spark:        var(--teal);

  /* gradients + pattern colours */
  --grad-band:    linear-gradient(135deg, #3A2358 0%, #6D3FBF 100%);
  --grad-dark:    linear-gradient(160deg, #2E1A47 0%, #1B0F2E 100%);
  --grad-card:    linear-gradient(150deg, #EAE3F5, #F5F1FA);
  --aura-violet:  rgba(109,63,191,.11);
  --aura-teal:    rgba(31,138,130,.09);
  --pat-line:     rgba(109,63,191,.30);   /* blueprint crosshairs */
  --pat-ring:     rgba(109,63,191,.20);   /* orbit / ripple rings */
  --pat-ring-teal:rgba(31,138,130,.19);

  /* ---- Typography (Switzer for everything, tight + confident) ----------- */
  --font-display: 'Switzer', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-body:    'Switzer', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-mono:    ui-monospace, 'SF Mono', Menlo, Consolas, monospace;

  --fs-display: clamp(2.5rem, 1.6rem + 3.9vw, 4rem);     /* hero */
  --fs-h1:      clamp(2.2rem, 1.5rem + 2.9vw, 3.3rem);
  --fs-h2:      clamp(1.9rem, 1.4rem + 2.1vw, 2.85rem);
  --fs-h3:      clamp(1.25rem, 1.05rem + 0.7vw, 1.5rem);
  --fs-lead:    clamp(1.02rem, 0.98rem + 0.3vw, 1.15rem);
  --fs-body:    1rem;
  --fs-sm:      0.9375rem;
  --fs-xs:      0.84375rem;
  --fs-cap:     0.75rem;

  --lh-tight:   1.03;
  --lh-head:    1.1;
  --lh-body:    1.65;

  --ls-display: -0.035em;
  --ls-head:    -0.02em;
  --ls-label:   0.14em;

  /* ---- Radii ------------------------------------------------------------ */
  --r-sm:  10px;
  --r-md:  14px;
  --r-lg:  18px;
  --r-xl:  22px;
  --r-2xl: 28px;
  --r-3xl: 34px;
  --r-pill:999px;

  /* ---- Shadows (soft, expensive) ---------------------------------------- */
  --sh-xs:   0 2px 10px rgba(46,26,71,.05);
  --sh-sm:   0 6px 22px rgba(46,26,71,.07);
  --sh-md:   0 14px 40px rgba(46,26,71,.12);
  --sh-lg:   0 26px 60px rgba(46,26,71,.16);
  --sh-card: 0 12px 34px rgba(46,26,71,.13);

  /* ---- Layout ----------------------------------------------------------- */
  --container: 1200px;
  --gutter:    clamp(20px, 4vw, 40px);
  --section-y: clamp(64px, 9vw, 128px);
  --nav-h:     76px;

  /* ---- Motion ----------------------------------------------------------- */
  --ease:      cubic-bezier(.22,1,.36,1);
  --ease-io:   cubic-bezier(.65,0,.35,1);
  --t-fast:    .22s;
  --t-med:     .4s;
  --t-slow:    .7s;
}
