/* ===========================================================================
   JAYME — SELF-HOSTED TYPEFACES
   ---------------------------------------------------------------------------
   Two faces, both SIL Open Font License, both served from our own origin:

     Instrument Serif  — display. High-contrast editorial serif; the same
                         typographic move Harvey makes with TWK Ghost (law-
                         review gravitas) without the commercial licence.
     Inter             — UI and every figure. Deliberately recessive grotesque
                         with real tabular numerals, and the Latin Extended
                         coverage we need for Turkish (ı İ ğ ş) and Brazilian
                         Portuguese (ã ç õ).

   WHY SELF-HOSTED AND NOT A CDN
   A page that loads fonts from Google sends every visitor's IP address to
   Google before they have consented to anything. A German court has already
   awarded damages on exactly that basis (LG München I, 3 O 17493/20), and we
   are selling data sovereignty to a Turkish industrial group under KVKK and to
   Brazilian firms under LGPD plus professional-secrecy duties. Zero
   third-party requests on page load is both the correct engineering choice and
   a sentence worth being able to say in the room.

   Consequence: JAYME's front page makes NO third-party network request at all.

   TO INSTALL THE FILES — run once, from web/:
       ./fetch-fonts.sh
   The @font-face rules below degrade gracefully if the files are missing:
   the stacks in tokens.css fall back to ui-serif (New York on macOS) and the
   system grotesque, so a missing file is a downgrade, never a broken page.
   =========================================================================== */

/* Inter — one variable file covers every weight we use (400/500/600). */
@font-face {
  font-family: "Inter var";
  src: url("fonts/InterVariable.woff2") format("woff2-variations"),
       url("fonts/InterVariable.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
  /* Latin + Latin Extended-A: covers EN, PT-BR and TR. Declaring the range
     lets the browser skip the download entirely for text it cannot serve. */
  unicode-range: U+0000-00FF, U+0100-017F, U+0180-024F, U+0259, U+1E00-1EFF,
                 U+2000-206F, U+2070-209F, U+20A0-20BF, U+2122, U+2191, U+2193,
                 U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Instrument Serif ships Regular and Italic only — correct for a display
   face. Never synthesise a bold from it; use size and colour for hierarchy
   instead, which is what an editorial face is designed for. */
@font-face {
  font-family: "Instrument Serif";
  /* woff2 first; the TTF is listed so the face still loads if fetch-fonts.sh
     could not find a woff2 converter on the machine that ran it. */
  src: url("fonts/InstrumentSerif-Regular.woff2") format("woff2"),
       url("fonts/InstrumentSerif-Regular.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0100-017F, U+0180-024F, U+2000-206F,
                 U+20A0-20BF, U+2122, U+2212, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Instrument Serif";
  src: url("fonts/InstrumentSerif-Italic.woff2") format("woff2"),
       url("fonts/InstrumentSerif-Italic.ttf") format("truetype");
  font-weight: 400;
  font-style: italic;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0100-017F, U+0180-024F, U+2000-206F,
                 U+20A0-20BF, U+2122, U+2212, U+FEFF, U+FFFD;
}

/* A display serif set at 28px+ needs its tracking pulled in; the same face at
   16px needs it left alone. Encoded once here so nobody has to remember. */
.display-lg { font-size: var(--text-display-lg); letter-spacing: -0.8px; line-height: 1.05; }
.display    { font-size: var(--text-display);    letter-spacing: -0.5px; line-height: 1.12; }
.display-sm { font-size: var(--text-display-sm); letter-spacing: -0.3px; line-height: 1.2; }
