/* ===========================================================================
   The typefaces, self-hosted.

   The visual system in styles.css has always asked for Archivo, Public Sans
   and IBM Plex Mono. Nothing ever loaded them, so every one of them fell back
   to system-ui: the display/body distinction collapsed, `font-stretch` did
   nothing (system fonts have no width axis), and the slashed zero that keeps a
   column of figures readable never appeared. The design was written down but
   not shipped.

   Linked by both documents -- index.html and app/index.html -- rather than
   imported by the application stylesheet, because the landing page never
   loads that stylesheet and still has to be set in the right faces.

   Self-hosted rather than fetched from a CDN, because public/_headers keeps
   font-src at 'self' and that is worth more than the bytes. All three are
   SIL Open Font License 1.1, which permits this.

   Files are the `latin` and `latin-ext` subsets from Google Fonts. The
   unicode-range on each is what makes latin-ext free: a browser fetches it
   only if the page actually contains a character in that range, so a US
   tenancy pays for latin alone.
   ========================================================================= */

/* --- Archivo: headings, eyebrows -----------------------------------------
   Variable on both weight and width. The width axis is the point -- the
   mastheads and section labels are set slightly expanded, which is what makes
   them read as ledger rulings rather than as ordinary bold text. */

@font-face {
  font-family: "Archivo";
  font-style: normal;
  font-weight: 400 700;
  font-stretch: 62% 125%;
  font-display: swap;
  src: url("/fonts/archivo-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: "Archivo";
  font-style: normal;
  font-weight: 400 700;
  font-stretch: 62% 125%;
  font-display: swap;
  src: url("/fonts/archivo-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;
}

/* --- Public Sans: body ---------------------------------------------------
   A US federal design-system face. Plain, legal-looking, and unbothered by
   long runs of small text -- which is most of this application. */

@font-face {
  font-family: "Public Sans";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("/fonts/public-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: "Public Sans";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("/fonts/public-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;
}

/* --- IBM Plex Mono: every figure -----------------------------------------
   Two static weights rather than a variable face, because only 400 and 600
   are used and two subsets are smaller than one variable file.

   This is the face that carries the slashed zero and true tabular figures.
   In a document where a misread 0/O or a column that fails to align is the
   difference between agreeing and not, that is not a stylistic preference. */

@font-face {
  font-family: "IBM Plex Mono";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/fonts/plex-mono-400-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: "IBM Plex Mono";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/fonts/plex-mono-600-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;
}
