/* ============================================
   Ultra Properties — Self-hosted fonts
   (Inter + Playfair Display, latin variable
   woff2, served from /fonts/ — no third-party
   font requests; see the Google Fonts css2
   source URLs in git history for provenance.)
   ============================================ */

/* Inter — variable font covering 400–700 (matches the previous
   Google Fonts weights). font-display: swap keeps text visible while
   the file loads; the pre-JS fallback stack is metric-similar enough
   that the swap is a CLS no-op on the pages we measure. */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('/fonts/inter-latin.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+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Playfair Display — variable font covering 400–900 (the site uses
   700–900 for display headings, incl. the home hero h1 — the LCP
   element, hence the preload in each page head). font-display: optional
   (not swap): on a slow first load the hero renders in the fallback
   serif (Georgia — metric-close) and never reflows; on a fast or
   cached load the webfont is ready in time and is used. A late font
   swap of the LCP element is exactly what pushes LCP past 2.5 s. */
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 400 900;
  font-display: optional;
  src: url('/fonts/playfair-latin.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+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
