/*
 * SPD self-hosted brand fonts (formerly loaded from the Google Fonts CDN).
 *
 * Families:
 *   Cormorant Garamond — display/serif, latin (+ one italic).
 *   Frank Ruhl Libre   — the display face's Hebrew half.
 *   Heebo              — THE body face, both scripts (latin + hebrew subsets).
 *
 * Google serves these families as VARIABLE fonts — one woff2 per
 * family/style/subset covers the whole weight range — so each rule below
 * declares a variable font-weight range. Subsets are latin + hebrew (where
 * the family provides hebrew); unicode-range values are copied verbatim from
 * Google's css2 response so per-script loading behaves exactly as before.
 * font-display: swap, with preloads in __root.tsx keeping the swap window ~0.
 *
 * Epilogue was retired in wave 14: Heebo now carries body text in both scripts,
 * so the Latin/Hebrew body seam is gone and one fewer file ships. Verified by
 * cmap parse before removal — see the note on --font-sans in src/styles.css.
 */
/* Cormorant Garamond italic — latin */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/cormorant-garamond-italic-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+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Cormorant Garamond — latin */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500 700;
  font-display: swap;
  src: url(/fonts/cormorant-garamond-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+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Heebo — hebrew */
@font-face {
  font-family: 'Heebo';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url(/fonts/heebo-hebrew.woff2) format('woff2');
  unicode-range: U+0307-0308, U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
}
/* Heebo — latin */
@font-face {
  font-family: 'Heebo';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url(/fonts/heebo-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+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Frank Ruhl Libre — hebrew */
@font-face {
  font-family: 'Frank Ruhl Libre';
  font-style: normal;
  font-weight: 500 700;
  font-display: swap;
  src: url(/fonts/frank-ruhl-libre-hebrew.woff2) format('woff2');
  unicode-range: U+0307-0308, U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
}
/* Frank Ruhl Libre — latin */
@font-face {
  font-family: 'Frank Ruhl Libre';
  font-style: normal;
  font-weight: 500 700;
  font-display: swap;
  src: url(/fonts/frank-ruhl-libre-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+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/*
 * Heebo Fallback — a metric-matched stand-in for the swap window and for any
 * device that never loads the webfont.
 *
 * A plain `system-ui` fallback re-flows the page when Heebo arrives: the
 * substitute is a different width and, more visibly, a different line box.
 * These overrides make the LOCAL face imitate Heebo's metrics, so the swap is a
 * change of shape and not a change of layout.
 *
 * Numbers are measured, not published: tools compared Heebo's own hmtx advance
 * widths against Liberation Sans (metric-compatible with Arial by design, and
 * the file that was actually parsed) over a 217-character corpus of the app's
 * real vocabulary, then divided Heebo's hhea ascent/descent by that ratio —
 * Chromium resolves the ascent/descent overrides against the size-adjusted em,
 * so the division is what makes the used metrics land on Heebo's.
 *   Heebo   avg advance 0.49363em, ascent 2146/2048, descent 862/2048, gap 0
 *   Arial   avg advance 0.49998em
 *   → size-adjust 98.73%, ascent 106.13%, descent 42.63%, line-gap 0%
 *
 * The `local()` sources are one metric family (Arial ≡ Helvetica ≡ Liberation
 * Sans, identical advance widths by construction) — matching a second family
 * would need a second @font-face with its own numbers. Where none of the three
 * is installed the descriptor resolves to nothing and the face drops out of the
 * stack silently, leaving the plain system fallback: degraded, never broken.
 */
@font-face {
  font-family: 'Heebo Fallback';
  font-style: normal;
  font-weight: 400 700;
  src: local('Arial'), local('Helvetica'), local('Liberation Sans');
  size-adjust: 98.73%;
  ascent-override: 106.13%;
  descent-override: 42.63%;
  line-gap-override: 0%;
}
