:root {

  /* ── Colors — navy + bone ──────────────── */
  --bone:        #F4EFE4;   /* single page off-white */
  --bone-hi:     #FCFAF4;   /* near-white, only for glass highlight edges */
  --tint:        rgba(26, 44, 66, 0.045);  /* navy @ 4.5% — subtle section depth, not a 2nd white */

  --forest:      #1A2C42;   /* primary (navy) */
  --forest-deep: #11202F;   /* darker */
  --forest-ink:  #0A1622;   /* darkest — footer / bands */
  --forest-soft: #DDE3EC;   /* pale blue chip */
  --clay:        #BE8B8B;   /* dusty rose accent */
  --clay-soft:   #EDDCDC;

  --ink:         #232520;   /* text on bone */
  --ink-soft:    rgba(35, 37, 32, 0.70);
  --ink-faint:   rgba(35, 37, 32, 0.45);
  --line:        rgba(26, 44, 66, 0.13);   /* navy-tinted hairline */

  /* ── Glass — navy cards ─────────────────── */
  --glass:       rgba(26, 44, 66, 0.74);
  --glass-strong:rgba(17, 32, 47, 0.82);
  --glass-line:  rgba(255, 255, 255, 0.16);
  --glass-blur:  18px;
  /* text on green cards */
  --on-card:       #FFFFFF;
  --on-card-soft:  rgba(255, 255, 255, 0.78);
  --on-card-faint: rgba(255, 255, 255, 0.52);
  --on-card-line:  rgba(255, 255, 255, 0.16);
  --on-card-fill:  rgba(255, 255, 255, 0.10);

  /* ── Typography ─────────────────────────────────── */
  --font-display: 'Bricolage Grotesque', system-ui, sans-serif;
  --font-body:    'Inter', system-ui, -apple-system, sans-serif;

  /* ── Type scale ─────────────────────────────────── */
  --size-hero:    clamp(2.7rem, 6.4vw, 5.2rem);
  --size-display: clamp(2rem, 4.2vw, 3.2rem);
  --size-heading: clamp(1.3rem, 2.6vw, 1.8rem);
  --size-xl:      1.3rem;
  --size-lg:      1.1rem;
  --size-base:    1.02rem;
  --size-sm:      0.9rem;
  --size-xs:      0.74rem;

  /* ── Letter spacing ─────────────────────────────── */
  --track-tight:  -0.025em;
  --track-snug:   -0.01em;
  --track-wide:    0.04em;
  --track-wider:   0.15em;
  --track-widest:  0.22em;

  /* ── Leading ────────────────────────────────────── */
  --lead-tight:    1.04;
  --lead-snug:     1.22;
  --lead-normal:   1.62;

  /* ── Spacing ────────────────────────────────────── */
  --sp-1: 0.5rem;  --sp-2: 1rem;   --sp-3: 1.5rem;  --sp-4: 2rem;
  --sp-6: 3rem;    --sp-8: 4rem;   --sp-12: 6rem;   --sp-16: 8rem;

  /* ── Layout ─────────────────────────────────────── */
  --max-w:  1180px;
  --gutter: clamp(1.25rem, 5vw, 4rem);
  --radius:    24px;
  --radius-sm: 14px;
  --radius-lg: 32px;

  /* ── Elevation ──────────────────────────────────── */
  --shadow-sm: 0 10px 26px -18px rgba(10, 22, 34, 0.5);
  --shadow:    0 26px 64px -34px rgba(10, 22, 34, 0.5);
  --shadow-lg: 0 46px 100px -44px rgba(10, 22, 34, 0.6);

  /* ── Motion ─────────────────────────────────────── */
  --ease-out:  cubic-bezier(0.16, 1, 0.3, 1);
  --ease-soft: cubic-bezier(0.33, 1, 0.68, 1); /* gentle, quiet reveal */
  --dur-base: 700ms;
  --dur-slow: 1000ms;
}
