/**
 * Design tokens — the single source of truth for color, type, spacing and
 * radius across the whole site. Nothing outside this file should contain a
 * hardcoded hex value, font stack, or magic spacing number (build-spec.md
 * section 6, "Maintainability").
 */
:root {
  /* Color */
  --navy: #0a2540;
  --navy-light: #123157;
  --riviera: #1d84c2;
  --riviera-dark: #146394;
  --sunset: #f4a63c;
  --sunset-dark: #d98a22;
  --warm-white: #fbf8f2;
  --sand: #f0e6d2;
  --ink: #1a1a18;
  --ink-soft: #4a4a46;
  --line: rgba(10, 37, 64, 0.12);

  /* Overlay tints derived from the palette above (used by scrims / masks) */
  --navy-scrim-strong: rgba(10, 37, 64, 0.72);
  --navy-scrim-soft: rgba(10, 37, 64, 0.35);

  /* Type */
  --font-primary: 'Poppins', sans-serif;
  --fs-h1: clamp(2.6rem, 6vw, 5.2rem);
  --fs-h2: clamp(2rem, 4vw, 2.9rem);
  --fs-h3: 1.3rem;
  --fs-body: 1rem;
  --fs-caption: 0.8rem;

  /* Radius / spacing */
  --radius-lg: 20px;
  --radius-md: 12px;
  --radius-sm: 8px;
  --section-pad: clamp(64px, 10vw, 110px);
  --container-max: 1280px;
  --container-pad: clamp(20px, 5vw, 48px);

  /* Motion. Interactive feedback (hover/click) must stay under ~0.4s
     (build-spec-v2.md section 3.11) — --dur-instant/fast are for that;
     --dur-base/slow are for scroll-triggered narrative moments only. */
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --dur-instant: 0.2s;
  --dur-fast: 0.3s;
  --dur-base: 0.6s;
  --dur-slow: 1s;

  /* Layered above content; keep the whole stack listed here so new
     components don't invent ad hoc z-indices. */
  --z-header: 100;
  --z-menu: 200;
  --z-transition: 300;
  --z-preloader: 400;
}
