/**
 * Self-hosted webfonts.
 *
 * Each family dropped into fonts/ needs an @font-face here before the browser
 * can render it, AND a matching entry in Appearance::fontPresets() (in the
 * reciklart_settings module) before an editor can pick it. The `font-family`
 * name below must exactly match the `stack` in that preset, and each src: url()
 * must match a real file on disk, character for character.
 *
 * We self-host .woff2 (converted from the OFL .ttf originals with fonttools;
 * ~65% smaller). Keep the .ttf around as the source of truth, but only .woff2
 * is shipped to browsers.
 *
 * Variable fonts (one file, "...VariableFont_...") get a WEIGHT RANGE
 * (font-weight: 100 900) — the single file serves both normal and bold.
 * Static families get one @font-face per weight (400 + 700).
 *
 * font-display: swap → text renders immediately in the fallback, then swaps to
 * the webfont once loaded (no invisible-text flash).
 */

@font-face {
  font-family: "Chakra Petch";
  src: url("../../fonts/Chakra_Petch/ChakraPetch-Regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Chakra Petch";
  src: url("../../fonts/Chakra_Petch/ChakraPetch-Bold.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Alumni Sans";
  src: url("../../fonts/Alumni_Sans/AlumniSans.woff2") format("woff2");
  font-weight: 100 900;   /* range → one file serves normal & bold */
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Courier Prime";
  src: url("../../fonts/Courier_Prime/CourierPrime-Bold.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

/* Datatype — variable (width + weight axes; picker drives weight only). */
@font-face {
  font-family: "Datatype";
  src: url("../../fonts/Datatype/Datatype-VariableFont_wdth,wght.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

/* Lekton — static family, normal + bold. */
@font-face {
  font-family: "Lekton";
  src: url("../../fonts/Lekton/Lekton-Regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Lekton";
  src: url("../../fonts/Lekton/Lekton-Bold.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

/* Merriweather Sans — variable (weight axis). */
@font-face {
  font-family: "Merriweather Sans";
  src: url("../../fonts/Merriweather_Sans/MerriweatherSans-VariableFont_wght.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Rubik Iso";
  src: url("../../fonts/Rubik_Iso/RubikIso-Regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

/* Smooch Sans — variable (weight axis). */
@font-face {
  font-family: "Smooch Sans";
  src: url("../../fonts/Smooch_Sans/SmoochSans-VariableFont_wght.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

/* Sofia Sans Condensed — variable (weight axis). */
@font-face {
  font-family: "Sofia Sans Condensed";
  src: url("../../fonts/Sofia_Sans_Condensed/SofiaSansCondensed-VariableFont_wght.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

/* Sono — variable (MONO + weight axes; picker drives weight only). */
@font-face {
  font-family: "Sono";
  src: url("../../fonts/Sono/Sono-VariableFont_MONO,wght.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
