:root {
  /* Color. Fixed rule: text on --color-yellow is always --color-black
     (white on yellow fails contrast at ~1.4:1; black on yellow is ~14.8:1, AAA).
     Never override this for a hover/focus state. */
  --color-black: #0a0a0a;
  --color-black-soft: #161616;
  --color-white: #f7f7f5;
  --color-white-muted: rgba(247, 247, 245, 0.64);
  --color-yellow: #fbbb04;

  /* Type: Zalando Sans Expanded ExtraBold (display) + Work Sans (body) */
  --font-display: "Zalando Sans Expanded", system-ui, sans-serif;
  --font-body: "Work Sans", system-ui, sans-serif;

  /* Type scale: mobile-first clamp, ~1.25 modular ratio */
  --fs-100: clamp(0.875rem, 0.85rem + 0.1vw, 0.9375rem);
  --fs-200: clamp(1rem, 0.95rem + 0.2vw, 1.125rem);
  --fs-300: clamp(1.25rem, 1.1rem + 0.5vw, 1.5rem);
  --fs-400: clamp(1.75rem, 1.4rem + 1.2vw, 2.5rem);
  --fs-500: clamp(2.5rem, 1.8rem + 2.5vw, 4rem);
  --fs-600: clamp(3.5rem, 2.4rem + 4.5vw, 6.5rem);
  --fs-700: clamp(4.5rem, 3rem + 6vw, 9rem);

  /* Spacing: base 8px */
  --space-1: 0.5rem;
  --space-2: 1rem;
  --space-3: 1.5rem;
  --space-4: 2rem;
  --space-5: 3rem;
  --space-6: 4.5rem;
  --space-7: 6rem;
  --space-8: 9rem;
  --space-section-mobile: 4.5rem;

  /* Radius: fixed scale, never an off-scale value */
  --radius-sm: 4px;
  --radius-md: 12px;
  --radius-lg: 24px;
  --radius-full: 999px;
  --radius-btn: 10px;

  /* Z-index scale (documented, never an arbitrary value)
     0    base section content
     10   decorative layers within a section (image overlays, parallax)
     20   local sticky elements within a section's own flow
     100  Press marquee track
     500  fixed navbar
     600  mobile menu overlay
     700  gallery lightbox (if implemented)
     9999 skip link */
  --z-base: 0;
  --z-decor: 10;
  --z-sticky-local: 20;
  --z-marquee: 100;
  --z-navbar: 500;
  --z-menu-mobile: 600;
  --z-lightbox: 700;
  --z-skiplink: 9999;

  --container-max: 1440px;
  --ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
}
