/* Roboto, self-hosted. Apache License 2.0.

   Owner direction 2026-09-01: match the face on Marki Microwave's microstrip
   filter tool, which is Roboto throughout. Confirmed by reading that page's
   computed styles in headless Chromium rather than by eye - their front door is
   behind a Cloudflare challenge, so a plain fetch returns the interstitial and
   its fonts, not theirs. It replaces the Georgia body face the site launched
   with.

   Self-hosted rather than linked to fonts.googleapis.com, deliberately. This
   service is built so a visitor doing a synthesis makes no request to anyone but
   this box, and a font link would quietly undo that on every page view. It also
   means nobody else's outage can leave the page faceless.

   FOUR FILES, NOT TWELVE. Roboto v51 is a variable font, so the 400, 600 and
   700 cuts Google serves are byte-identical; they are declared here as one
   100-900 range each. Only the subsets this site sets type in are shipped:

     latin    body text, and the degree, plus-minus, micro, multiplication and
              en-dash signs, which all sit inside U+0000-00FF or U+2000-206F
     greek    epsilon, delta and omega, from the substrate and impedance labels
     arrows   a three-glyph cut for the back arrows and the <= in the fab notes.
              Google's latin subset carries only the UP and DOWN arrows, so
              without this the LEFT and RIGHT ones drop mid-sentence to whatever
              sans the reader has, at a visibly different weight.

   No cyrillic, vietnamese, latin-ext, math or symbols cut, and nothing in Greek
   italic, because nothing on the site needs one. Regeneration snippet is in the
   README. Nginx serves /static with a long cache life, and the filenames are
   not content-hashed, so rename them if a future Roboto version is dropped in.
*/

@font-face {
  font-family: 'Roboto';
  font-style: italic;
  font-weight: 100 900;
  font-stretch: 100%;
  font-display: swap;
  src: url(/static/fonts/roboto-latin-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: 'Roboto';
  font-style: normal;
  font-weight: 100 900;
  font-stretch: 100%;
  font-display: swap;
  src: url(/static/fonts/roboto-greek.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}

@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 100 900;
  font-stretch: 100%;
  font-display: swap;
  src: url(/static/fonts/roboto-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: 'Roboto';
  font-style: normal;
  font-weight: 100 900;
  font-stretch: 100%;
  font-display: swap;
  src: url(/static/fonts/roboto-arrows.woff2) format('woff2');
  unicode-range: U+2190, U+2192, U+2264;
}
