/* Self-hosted fonts (PR16) — latin subset woff2 */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/assets/fonts/inter-latin-400-normal.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: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/assets/fonts/inter-latin-600-normal.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;
}
/* Variable Fraunces — opsz 9–144, wght 100–900, SOFT 0–100, WONK 0–1.
   One self-hosted file drives optical-size display type and the drafting
   personality axes. Static 500/700 kept below as a graceful fallback if the
   variable file fails to load (older engines ignore the range descriptor). */
@font-face {
  font-family: 'Fraunces Variable';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('/assets/fonts/fraunces-latin-variable-full-normal.woff2') format('woff2-variations');
  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;
}
/* Optional cohesive mono voice: fall back to system mono if unset. */
:root {
  --font-display: 'Fraunces Variable', Georgia, 'Times New Roman', serif;
}

/* Optical sizing: let the engine scale opsz to the rendered size everywhere
   Fraunces is used, then push explicit personality on the big display cuts. */
:where(.editorial-shell, .ps-shell) :where(h1, h2, h3, h4),
.ps-display,
.migrated-assessment .hero__title {
  font-family: var(--font-display);
  font-optical-sizing: auto;
}
