/* The site's two faces, served from the site itself so a page asks Google for nothing: Unbounded
   (display, 500 and 600) and Mona Sans (text, 400 to 600 and italic 400), with the system faces
   that stand in for them, at their size, until the files arrive. Linked by every head (shell.js,
   which the news and the help center load too, checkoutPage(), the printable manual), since the
   print page does not load base.css, which names the families in --display and --body; shell.js
   preloads the Latin files it opens with, by addresses copied from here (self-hosted.test.mjs).
   Each file is the one Google Fonts served, split by script, so a page downloads only the scripts
   its text uses; the upright files are variable over the family's weight axis, so another weight is
   a wider range, not a new file, while the italic was asked for at 400 alone. Mona Sans was asked
   for at its width of 100, from
   fonts.googleapis.com/css2?family=Mona+Sans:ital,wdth,wght@0,100,400..600;1,100,400, whose files
   leave out → (U+2192) and the "case" forms the upstream font has. Both are under the SIL Open Font
   License (fonts/<family>/OFL.txt). */

/* Unbounded */
@font-face {
  font-family: "Unbounded";
  font-style: normal;
  font-weight: 500 600;
  font-display: swap;
  src: url("/css/fonts/unbounded/cyrillic-ext.woff2") format("woff2");
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

@font-face {
  font-family: "Unbounded";
  font-style: normal;
  font-weight: 500 600;
  font-display: swap;
  src: url("/css/fonts/unbounded/cyrillic.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
  font-family: "Unbounded";
  font-style: normal;
  font-weight: 500 600;
  font-display: swap;
  src: url("/css/fonts/unbounded/vietnamese.woff2") format("woff2");
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

@font-face {
  font-family: "Unbounded";
  font-style: normal;
  font-weight: 500 600;
  font-display: swap;
  src: url("/css/fonts/unbounded/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;
}

@font-face {
  font-family: "Unbounded";
  font-style: normal;
  font-weight: 500 600;
  font-display: swap;
  src: url("/css/fonts/unbounded/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;
}

/* Mona Sans */
@font-face {
  font-family: "Mona Sans";
  font-style: normal;
  font-weight: 400 600;
  font-stretch: 100%;
  font-display: swap;
  src: url("/css/fonts/mona-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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: "Mona Sans";
  font-style: normal;
  font-weight: 400 600;
  font-stretch: 100%;
  font-display: swap;
  src: url("/css/fonts/mona-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: "Mona Sans";
  font-style: italic;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("/css/fonts/mona-sans/italic-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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: "Mona Sans";
  font-style: italic;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("/css/fonts/mona-sans/italic-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;
}

/* Fallbacks, named second in --display and --body: Arial's faces, or Liberation Sans, their metric
   twin on Linux, scaled to the room each of ours takes, so text drawn before the files arrive wraps
   and sits where it will and the swap moves nothing (layout shift). Measured in Chrome on 2026-10-19:
   size-adjust is a paragraph's width in our face over its width in Arial's, and each override our
   face's ascent or descent over that. Unbounded takes Arial Bold rather than Arial Black, which Linux
   lacks. */
@font-face {
  font-family: "Mona Sans Fallback";
  font-style: normal;
  font-weight: 400;
  src: local("Arial"), local("ArialMT"), local("Liberation Sans"), local("LiberationSans");
  size-adjust: 103.09%;
  ascent-override: 105.73%;
  descent-override: 31.04%;
  line-gap-override: 0%;
}

@font-face {
  font-family: "Mona Sans Fallback";
  font-style: normal;
  font-weight: 500;
  src: local("Arial Bold"), local("Arial-BoldMT"), local("Liberation Sans Bold"), local("LiberationSans-Bold");
  size-adjust: 97.96%;
  ascent-override: 111.27%;
  descent-override: 32.67%;
  line-gap-override: 0%;
}

@font-face {
  font-family: "Mona Sans Fallback";
  font-style: normal;
  font-weight: 600 700;
  src: local("Arial Bold"), local("Arial-BoldMT"), local("Liberation Sans Bold"), local("LiberationSans-Bold");
  size-adjust: 99.47%;
  ascent-override: 109.58%;
  descent-override: 32.17%;
  line-gap-override: 0%;
}

@font-face {
  font-family: "Mona Sans Fallback";
  font-style: italic;
  font-weight: 400;
  src: local("Arial Italic"), local("Arial-ItalicMT"), local("Liberation Sans Italic"), local("LiberationSans-Italic");
  size-adjust: 102%;
  ascent-override: 106.86%;
  descent-override: 31.37%;
  line-gap-override: 0%;
}

@font-face {
  font-family: "Unbounded Fallback";
  font-style: normal;
  font-weight: 400 500;
  src: local("Arial Bold"), local("Arial-BoldMT"), local("Liberation Sans Bold"), local("LiberationSans-Bold");
  size-adjust: 127.69%;
  ascent-override: 78.31%;
  descent-override: 19.58%;
  line-gap-override: 0%;
}

@font-face {
  font-family: "Unbounded Fallback";
  font-style: normal;
  font-weight: 600 700;
  src: local("Arial Bold"), local("Arial-BoldMT"), local("Liberation Sans Bold"), local("LiberationSans-Bold");
  size-adjust: 129.33%;
  ascent-override: 77.32%;
  descent-override: 19.33%;
  line-gap-override: 0%;
}
