/* The three faces this site sets, served from here rather than from Google.

   They used to come from fonts.googleapis.com, which meant Google was told the
   address of everyone who opened any page, before they had done anything at
   all. That sits badly on a site whose whole point is that files never leave
   the machine they are on, and in Germany it has been the subject of damages
   rather than merely of opinion.

   All three are under the SIL Open Font License 1.1, which permits exactly
   this. Only the latin and latin-ext cuts are kept: the site is in English and
   latin-ext carries the accents of the languages around it. Hanken Grotesk is
   a variable font, so one file covers both weights it is asked for.

   `font-display: swap` keeps text readable while a face is still arriving,
   which is what the Google stylesheet asked for too.

   A fourth face, Caveat (OFL 1.1, /fonts/caveat-OFL.txt), is not declared
   here: it is the handwriting of a typed signature in the docs room, and the
   signing sheet adds it itself, from this site, only when its Type tab is
   opened (docs/sign.js), so no other page fetches it. */

/* latin */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url('/fonts/hanken-grotesk-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;
}
/* latin-ext */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url('/fonts/hanken-grotesk-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;
}
/* latin */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/jetbrains-mono-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;
}
/* latin-ext */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/jetbrains-mono-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;
}
/* latin */
@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url('/fonts/outfit-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;
}
/* latin-ext */
@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url('/fonts/outfit-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;
}

/* Stand-ins, until each face is in.

   `swap` writes a face's text in the next family of its stack until the
   face has come. That family used to be whatever the machine had (Avenir
   Next, Trebuchet MS, SF Mono), each wider or narrower than the face and
   with lines of its own, so a face that came late moved and rewrapped what
   it took over. Second in every stack now is a stand-in made to the face's
   measure out of a face the machine already has -- nothing is fetched:
   Arial or Arial Bold, Helvetica Neue Bold or Menlo where Apple's fit as
   well, Courier New (or Liberation and Arimo or Cousine, made to Arial's and
   Courier New's measure, where those are what there is), with

   - size-adjust: as wide as the face, fitted to the site's own words at
     each weight it is set in (scripts/fonts-qa/fallback-fit.mjs);
   - ascent-, descent- and line-gap-override: the face's own line, so a line
     in the stand-in is the line the face will make (Safari 18 reads none of
     these: there the stand-in keeps its own line, which is why Apple's two
     come first: theirs put the words on the face's own baseline);
   - unicode-range: what the face really draws, so a character it has not
     got still goes on to the family it went to before;
   - the face's own weights, so it is picked, and emboldened, as the face is
     (and from 600 always a bold face of the machine's: Safari makes a
     regular one bold itself, a twentieth wider);
   - the figures in a face of their own, whose zero is the face's: the ch
     unit is the zero of the face that draws it, and a room's title is 13ch
     wide.

   With every face in, nothing of the page is written in a stand-in. A
   machine with none of these faces (Android) skips them and is as before.
   The rules below are written by scripts/fonts-qa/fallback-css.mjs, the
   looks' own faces' in their own sheets. */
