:root {
  /* Brand colors */
  --moss: #171918;
  --moss-2: #1f2120;
  --moss-3: #2a2c2b;
  --ivory: #FEF8FA;
  --ivory-dim: rgba(254, 248, 250, 0.72);
  --ivory-mute: rgba(254, 248, 250, 0.5);
  --ivory-faint: rgba(254, 248, 250, 0.12);
  --ivory-line: rgba(254, 248, 250, 0.08);

  --accent: #B42125;
  --accent-2: #d52830;

  /* Surfaces */
  --bg: var(--moss);
  --fg: var(--ivory);
  --line: var(--ivory-line);

  /* Type */
  --ff-display: 'Bebas Neue', 'Arial Narrow', sans-serif;
  --ff-body: 'Roboto', system-ui, -apple-system, sans-serif;
  --ff-mono: 'Roboto Mono', ui-monospace, SFMono-Regular, monospace;

  /* Fluid type scale */
  --fs-mono: 0.75rem;
  --fs-body: clamp(0.95rem, 0.9rem + 0.2vw, 1.05rem);
  --fs-lead: clamp(1.05rem, 0.95rem + 0.5vw, 1.25rem);
  --fs-h3: clamp(1.5rem, 1rem + 1.5vw, 2rem);
  --fs-h2: clamp(2.5rem, 1.5rem + 4vw, 5.5rem);
  --fs-display: clamp(4rem, 2rem + 12vw, 16rem);
  --fs-display-sm: clamp(3rem, 2rem + 5vw, 7rem);

  /* Spacing rhythm */
  --space-3xs: 0.25rem;
  --space-2xs: 0.5rem;
  --space-xs: 0.75rem;
  --space-sm: 1rem;
  --space-md: 1.5rem;
  --space-lg: 2.5rem;
  --space-xl: 4rem;
  --space-2xl: 6rem;
  --space-3xl: 9rem;
  --space-4xl: 12rem;

  /* Layout */
  --max: 1480px;
  --gutter: clamp(1.25rem, 4vw, 3rem);

  /* Radii */
  --r-sm: 4px;
  --r-md: 10px;
  --r-lg: 18px;
  --r-pill: 999px;

  /* Motion */
  --ease: cubic-bezier(0.65, 0, 0.35, 1);
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in: cubic-bezier(0.7, 0, 0.84, 0);
  --dur-fast: 220ms;
  --dur: 480ms;
  --dur-slow: 900ms;

  /* Z */
  --z-cursor: 9999;
  --z-loader: 9000;
  --z-nav: 200;
  --z-float: 150;
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
