/* Self-hosted subsets: no Google CDN request, so no visitor IP leaves the site.

   These are VARIABLE fonts. The upstream CSS declares one @font-face per
   weight, each pointing at its own URL, but the files behind those URLs are
   byte-identical: a variable face carries the whole weight axis in one file.
   Nineteen files here were only eight distinct ones, and because each weight
   named a different URL the browser could not reuse a download - a first
   visit pulled the same Google Sans bytes three times over.

   Declaring the weight as a RANGE lets one file serve every weight in it.
   Verified pixel-identical: text measured at 400, 500, 600 and 700 renders to
   the same width from the single file as it did from four separate ones.

   Ranges match the weights the app actually uses. Widening one means checking
   the file supports it; the browser silently clamps out-of-range values. */

/* ---------- Google Sans: UI text, weights 400-700 ---------- */

/* latin-ext */
@font-face {
  font-family: 'Google Sans';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('gsans-1.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: 'Google Sans';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('gsans-2.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;
}

/* ---------- Google Sans Code: monospace figures, weights 400-500 ---------- */

/* box drawing */
@font-face {
  font-family: 'Google Sans Code';
  font-style: normal;
  font-weight: 400 500;
  font-display: swap;
  src: url('gscode-9.woff2') format('woff2');
  unicode-range: U+2000-2001, U+2004-2008, U+200A, U+23B8-23BD, U+2500-259F;
}

/* latin-ext */
@font-face {
  font-family: 'Google Sans Code';
  font-style: normal;
  font-weight: 400 500;
  font-display: swap;
  src: url('gscode-10.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: 'Google Sans Code';
  font-style: normal;
  font-weight: 400 500;
  font-display: swap;
  src: url('gscode-11.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;
}

/* ---------- Google Sans Flex: the wordmark, weights 600-700 ---------- */

/* latin-ext */
@font-face {
  font-family: 'Google Sans Flex';
  font-style: normal;
  font-weight: 600 700;
  font-stretch: 100%;
  font-display: swap;
  src: url('gsflex-15.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: 'Google Sans Flex';
  font-style: normal;
  font-weight: 600 700;
  font-stretch: 100%;
  font-display: swap;
  src: url('gsflex-16.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;
}

/* ---------- Material Symbols: the icon set ----------
   font-display: block, not swap: a swapped icon font shows the ligature text
   ("settings", "close") in the fallback face before the glyphs arrive. */
@font-face {
  font-family: 'Material Symbols Outlined';
  font-style: normal;
  font-weight: 400;
  font-display: block;
  src: url('symbols-v5.woff2') format('woff2');
}
