/* Self-hosted Roboto (400/500/700) — loaded NON-render-blocking to keep the LCP hero image
   off the VeryHigh font contention path. See Base.astro for the async <link> that applies this.
   Roboto Slab (big headings / .font-slab) is self-hosted with font-display:optional in
   src/styles/global.css + a high-priority woff2 preload in Base.astro, so the hero H1 never
   FOUT-swaps (used from first paint when ready; fallback kept, not swapped, when not).
   font-display:swap + a metric-matched "Roboto Fallback" face (Arial with Roboto's ascent/
   descent/size-adjust overrides) keep the body fallback→web-font swap shift-free (CLS). */

@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/roboto-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+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/fonts/roboto-latin-500-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/fonts/roboto-latin-700-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

/* Metric-matched fallback: Arial re-scaled to Roboto's metrics so the swap causes no layout
   shift. On systems without Arial (e.g. Android, where system-ui IS Roboto) the face is skipped
   and the next family in the stack applies. Values are the standard capsize/next-font Roboto set. */
@font-face {
  font-family: 'Roboto Fallback';
  src: local('Arial');
  ascent-override: 92.49%;
  descent-override: 24.34%;
  line-gap-override: 0.00%;
  size-adjust: 100.30%;
}
