/*
 * Self-hosted brand faces.
 *
 * These used to come from fonts.googleapis.com. Every page load therefore
 * handed a German or Irish visitor's IP address to Google before they had
 * consented to anything — the exact fact pattern LG München I fined a site
 * operator €100 per visitor for (3 O 17493/20). Self-hosting removes the
 * third-party request entirely, so there is nothing to consent to.
 *
 * Both families are SIL OFL 1.1, which explicitly permits this; the licence
 * texts ship beside the fonts (OFL-*.txt) as that licence requires. The .woff2
 * files are the exact binaries Google was serving, so nothing about the
 * rendering changed — only who the browser asks for them.
 *
 * ONE FILE PER SUBSET, NOT PER WEIGHT. Google serves both families as variable
 * fonts, so the 400/500/600/700/800 URLs in the old stylesheet were byte-identical
 * downloads of the same file. Declaring a `font-weight` RANGE against one file
 * is what makes that true here too: 24 requests collapse to 6, and the whole
 * type system is 116 KB instead of ~430 KB.
 *
 * Subsets: latin, latin-ext and vietnamese. Vietnamese is not optional — /vi/
 * is a published locale and its diacritics (U+1EA0–1EF9) live in no other
 * subset, so dropping it would render the Vietnamese site in the fallback face.
 * Cyrillic and Greek are deliberately absent: nothing on the site is written in
 * them, and unicode-range means a browser only fetches the subsets it needs.
 *
 * `font-display: swap` keeps text readable during the fetch — a driver on a
 * phone in a parking lot should never see a blank page waiting on a font.
 */

/* ── Plus Jakarta Sans — UI + display (weights 400–800) ──────────────────── */

@font-face {
  font-family: "Plus Jakarta Sans";
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url("/fonts/plus-jakarta-sans-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+20AC, U+2122, U+2191, U+2193,
    U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: "Plus Jakarta Sans";
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url("/fonts/plus-jakarta-sans-latin-ext.woff2") format("woff2");
  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;
}

@font-face {
  font-family: "Plus Jakarta Sans";
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url("/fonts/plus-jakarta-sans-vietnamese.woff2") format("woff2");
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1,
    U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329,
    U+1EA0-1EF9, U+20AB;
}

/* ── JetBrains Mono — every number on the site (weights 400–700) ─────────── */

@font-face {
  font-family: "JetBrains Mono";
  font-style: normal;
  font-weight: 100 800;
  font-display: swap;
  src: url("/fonts/jetbrains-mono-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+20AC, U+2122, U+2191, U+2193,
    U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: "JetBrains Mono";
  font-style: normal;
  font-weight: 100 800;
  font-display: swap;
  src: url("/fonts/jetbrains-mono-latin-ext.woff2") format("woff2");
  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;
}

@font-face {
  font-family: "JetBrains Mono";
  font-style: normal;
  font-weight: 100 800;
  font-display: swap;
  src: url("/fonts/jetbrains-mono-vietnamese.woff2") format("woff2");
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1,
    U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329,
    U+1EA0-1EF9, U+20AB;
}
