/* ============================================================================
   Self-hosted webfonts
   ----------------------------------------------------------------------------
   These used to load from fonts.googleapis.com, which handed every visitor's IP
   address to Google before a word of the page rendered. The privacy policy says
   this site does not track anyone; a third-party font request undercut that, so
   the files are served from here instead. There are now no third-party requests
   on cards.place at all.

   Two decisions worth knowing if you regenerate these:

   1. ONLY THE `latin` SUBSETS. Google also ships latin-ext, cyrillic,
      cyrillic-ext and vietnamese for these families. The site is in English, so
      those are 14 extra files for glyphs that never render.

   2. FRAUNCES AND ARCHIVO ARE VARIABLE FONTS. Google emits a separate
      @font-face per requested weight, but the woff2 it serves for each is
      byte-identical - one file covers the whole weight axis. Declaring them
      once with a weight RANGE is both correct and three fewer downloads. That
      alone took this from 370 KB across 9 files to 222 KB across 5.

   To regenerate: fetch the css2 URL for these families with a modern browser
   user-agent (an old one gets you TTF instead of woff2), keep the `latin`
   @font-face blocks, download what they reference, and de-duplicate by hash.
   ========================================================================== */

/* Latin, plus the punctuation and symbols the site actually uses. */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 400 700;              /* variable: one file spans the range */
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/fraunces-normal.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;
}

/* The italic is a genuinely different file, not the same one slanted. */
@font-face {
  font-family: 'Fraunces';
  font-style: italic;
  font-weight: 400 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/fraunces-italic.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: 'Archivo';
  font-style: normal;
  font-weight: 400 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/archivo-normal.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;
}

/* IBM Plex Mono is NOT variable here - 400 and 500 are separate files. */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/ibm-plex-mono-normal.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: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/fonts/ibm-plex-mono-normal-2.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;
}
