/* Display (headline) faces for the story-site revamp — LL-0199.
 *
 * Kept SEPARATE from fonts.css on purpose: fonts.css is generated by
 * scripts/fetch-fonts.mjs from the Google Fonts CSS2 payload and says not to
 * hand-edit, so anything added there is lost the next time that script runs.
 * These two faces are not fetched from that endpoint; they are subset and
 * instanced locally from the upstream variable TTFs, so they live here.
 *
 * WHY A SECOND FACE AT ALL. Measured teardown of plysocial.com and
 * timeleft.com (2026-07-31): both pair a distinctive display face with a
 * neutral workhorse grotesk for everything else (Noka + KMR Melange Grotesk,
 * FeatureDeck + FixelText). The site used Plus Jakarta Sans for all of it and
 * took its hierarchy from weight and size alone, which is why it read
 * competent rather than characterful. Plus Jakarta Sans remains the workhorse;
 * this is headlines only.
 *
 * HOW THESE WERE BUILT (reproducible):
 *   1. upstream variable TTF from the Google Fonts repo (ofl/fraunces, ofl/gabarito)
 *   2. Fraunces instanced to opsz=144, SOFT=60, WONK=1 via fontTools.varLib.instancer,
 *      leaving only wght variable. SOFT and WONK are brand decisions (how warm and how
 *      wonky the letterforms are), not responsive ones, so pinning them is correct and
 *      it cut the latin subset from 122.1 KB to 37.1 KB, a 70% saving.
 *   3. pyftsubset to the latin / latin-ext ranges below, --flavor=woff2
 *
 * Licences: both SIL OFL 1.1, vendored beside this file as OFL-Fraunces.txt and
 * OFL-Gabarito.txt. Free for commercial use, no cost, self-hosted (no CDN call).
 *
 * font-display: swap matches the rest of the site. Headlines are the largest
 * text on the page, so a block would be a visible hole; a swap is the lesser
 * evil and Plus Jakarta Sans is a close enough metric fallback.
 */

/* ── Fraunces: the chosen display face ─────────────────────────────────── */
@font-face {
  font-family: "Fraunces";
  font-style: normal;
  font-weight: 100 900; /* wght left variable */
  font-display: swap;
  src: url(/fonts/fraunces-variable-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;
}
@font-face {
  font-family: "Fraunces";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url(/fonts/fraunces-variable-latin-ext.woff2) format("woff2");
  unicode-range:
    U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF,
    U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0,
    U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* Real italic, not a synthesised slant. Many headlines across the site set a
   word or clause in italic (Home, How it works, Communities, Safety all do),
   and without this file the browser fakes it by shearing the roman. Fraunces
   has a genuine italic cut with different letterforms, so the faked version was
   both uglier and off-brand. Same instancing as the roman (opsz 144, SOFT 60,
   WONK 1), latin only, 45.6 KB. */
@font-face {
  font-family: "Fraunces";
  font-style: italic;
  font-weight: 100 900;
  font-display: swap;
  src: url(/fonts/fraunces-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+2074, U+20AC, U+2122, U+2191, U+2193,
    U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ── Gabarito: the agreed fallback, vendored so the swap is instant ─────── */
@font-face {
  font-family: "Gabarito";
  font-style: normal;
  font-weight: 400 900;
  font-display: swap;
  src: url(/fonts/gabarito-variable-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;
}
@font-face {
  font-family: "Gabarito";
  font-style: normal;
  font-weight: 400 900;
  font-display: swap;
  src: url(/fonts/gabarito-variable-latin-ext.woff2) format("woff2");
  unicode-range:
    U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF,
    U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0,
    U+2113, U+2C60-2C7F, U+A720-A7FF;
}