/* -- Hanken Grotesk fallback: written by scripts/fonts-qa/fallback-css.mjs -- */
/* Hanken Grotesk 400: Arial, fitted to 1632 texts (half within 0.8%, nine in ten within 2.8%) */
@font-face {
  font-family: 'Hanken Grotesk fallback';
  font-style: normal;
  font-weight: 400 449;
  font-display: swap;
  src: local('Arial'), local('ArialMT'), local('Liberation Sans'), local('LiberationSans'), local('Arimo'), local('Arimo-Regular');
  size-adjust: 100.534%;
  ascent-override: 99.4689%;
  descent-override: 30.1391%;
  line-gap-override: 0.0000%;
  unicode-range: U+0020-002F, U+003A-007E, U+00A0-017E, U+018F, U+0192, U+019D, U+01A0-01A1, U+01AF-01B0, U+01CD-01D4, U+01E6-01E7, U+01EA-01EB, U+01FA-01FF, U+0218-021B, U+0232-0233, U+0237, U+0259, U+0272, U+02C6-02C7, U+02DA, U+02DC-02DD, U+02F5-02F6, U+0304, U+0308, U+1E20-1E21, U+1E44-1E45, U+1E80-1E85, U+1E9E, U+1EF2-1EF9, U+2013-2014, U+2018-201A, U+201C-201E, U+2020, U+2022, U+2026, U+2039-203A, U+2044, U+20AB-20AC, U+20B1, U+20B3-20B4, U+20B8, U+20BD, U+2122, U+2212, U+2215;
}
/* Hanken Grotesk 400, its figures: the zero 0.5600 em, as the face's */
@font-face {
  font-family: 'Hanken Grotesk fallback';
  font-style: normal;
  font-weight: 400 449;
  font-display: swap;
  src: local('Arial'), local('ArialMT'), local('Liberation Sans'), local('LiberationSans'), local('Arimo'), local('Arimo-Regular');
  size-adjust: 100.692%;
  ascent-override: 99.3129%;
  descent-override: 30.0918%;
  line-gap-override: 0.0000%;
  unicode-range: U+0030-0039;
}
/* Hanken Grotesk 500: Arial Bold, fitted to 35 texts (half within 1.6%, nine in ten within 3.2%) */
@font-face {
  font-family: 'Hanken Grotesk fallback';
  font-style: normal;
  font-weight: 450 549;
  font-display: swap;
  src: local('Arial Bold'), local('Arial-BoldMT'), local('Liberation Sans Bold'), local('LiberationSans-Bold'), local('Arimo Bold'), local('Arimo-Bold');
  size-adjust: 94.687%;
  ascent-override: 105.6108%;
  descent-override: 32.0001%;
  line-gap-override: 0.0000%;
  unicode-range: U+0020-002F, U+003A-007E, U+00A0-017E, U+018F, U+0192, U+019D, U+01A0-01A1, U+01AF-01B0, U+01CD-01D4, U+01E6-01E7, U+01EA-01EB, U+01FA-01FF, U+0218-021B, U+0232-0233, U+0237, U+0259, U+0272, U+02C6-02C7, U+02DA, U+02DC-02DD, U+02F5-02F6, U+0304, U+0308, U+1E20-1E21, U+1E44-1E45, U+1E80-1E85, U+1E9E, U+1EF2-1EF9, U+2013-2014, U+2018-201A, U+201C-201E, U+2020, U+2022, U+2026, U+2039-203A, U+2044, U+20AB-20AC, U+20B1, U+20B3-20B4, U+20B8, U+20BD, U+2122, U+2212, U+2215;
}
/* Hanken Grotesk 500, its figures: the zero 0.5600 em, as the face's */
@font-face {
  font-family: 'Hanken Grotesk fallback';
  font-style: normal;
  font-weight: 450 549;
  font-display: swap;
  src: local('Arial Bold'), local('Arial-BoldMT'), local('Liberation Sans Bold'), local('LiberationSans-Bold'), local('Arimo Bold'), local('Arimo-Bold');
  size-adjust: 100.692%;
  ascent-override: 99.3129%;
  descent-override: 30.0918%;
  line-gap-override: 0.0000%;
  unicode-range: U+0030-0039;
}
/* Hanken Grotesk 600: Helvetica Neue Bold (else Arial Bold), fitted to 895 texts (half within 1.4%, nine in ten within 4.0%) */
@font-face {
  font-family: 'Hanken Grotesk fallback';
  font-style: normal;
  font-weight: 550 600;
  font-display: swap;
  src: local('Helvetica Neue Bold'), local('HelveticaNeue-Bold'), local('Arial Bold'), local('Arial-BoldMT'), local('Liberation Sans Bold'), local('LiberationSans-Bold'), local('Arimo Bold'), local('Arimo-Bold');
  size-adjust: 94.548%;
  ascent-override: 105.7668%;
  descent-override: 32.0473%;
  line-gap-override: 0.0000%;
  unicode-range: U+0020-002F, U+003A-007E, U+00A0-017E, U+018F, U+0192, U+019D, U+01A0-01A1, U+01AF-01B0, U+01CD-01D4, U+01E6-01E7, U+01EA-01EB, U+01FA-01FF, U+0218-021B, U+0232-0233, U+0237, U+0259, U+0272, U+02C6-02C7, U+02DA, U+02DC-02DD, U+02F5-02F6, U+0304, U+0308, U+1E20-1E21, U+1E44-1E45, U+1E80-1E85, U+1E9E, U+1EF2-1EF9, U+2013-2014, U+2018-201A, U+201C-201E, U+2020, U+2022, U+2026, U+2039-203A, U+2044, U+20AB-20AC, U+20B1, U+20B3-20B4, U+20B8, U+20BD, U+2122, U+2212, U+2215;
}
/* Hanken Grotesk 600, its figures: the zero 0.5600 em, as the face's */
@font-face {
  font-family: 'Hanken Grotesk fallback';
  font-style: normal;
  font-weight: 550 600;
  font-display: swap;
  src: local('Helvetica Neue Bold'), local('HelveticaNeue-Bold'), local('Arial Bold'), local('Arial-BoldMT'), local('Liberation Sans Bold'), local('LiberationSans-Bold'), local('Arimo Bold'), local('Arimo-Bold');
  size-adjust: 100.719%;
  ascent-override: 99.2857%;
  descent-override: 30.0836%;
  line-gap-override: 0.0000%;
  unicode-range: U+0030-0039;
}
/* -- end of Hanken Grotesk fallback -- */
/* -- JetBrains Mono fallback: written by scripts/fonts-qa/fallback-css.mjs -- */
/* JetBrains Mono 400: Menlo (else Courier New), fitted to 333 texts (half within 0.0%, nine in ten within 0.1%) */
@font-face {
  font-family: 'JetBrains Mono fallback';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: local('Menlo Regular'), local('Menlo-Regular'), local('Courier New'), local('CourierNewPSMT'), local('Liberation Mono'), local('LiberationMono'), local('Cousine'), local('Cousine-Regular');
  size-adjust: 99.659%;
  ascent-override: 102.3487%;
  descent-override: 30.1026%;
  line-gap-override: 0.0000%;
  unicode-range: U+000D, U+0020-002F, U+003A-007E, U+00A0-0131, U+0134-017F, U+018F, U+0192, U+01A0-01A1, U+01AF-01B0, U+01CD-01CE, U+01E6-01E7, U+01EA-01EB, U+01F4-01F5, U+01FC-01FF, U+0218-021B, U+0232-0233, U+0237, U+0259, U+02B9-02BA, U+02BC, U+02C6-02C7, U+02C9, U+02DA, U+02DC-02DD, U+02F3, U+02F7, U+0304, U+0308, U+1E80-1E85, U+1E9E, U+1EF2-1EF9, U+2013-2014, U+2018-201A, U+201C-201E, U+2020, U+2022, U+2026, U+2032-2033, U+2039-203A, U+2044, U+20AB-20AC, U+20AE, U+20BD, U+20BF, U+2113, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF;
}
/* JetBrains Mono 400, its figures: the zero 0.6000 em, as the face's */
@font-face {
  font-family: 'JetBrains Mono fallback';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: local('Menlo Regular'), local('Menlo-Regular'), local('Courier New'), local('CourierNewPSMT'), local('Liberation Mono'), local('LiberationMono'), local('Cousine'), local('Cousine-Regular');
  size-adjust: 99.659%;
  ascent-override: 102.3486%;
  descent-override: 30.1025%;
  line-gap-override: 0.0000%;
  unicode-range: U+0030-0039;
}
/* -- end of JetBrains Mono fallback -- */
/* -- Outfit fallback: written by scripts/fonts-qa/fallback-css.mjs -- */
/* Outfit 800: Arial Bold, fitted to 90 texts (half within 1.4%, nine in ten within 3.7%) */
@font-face {
  font-family: 'Outfit fallback';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: local('Arial Bold'), local('Arial-BoldMT'), local('Liberation Sans Bold'), local('LiberationSans-Bold'), local('Arimo Bold'), local('Arimo-Bold');
  size-adjust: 98.214%;
  ascent-override: 101.8187%;
  descent-override: 26.4729%;
  line-gap-override: 0.0000%;
  unicode-range: U+000D, U+0020-002F, U+003A-007E, U+00A0-00AC, U+00AE-0107, U+010A-0113, U+0116-011B, U+011E-0123, U+0126-0127, U+012A-012B, U+012E-0133, U+0136-0137, U+0139-013E, U+0141-0148, U+014A-014D, U+0150-015B, U+015E-0161, U+0164-0165, U+016A-017E, U+01CD-01CE, U+0218-021B, U+0237, U+02BC, U+02C6-02C7, U+02DA, U+02DC-02DD, U+0304, U+0308, U+1E80-1E85, U+1E9E, U+1EF2-1EF3, U+2013-2014, U+2018-201A, U+201C-201E, U+2022, U+2026, U+2039-203A, U+2044, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215;
}
/* Outfit 800, its figures: the zero 0.6710 em, as the face's */
@font-face {
  font-family: 'Outfit fallback';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: local('Arial Bold'), local('Arial-BoldMT'), local('Liberation Sans Bold'), local('LiberationSans-Bold'), local('Arimo Bold'), local('Arimo-Bold');
  size-adjust: 120.650%;
  ascent-override: 82.8841%;
  descent-override: 21.5499%;
  line-gap-override: 0.0000%;
  unicode-range: U+0030-0039;
}
/* -- end of Outfit fallback -- */
