/* tokens.css — palette, type, spacing. v3.2 editorial-diagnostic register revived.
   Oxide locked to #973c28 (v3.2) per v3.3 plan decision #6. */

/* B8 — self-hosted variable fonts (latin subset). font-display: optional → no CLS and no
   FOUT: a brief block, then the system fallback is kept for the rest of the page load if the
   font isn't ready (it shows on repeat/cached visits). Georgia/Consolas remain the fallbacks. */
@font-face {
  font-family: "Source Serif 4 Var";
  font-style: normal;
  font-weight: 200 900;
  font-display: optional;
  src: url("../assets/fonts/source-serif-4-latin-wght-normal.woff2") format("woff2");
}
@font-face {
  font-family: "Source Serif 4 Var";
  font-style: italic;
  font-weight: 200 900;
  font-display: optional;
  src: url("../assets/fonts/source-serif-4-latin-wght-italic.woff2") format("woff2");
}
@font-face {
  font-family: "Geist Mono Var";
  font-style: normal;
  font-weight: 100 900;
  font-display: optional;
  src: url("../assets/fonts/geist-mono-latin-wght-normal.woff2") format("woff2");
}

:root {
  --paper: #f2ede3;
  --bone: #e8e2d5;
  --ink: #14181e;
  --ink-soft: #20262d;
  --slate: #5b6470;
  --sage: #7c8975;
  --sage-soft: #b5beae;
  --oxide: #973c28;
  --oxide-bright: #d86c4d; /* oxide eyebrow/text on dark grounds */
  --brass: #b19052;
  --blue: #315f9f;
  --white: #fffaf0;

  --line: rgba(20, 24, 30, .16);
  --line-strong: rgba(20, 24, 30, .34);
  --line-light: rgba(242, 237, 227, .18);

  --serif: "Source Serif 4 Var", Georgia, "Times New Roman", serif;
  --sans: "Segoe UI", Arial, sans-serif;
  --mono: "Geist Mono Var", Consolas, "Courier New", monospace;

  --max: 1260px;
  --page-x: clamp(18px, 4.8vw, 72px);

  /* runtime-driven */
  --progress: 0%;
  --hero-y: 0;            /* scroll parallax (nav.js) */
  --hero-px: 0;          /* pointer parallax x, -0.5..0.5 (hero.js) */
  --hero-py: 0;          /* pointer parallax y, -0.5..0.5 (hero.js) */
  --cursor-x: 50vw;
  --cursor-y: 50vh;

  /* plate contract defaults */
  --plate-ratio: 16 / 9;
}
