/* Self-hosted DM Mono / Rift / Rubik.
   Self-hosted on purpose so the site works with no internet -- these are
   real files under fonts/ now rather than base64 blobs, which is still
   fully self-hosted, just not render-blocking.

   Why the change: every face used to be embedded here as a base64 data:
   URL, which made this stylesheet 1.31MB (612KB gzipped). A stylesheet
   blocks rendering until it has downloaded in full, so the whole font
   library -- including weights a given screen never uses -- had to arrive
   before anything painted at all. As separate files the browser fetches
   them in parallel, off the critical path, and only the faces actually
   rendered; font-display: swap (unchanged, on every face) means text shows
   immediately in the fallback and swaps when the real face lands.

   Rubik was also carrying FOUR dead @font-face rules: a latin-only woff2
   subset of each weight, declared before an identical-descriptor TrueType
   rule. When two @font-face rules match on family/style/weight the last one
   wins, so the browser used the TrueType and downloaded the woff2 subsets
   for nothing. That was the right outcome, not a bug to invert -- the
   subsets are missing c-caron, a-ogonek, and the rest of Latin Extended,
   i.e. half the surnames on an NHL roster (Pastrnak, Necas, Girgensons).
   The woff2 files here are full conversions of the TrueType originals,
   verified identical: same 885 glyphs, same advance widths, same em units,
   same vertical metrics -- so they render exactly as before at ~30% of
   the bytes.

   The legacy .ttf/.woff files stay listed as a second src entry purely as
   a fallback; any browser from 2016 on takes the woff2 and never fetches
   them. */

@font-face {
  font-family: 'Rubik';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/rubik-400.woff2) format('woff2'),
       url(../fonts/rubik-400.ttf) format('truetype');
}
@font-face {
  font-family: 'Rubik';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/rubik-500.woff2) format('woff2'),
       url(../fonts/rubik-500.ttf) format('truetype');
}
@font-face {
  font-family: 'Rubik';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/rubik-600.woff2) format('woff2'),
       url(../fonts/rubik-600.ttf) format('truetype');
}
@font-face {
  font-family: 'Rubik';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/rubik-700.woff2) format('woff2'),
       url(../fonts/rubik-700.ttf) format('truetype');
}

@font-face {
  font-family: 'DM Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/dmmono-400.woff2) format('woff2');
}
@font-face {
  font-family: 'DM Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/dmmono-500.woff2) format('woff2');
}

@font-face {
  font-family: 'Rift';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/rift-700.woff2) format('woff2'),
       url(../fonts/rift-700.woff) format('woff');
}
@font-face {
  font-family: 'Rift';
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/rift-700-italic.woff2) format('woff2'),
       url(../fonts/rift-700-italic.woff) format('woff');
}
