/* Fonts are served from the site itself (latin subset, variable), preloaded in the page head. */
@font-face { font-family: "Archivo"; font-style: normal; font-display: swap; font-weight: 100 900; font-stretch: 62% 125%; src: url("/fonts/archivo-var.woff2") format("woff2-variations"), url("/fonts/archivo-var.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Geist"; font-style: normal; font-display: swap; font-weight: 100 900; src: url("/fonts/geist-var.woff2") format("woff2-variations"), url("/fonts/geist-var.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

:root {
  color-scheme: dark;
  --space-3xs: 2px; --space-2xs: 4px; --space-xs: 8px; --space-sm: 12px; --space-md: 16px; --space-lg: 24px; --space-xl: 40px; --space-2xl: 64px; --space-3xl: 96px; --space-4xl: 144px;
  --text-xs: 0.875rem; --text-sm: 0.9375rem; --text-md: 1.0625rem; --text-lg: 1.25rem; --text-xl: 1.5625rem; --text-2xl: 1.953rem; --text-3xl: 2.441rem;
  --text-display-s: clamp(2.5rem, 4.5vw + 0.5rem, 4.5rem); --text-display: clamp(3.5rem, 8vw + 0.5rem, 8.5rem);
  --text-section: clamp(2.25rem, 3.4vw + 1rem, 4.25rem); --text-title: clamp(1.25rem, 0.75vw + 0.875rem, 1.625rem); --text-lead: clamp(1.125rem, 0.5vw + 1rem, 1.4375rem);
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1); --ease-in: cubic-bezier(0.7, 0, 0.84, 0); --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --dur-micro: 120ms; --dur-short: 220ms; --dur-long: 520ms;
  --color-error: oklch(58% 0.21 27); --color-success: oklch(62% 0.16 150);
  --container: 1440px; --gutter: 64px; --gap-columns: 32px; --section-gap-s: 120px; --section-gap: 160px; --section-gap-l: 200px;
  --z-base: 1; --z-raised: 10; --z-dropdown: 100; --z-sticky: 200; --z-sticky-nav: 300; --z-modal: 400; --z-toast: 500; --z-tooltip: 600;

  /* Hybrid: chrome on near-black everywhere, one red signal. */
  --color-paper: oklch(11% 0.006 260); --color-paper-2: oklch(15.5% 0.008 260); --color-paper-3: oklch(21% 0.01 260);
  --color-ink: oklch(96% 0.004 260); --color-ink-2: oklch(86% 0.006 260); --color-muted: oklch(76% 0.008 260);
  --color-rule: oklch(26% 0.01 260); --color-rule-2: oklch(44% 0.01 260);
  /* Night: the deeper stage the bar sits on */
  --color-night: oklch(7.5% 0.005 260); --color-night-2: oklch(14% 0.008 260); --color-night-3: oklch(22% 0.01 260);
  --color-on-night: oklch(96% 0.004 260); --color-on-night-2: oklch(84% 0.006 260);
  /* Signal: competition red. Plates: calibrated bumper colours */
  --color-accent: oklch(54% 0.21 27); --color-accent-ink: oklch(98.5% 0.003 27); --color-accent-hover: oklch(48% 0.19 27); --color-accent-text: oklch(70% 0.17 27); --color-focus: oklch(66% 0.2 27);
  --color-plate-45-text: oklch(74% 0.12 258); --color-plate-25-text: oklch(78% 0.13 150);
  --color-plate-45: oklch(55% 0.19 258); --color-plate-35: oklch(84% 0.16 92); --color-plate-25: oklch(63% 0.17 150); --color-plate-10: oklch(95% 0.004 260);
  /* Chrome: the metal gradient for display type */
  --color-chrome-1: oklch(99% 0.002 260); --color-chrome-2: oklch(82% 0.008 260); --color-chrome-3: oklch(64% 0.012 260);
  --color-shine: oklch(100% 0 0 / 0.95); --color-sheen: oklch(100% 0 0 / 0.22); --color-glint: oklch(100% 0.01 260); --color-glint-glow: oklch(88% 0.06 250 / 0.9);
  --color-night-glow: oklch(18% 0.01 260); --color-night-scrim: oklch(7.5% 0.005 260 / 0.85); --mask-solid: #000;
  /* Steel x photo haze: fine brushed grain, and a heavy veil over each section's photo. */
  --color-grain: oklch(100% 0 0 / 0.022); --color-veil: oklch(9% 0.005 260 / 0.86);
  /* Text laid over photos stays light on a dark fade in both modes. */
  --color-photo-scrim: oklch(7.5% 0.005 260 / 0.85); --color-photo-scrim-end: oklch(7.5% 0.005 260 / 0.96); --color-photo-ink: oklch(97% 0.004 260); --color-photo-ink-2: oklch(86% 0.006 260); --color-photo-veil: oklch(7.5% 0.005 260 / 0.35);
  --color-steel: oklch(82% 0.008 260);

  --font-display: "Geist", ui-sans-serif, system-ui, sans-serif; --font-poster: "Archivo", ui-sans-serif, sans-serif; --font-body: "Geist", ui-sans-serif, system-ui, sans-serif;
  --display-stretch: 100%; --display-weight: 700; --tracking-display: -0.045em;
  --radius-card: 20px; --radius-pill: 999px; --rule-hair: 1px;
  --shadow-card: 0 1px 2px oklch(20% 0.01 260 / 0.05);
  --shadow-float: 0 8px 24px oklch(10% 0.01 265 / 0.35);
}

/* Light: follows the device setting automatically; there is no switch. The chrome turns to dark polished steel. */
@media (prefers-color-scheme: light) {
  :root {
    color-scheme: light;
    --color-paper: oklch(97.5% 0.003 260); --color-paper-2: oklch(95% 0.004 260); --color-paper-3: oklch(91% 0.006 260);
    --color-ink: oklch(17% 0.01 260); --color-ink-2: oklch(32% 0.01 260); --color-muted: oklch(45% 0.01 260);
    --color-rule: oklch(88% 0.006 260); --color-rule-2: oklch(72% 0.008 260);
    --color-night: oklch(96.5% 0.004 260); --color-night-2: oklch(93% 0.005 260); --color-night-3: oklch(88% 0.006 260);
    --color-on-night: oklch(17% 0.01 260); --color-on-night-2: oklch(34% 0.01 260);
    --color-accent-hover: oklch(48% 0.19 27); --color-accent-text: oklch(47% 0.19 27); --color-focus: oklch(50% 0.2 27);
    --color-plate-45-text: oklch(45% 0.17 258); --color-plate-25-text: oklch(44% 0.13 150);
    --color-chrome-1: oklch(30% 0.01 260); --color-chrome-2: oklch(54% 0.012 260); --color-chrome-3: oklch(14% 0.01 260);
    --color-shine: oklch(100% 0 0 / 0.9); --color-glint: oklch(42% 0.03 260); --color-glint-glow: oklch(72% 0.12 250 / 0.8);
    --color-night-glow: oklch(90% 0.006 260); --color-night-scrim: oklch(97% 0.004 260 / 0.85);
    --color-grain: oklch(0% 0 0 / 0.028); --color-veil: oklch(97% 0.003 260 / 0.88);
    --shadow-card: 0 1px 2px oklch(20% 0.01 260 / 0.06); --shadow-float: 0 8px 24px oklch(20% 0.01 265 / 0.14);
  }
}

/* The hero and the nav over it stay dark in both modes: they sit on the clip. */
@media (prefers-color-scheme: light) {
  .poster, .nav {
    color-scheme: dark;
    --color-night: oklch(7.5% 0.005 260); --color-night-2: oklch(14% 0.008 260); --color-night-3: oklch(22% 0.01 260);
    --color-on-night: oklch(96% 0.004 260); --color-on-night-2: oklch(84% 0.006 260);
    --color-chrome-1: oklch(99% 0.002 260); --color-chrome-2: oklch(82% 0.008 260); --color-chrome-3: oklch(64% 0.012 260);
    --color-glint: oklch(100% 0.01 260); --color-glint-glow: oklch(88% 0.06 250 / 0.9);
    --color-night-glow: oklch(18% 0.01 260); --color-night-scrim: oklch(7.5% 0.005 260 / 0.85);
  }
}
