/*
 * Self hosted fonts, latin subset only, woff2.
 * Written by tools/build_fonts.py from Google's own css2 API with a
 * Chrome User Agent, which is what makes a variable axis query return a
 * real variable woff2 instead of one static instance. The font FILES are
 * fetched once by that script and committed here, so this stylesheet
 * makes ZERO requests to Google at runtime.
 *
 * DM Sans carries an `opsz` axis in the binary that CSS @font-face has no
 * descriptor for, so only font-weight appears below. Set it per element
 * with font-variation-settings if it is ever wanted.
 *
 * The three `fallback` faces below exist so a swap does not reflow the
 * page. Their size-adjust is solved from the real x height of each
 * downloaded binary against the fallback family's own x height, and the
 * ascent, descent and line gap overrides are the real face's hhea ratios
 * divided by that adjustment. Every number is computed, none is typed.
 */

@font-face {
  font-family: 'DM Serif Display';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/dm-serif-display-400.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: 'DM Serif Display';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/dm-serif-display-400-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: 'DM Sans';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('../fonts/dm-sans-variable.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: 'DM Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/dm-mono-400.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: 'DM Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/dm-mono-500.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;
}

/* DM Serif Display fallback: x height matched to DM Serif Display */
@font-face {
  font-family: 'DM Serif Display fallback';
  src: local('Georgia'), local('Times New Roman');
  size-adjust: 99.91%;
  ascent-override: 103.7%;
  descent-override: 33.53%;
  line-gap-override: 0.0%;
}

/* DM Sans fallback: x height matched to DM Sans */
@font-face {
  font-family: 'DM Sans fallback';
  src: local('Helvetica Neue'), local('Arial'), local('Segoe UI');
  size-adjust: 101.44%;
  ascent-override: 97.8%;
  descent-override: 30.56%;
  line-gap-override: 0.0%;
}

/* DM Mono fallback: x height matched to DM Mono */
@font-face {
  font-family: 'DM Mono fallback';
  src: local('Menlo'), local('Consolas'), local('Courier New');
  size-adjust: 95.56%;
  ascent-override: 103.81%;
  descent-override: 32.44%;
  line-gap-override: 0.0%;
}
