/* ==========================================================================
   LUMIÈRE — Design tokens
   Single source of truth for colour, type, space, motion and layout.
   ========================================================================== */

:root {
  /* --- Colour -------------------------------------------------------------
     Never pure black. Ink is a rich navy so shadows stay warm and coastal. */
  --c-blue:        #123E93;   /* Mediterranean blue — primary accent        */
  --c-blue-deep:   #0E3175;
  --c-ivory:       #F8F6F2;   /* page ground                                */
  --c-sand:        #E9DFCF;   /* warm sand — alternate section ground       */
  --c-stone:       #CFC6B8;   /* stone — rules, muted marks                 */
  --c-olive:       #5B6B47;
  --c-gold:        #C8A76A;   /* champagne gold — logo on dark, hairlines   */

  --c-ink:         #0C1B33;   /* rich navy, stands in for black             */
  --c-ink-deep:    #071227;   /* footer ground                              */
  --c-ink-70:      rgb(12 27 51 / 0.70);
  --c-ink-55:      rgb(12 27 51 / 0.55);
  --c-ink-40:      rgb(12 27 51 / 0.40);
  --c-ink-12:      rgb(12 27 51 / 0.12);
  --c-ink-08:      rgb(12 27 51 / 0.08);

  --c-ivory-70:    rgb(248 246 242 / 0.70);
  --c-ivory-45:    rgb(248 246 242 / 0.45);
  --c-ivory-16:    rgb(248 246 242 / 0.16);

  /* Semantic */
  --bg:            var(--c-ivory);
  --fg:            var(--c-ink);
  --fg-muted:      var(--c-ink-55);
  --rule:          var(--c-ink-12);

  /* --- Type ---------------------------------------------------------------
     Display: high-contrast serif, used light and oversized.
     Body: neutral grotesque, generous leading. */
  --f-display: "Cormorant Garamond", "Hoefler Text", Garamond, "Times New Roman", serif;
  --f-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;

  /* Fluid scale — clamp(min, preferred, max) */
  --t-hero:    clamp(3.75rem, 13vw, 12rem);
  --t-display: clamp(2.75rem, 7vw, 6.5rem);
  --t-h2:      clamp(2.125rem, 4.6vw, 4.25rem);
  --t-h3:      clamp(1.5rem, 2.5vw, 2.375rem);
  --t-h4:      clamp(1.25rem, 1.7vw, 1.625rem);
  --t-lead:    clamp(1.0625rem, 1.35vw, 1.375rem);
  --t-body:    clamp(0.9375rem, 0.95vw, 1.0625rem);
  --t-small:   0.8125rem;
  --t-micro:   0.6875rem;

  --lh-tight:  1.02;
  --lh-display: 1.08;
  --lh-snug:   1.32;
  --lh-body:   1.72;

  --ls-hero:   -0.035em;
  --ls-display: -0.02em;
  --ls-body:   0.005em;
  --ls-eyebrow: 0.34em;   /* letterspaced uppercase labels */
  --ls-wide:   0.16em;

  /* --- Space --------------------------------------------------------------
     Page gutter and section rhythm both scale with the viewport. */
  --gutter:    clamp(1.5rem, 5.5vw, 7.5rem);
  --section-y: clamp(6rem, 14vh, 13rem);
  --measure:   68ch;   /* readable line length */

  --s-1:  0.25rem;
  --s-2:  0.5rem;
  --s-3:  0.75rem;
  --s-4:  1rem;
  --s-5:  1.5rem;
  --s-6:  2rem;
  --s-7:  3rem;
  --s-8:  4rem;
  --s-9:  6rem;
  --s-10: 8rem;

  /* --- Motion -------------------------------------------------------------
     Slow, deliberate. Nothing snaps. */
  --e-out:   cubic-bezier(0.22, 1, 0.36, 1);
  --e-inout: cubic-bezier(0.65, 0, 0.35, 1);
  --e-soft:  cubic-bezier(0.33, 0.1, 0.15, 1);

  --d-fast:  0.4s;
  --d-base:  0.7s;
  --d-slow:  1.1s;
  --d-veil:  1.6s;

  /* --- Form -------------------------------------------------------------- */
  --radius:    2px;   /* corners are barely there */
  --radius-lg: 3px;
  --hairline:  1px;

  --z-nav:     100;
  --z-menu:    200;
  --z-veil:    300;
}

/* Motion is a courtesy, never a requirement. */
@media (prefers-reduced-motion: reduce) {
  :root {
    --d-fast: 0.01ms;
    --d-base: 0.01ms;
    --d-slow: 0.01ms;
    --d-veil: 0.01ms;
  }
}
