/* Self-hosted webfonts.

   Each family ships as a single variable file per subset — that is how Google
   serves them too; its stylesheet just points four static-looking @font-face
   blocks at the same URL. Declaring the real `wght` axis range here means one
   download covers every weight the site uses, instead of fetching the identical
   file once per weight.

   Nothing is fetched from a third-party origin at runtime. The latin files are
   preloaded in each page's <head>, so they are in flight before this stylesheet
   has even been parsed. Regenerate with the snippet in README.md. */

/* latin-ext */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 100 900;
  font-display: block;
  src: url(../fonts/hanken-grotesk-latin-ext-var.woff2) format('woff2-variations');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, 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;
}
/* latin */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 100 900;
  font-display: block;
  src: url(../fonts/hanken-grotesk-latin-var.woff2) format('woff2-variations');
  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;
}
/* latin-ext */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400 800;
  font-display: block;
  src: url(../fonts/jetbrains-mono-latin-ext-var.woff2) format('woff2-variations');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, 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;
}
/* latin */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400 800;
  font-display: block;
  src: url(../fonts/jetbrains-mono-latin-var.woff2) format('woff2-variations');
  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;
}
/* latin-ext */
@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 100 900;
  font-display: block;
  src: url(../fonts/outfit-latin-ext-var.woff2) format('woff2-variations');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, 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;
}
/* latin */
@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 100 900;
  font-display: block;
  src: url(../fonts/outfit-latin-var.woff2) format('woff2-variations');
  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;
}

/* ---------------------------------------------------------------------------
   Metric-matched fallbacks, used only if a font cannot be loaded. The primary
   faces use `font-display: block` so preloaded local fonts settle before text
   paints, avoiding a visible fallback-to-webfont swap.

   These fallbacks otherwise cover the window before the real faces
   arrive: the local system font wrapped in the real face's own vertical
   metrics, with `size-adjust` from the measured width ratio between the two, so
   nothing moves if a swap does happen. The real faces always win in the end —
   `font-display: optional` would let the browser skip them for a whole page
   view, which silently renders the headings in the wrong typeface.
   --------------------------------------------------------------------------- */
@font-face {
  font-family: "Outfit Fallback";
  src: local("Segoe UI"), local("Helvetica Neue"), local("Arial");
  ascent-override: 100%; descent-override: 26%; line-gap-override: 0%;
  size-adjust: 99.31%;
}
@font-face {
  font-family: "Hanken Fallback";
  src: local("Segoe UI"), local("Helvetica Neue"), local("Arial");
  ascent-override: 100%; descent-override: 30.3%; line-gap-override: 0%;
  size-adjust: 101.74%;
}
@font-face {
  font-family: "JetBrains Fallback";
  src: local("Consolas"), local("SFMono-Regular"), local("Menlo");
  ascent-override: 102%; descent-override: 30%; line-gap-override: 0%;
  size-adjust: 109.13%;
}
