/* Self-hosted fonts (latin subset) — replaces the render-blocking, cross-origin
   Google Fonts request to cut FCP/LCP on slow connections. font-display: swap
   keeps text visible during load; the critical weights are <link rel=preload>ed
   in each page <head>. */

/* Inter — body */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('/assets/fonts/self/inter-300.woff2') format('woff2');
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/assets/fonts/self/inter-400.woff2') format('woff2');
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/assets/fonts/self/inter-500.woff2') format('woff2');
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/assets/fonts/self/inter-600.woff2') format('woff2');
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/assets/fonts/self/inter-700.woff2') format('woff2');
}

/* Syne — display / headings. font-display: optional (not swap): the file is
   <link rel=preload>ed, so it is normally ready for first paint and renders
   with no FOUT; if it is not ready in time the fallback is kept for the page
   load instead of swapping in late and reflowing the large hero heading
   (that swap-reflow was the homepage's main CLS source). */
@font-face {
  font-family: 'Syne';
  font-style: normal;
  font-weight: 700;
  font-display: optional;
  src: url('/assets/fonts/self/syne-700.woff2') format('woff2');
}
