/* ══════════════════════════════════════════════════════════════════════════
   tripflair-fonts.css — the brand faces, served from our own origin
   ══════════════════════════════════════════════════════════════════════════
   flat_426. These were loaded from fonts.googleapis.com, and that was the last
   thing standing between the brochure and a print that cannot fail.

   WHY THIS FILE EXISTS, in one paragraph, because the reason is not "offline
   support":

     html2canvas clones the document into an iframe and waits for that iframe
     to load before drawing a single pixel. The clone carries the <head>, so it
     re-requests every stylesheet — including the cross-origin one for these
     fonts. When that request did not come back, the export stalled at "capture
     side 1 begin" and no amount of retrying at a smaller scale could help,
     because the capture had never begun. Measured: 123,603ms and three failed
     attempts, reproduced in tests/pdf-export-probe.js.

   A brochure is a PRINTED object. Its typography is not decoration that can
   degrade to Georgia when a CDN has a bad morning — it is the product. Serving
   the faces ourselves means the brochure renders identically on every device,
   on a plane, behind a corporate proxy, and inside a cloned iframe that has no
   network at all.

   Same reasoning the repository already applies to supabase-js, html2canvas
   and jsPDF in /vendor. This is that rule, applied to the last holdout.

   ── LICENCE ────────────────────────────────────────────────────────────────
   All four families are SIL Open Font License 1.1, which expressly permits
   self-hosting and redistribution. The licence texts ship beside the files in
   /fonts/OFL-*.txt, which is what OFL §5 requires.

     Fraunces  Undercase Type          OFL-1.1
     DM Sans   Colophon Foundry / DM   OFL-1.1
     Syne      Bonjour Monde           OFL-1.1
     Inter     Rasmus Andersson        OFL-1.1

   ── VARIABLE, NOT SEVENTEEN STATIC CUTS ────────────────────────────────────
   The old Google request asked for nine Fraunces cuts, five DM Sans and three
   Syne. As variable fonts that is one file per family (two for Fraunces, which
   needs a real italic rather than a synthesised slant) and the FULL weight
   range rather than the handful somebody remembered to list — so a design that
   reaches for 350 or 550 simply gets it.

   Fraunces is the `opsz` cut: optical size + weight + italic, which is exactly
   what the app asks for. The `full` cut adds SOFT and WONK axes that nothing
   here uses, at 268KB against 148KB.

   ── display: swap ──────────────────────────────────────────────────────────
   Kept from the previous setup. Text is readable immediately in the fallback
   and reflows when the face arrives. On a same-origin cached file that window
   is now measured in milliseconds rather than in round trips to a CDN.
   ══════════════════════════════════════════════════════════════════════════ */

@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  font-variation-settings: 'opsz' 14;
  src: url('/fonts/fraunces-var.woff2') format('woff2-variations');
}
@font-face {
  font-family: 'Fraunces';
  font-style: italic;
  font-display: swap;
  font-weight: 100 900;
  font-variation-settings: 'opsz' 14;
  src: url('/fonts/fraunces-var-italic.woff2') format('woff2-variations');
}

@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 100 1000;
  src: url('/fonts/dm-sans-var.woff2') format('woff2-variations');
}

@font-face {
  font-family: 'Syne';
  font-style: normal;
  font-display: swap;
  font-weight: 400 800;
  src: url('/fonts/syne-var.woff2') format('woff2-variations');
}

/* Used by the member-editions print window only. Vendored for the same reason
   as the rest: that window is a BRAND NEW document written with document.write,
   and it was fetching this face from a CDN at the exact moment somebody was
   trying to print. */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url('/fonts/inter-var.woff2') format('woff2-variations');
}
