/* ============================================================
   preservation.studio — self-hosted fonts
   Fraunces (display, variable: opsz/wght/SOFT/WONK)
   Newsreader (body, variable: opsz/wght)
   IBM Plex Mono (institution labels)
   Kalam / Caveat (handwritten notes)
   Latin subsets only — content is English. Served from
   static/fonts via Whitenoise (no Google CDN dependency).
   ============================================================ */

@font-face {
  font-family: "Fraunces";
  src: url("../fonts/fraunces-var.9a1814381455.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Newsreader";
  src: url("../fonts/newsreader-var.f94a697b1650.woff2") format("woff2");
  font-weight: 200 800;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "IBM Plex Mono";
  src: url("../fonts/plexmono-w400.4cc7b4398540.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "IBM Plex Mono";
  src: url("../fonts/plexmono-w700.323c4b085bca.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Kalam";
  src: url("../fonts/kalam-w300.864fdbd0b0bd.woff2") format("woff2");
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Kalam";
  src: url("../fonts/kalam-w400.0a6a7f663878.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Kalam";
  src: url("../fonts/kalam-w700.f3ad3b3081bb.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Caveat";
  src: url("../fonts/caveat-var.2d9de14f93a2.woff2") format("woff2");
  font-weight: 400 700;
  font-style: normal;
  font-display: swap;
}

/* ============================================================
   Expanded tuner library (free, latin-only, self-hosted)
   Added 2026-09 so the vibe tuner has more editorial options:
   display serifs, grotesks, body sans/serifs, mono, scripts.
   ============================================================ */

@font-face {
  font-family: "Playfair Display";
  src: url("../fonts/playfair-var.ef05b30d6e5c.woff2") format("woff2");
  font-weight: 400 900;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Cormorant Garamond";
  src: url("../fonts/cormorant-var.c47ff12887a3.woff2") format("woff2");
  font-weight: 300 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Bricolage Grotesque";
  src: url("../fonts/bricolage-var.ad33cbc6d232.woff2") format("woff2");
  font-weight: 200 800;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Inter";
  src: url("../fonts/inter-var.4b73e2ff3024.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Source Serif 4";
  src: url("../fonts/sourceserif4-var.e9192c2fe0a3.woff2") format("woff2");
  font-weight: 200 900;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Space Grotesk";
  src: url("../fonts/spacegrotesk-var.87c506d88b9f.woff2") format("woff2");
  font-weight: 300 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Libre Caslon Text";
  src: url("../fonts/librecaslon-w400.dab39c7e25a9.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Libre Caslon Text";
  src: url("../fonts/librecaslon-w700.882609d7e89f.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "JetBrains Mono";
  src: url("../fonts/jetbrains-var.b058178d7f30.woff2") format("woff2");
  font-weight: 100 800;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Space Mono";
  src: url("../fonts/spacemono-w400.049dfc5919c2.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Space Mono";
  src: url("../fonts/spacemono-w700.e5e908997a45.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Dancing Script";
  src: url("../fonts/dancingscript-var.513b7c2b78b7.woff2") format("woff2");
  font-weight: 400 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Pacifico";
  src: url("../fonts/pacifico-w400.d150e652cabc.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Satisfy";
  src: url("../fonts/satisfy-w400.0f6e10caa620.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

/* Closest free matches to the client's Creative Market picks
   (Makking / Promenade / Paloma) — added 2026-09 for the client call. */

@font-face {
  font-family: "Gloock";
  src: url("../fonts/gloock-w400.0f08cdb558d2.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Italiana";
  src: url("../fonts/italiana-w400.dca43a8eff26.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Yellowtail";
  src: url("../fonts/yellowtail-w400.5394bcfe7a18.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Grand Hotel";
  src: url("../fonts/grandhotel-w400.ef3d10b55286.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Archivo";
  src: url("../fonts/archivo-var.cd56e2ec63d7.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

/* Free stand-ins for the client's three Creative Market picks — chosen
   from the actual specimen sheets, not by name-similarity guessing:
     Promenade  calligraphic display serif, Didone contrast, sharp wedge
                serifs, ~10° italic  -> Libre Bodoni
     Makking    neo-grotesk, single-storey a, double-storey g, wide
                weight range         -> Switzer
     Paloma     hand-painted flat-brush script, letters unjoined,
                slight right slant, medium/bold -> Permanent Marker
                (Kaushan Script as the joined brush-script alternative)
   All free for commercial use: Libre Bodoni / Permanent Marker =
   Google Fonts (OFL), Kaushan Script = Google Fonts (OFL),
   Switzer = Fontshare ITF Free Font License. Self-hosted like the rest. */

@font-face {
  font-family: "Libre Bodoni";
  src: url("../fonts/librebodoni-var.41607f14733a.woff2") format("woff2");
  font-weight: 400 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Switzer";
  src: url("../fonts/switzer-w400.e23161fd661d.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Switzer";
  src: url("../fonts/switzer-w700.8463cdb9a06b.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Kaushan Script";
  src: url("../fonts/kaushanscript-w400.4648267a9594.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Permanent Marker";
  src: url("../fonts/permanentmarker-w400.1b66ccb16415.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
/* Playfair Display italic (latin) — a TRUE italic serif for the alternating
   headline phrases. Declared as a real italic face because every other family
   here is roman-only: without one the browser synthesises an oblique, which is
   what makes display lines read as cheap. Use via --display-italic. */
@font-face {
  font-family: "Playfair Display";
  src: url("../fonts/playfair-italic-w400.4450ccfb7533.woff2") format("woff2");
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}
