/* Hallmark · route: custom (bespoke) · structure: scroll-driven mission film, one fixed stage, chapters scrub mission time
 * idea: "every number on screen comes from the real trajectory at that scroll position"
 * paper: oklch(12% 0.012 255) · accent: oklch(68% 0.155 52) SLS core-stage orange · display: Newsreader · body: Geist · outlier: Geist Mono (telemetry only)
 * axes: dark / roman-serif / warm · gates: checked at handoff · studied: no
 */
@font-face {
  font-family: "Newsreader";
  src: url("../assets/fonts/newsreader.woff2") format("woff2");
  font-weight: 200 800;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Geist";
  src: url("../assets/fonts/geist.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Geist Mono";
  src: url("../assets/fonts/geist-mono.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

:root {
  --color-paper: oklch(12% 0.012 255);
  --color-paper-2: oklch(16% 0.014 255);
  --color-paper-3: oklch(21% 0.014 255);
  --color-rule: oklch(34% 0.012 255);
  --color-neutral: oklch(62% 0.012 255);
  --color-muted: oklch(76% 0.01 250);
  --color-ink: oklch(95% 0.008 85);
  --color-accent: oklch(68% 0.155 52);
  --color-accent-ink: oklch(78% 0.13 60);
  --color-focus: oklch(80% 0.14 62);
  --color-scrim: oklch(10% 0.012 255 / 0.78);
  --color-scrim-0: oklch(10% 0.012 255 / 0);
  --color-shade: oklch(8% 0.01 255 / 0.55);
  --color-rule-soft: oklch(34% 0.012 255 / 0.6);
  --color-halo-text: oklch(8% 0.01 255 / 0.85);
  --color-overlay: oklch(6% 0.01 255 / 0.92);

  --font-display: "Newsreader", ui-serif, Georgia, serif;
  --font-body: "Geist", ui-sans-serif, system-ui, sans-serif;
  --font-mono: "Geist Mono", ui-monospace, monospace;

  --text-xs: 0.75rem;
  --text-sm: 0.875rem;
  --text-base: 1.0625rem;
  --text-lg: clamp(1.15rem, 0.6vw + 1rem, 1.4rem);
  --text-xl: clamp(1.45rem, 1.2vw + 1.1rem, 2.1rem);
  --text-2xl: clamp(2rem, 2.6vw + 1.2rem, 3.4rem);
  --text-3xl: clamp(2.6rem, 4.4vw + 1.2rem, 5.6rem);
  --text-display: clamp(4.2rem, 13vw, 12.5rem);

  --space-2xs: 0.25rem;
  --space-xs: 0.5rem;
  --space-sm: 0.75rem;
  --space-md: 1rem;
  --space-lg: 1.5rem;
  --space-xl: 2.5rem;
  --space-2xl: 4rem;
  --space-3xl: 7rem;
  --gutter: clamp(1rem, 4.5vw, 4.5rem);

  --rule: 1px solid var(--color-rule);
  --radius-sm: 2px;

  --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: 420ms;
}
