/* ════════════════════════════════════════════════════════════════════
   fonts.css — the brand families, served from this domain.

   They used to load from fonts.googleapis.com, which sent every visitor's
   IP to Google before they had agreed to anything — the point a German
   court ruled on in 2022. Self-hosting removes the third party and drops
   two DNS lookups plus two TLS handshakes from first paint.

   One variable file per family per subset: the whole weight range of Onest
   is a single download and the browser interpolates between them.

   unicode-range is what makes the Cyrillic free. A browser fetches a
   subset only if the page actually contains characters from it, so the
   English pages never touch them — they are here ready for the Russian
   version instead of being bolted on later. English page: ~94 KB of font.
   Russian adds ~40 KB on top.

   The sans is Onest, not Neue Haas Grotesk. Neue Haas is commercial and was
   only ever a local family name in the stack — nothing was served, so every
   visitor already saw the Inter fallback while the design was drawn in Neue
   Haas. Onest is OFL, carries Cyrillic drawn first rather than bolted on,
   and sets ~1.5% narrower than Inter, which moves the live pages back toward
   the Figma measure instead of further from it.

   The accent italic is Playfair Display. Newsreader, the first choice, has
   no Cyrillic at all, so Russian headings would have fallen back to a system
   serif and the two language versions would not have read as one brand;
   Spectral stood in for a while and was dropped once Playfair took the role.
   Only italic 400 is loaded: that is the only cut the site uses, for the one
   emphasised word inside a heading.

   Regenerate: request the same css2 URL with a desktop browser UA, keep
   the latin / latin-ext / cyrillic / cyrillic-ext blocks, and collapse a
   variable file's repeated weights into one range.
   ════════════════════════════════════════════════════════════════════ */

/* Onest · cyrillic-ext */
@font-face{
  font-family:'Onest';
  font-style:normal;
  font-weight:300 700;
  font-display:swap;
  src:url('assets/fonts/onest-normal-cyrillic-ext.woff2') format('woff2');
  unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* Onest · cyrillic */
@font-face{
  font-family:'Onest';
  font-style:normal;
  font-weight:300 700;
  font-display:swap;
  src:url('assets/fonts/onest-normal-cyrillic.woff2') format('woff2');
  unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* Onest · latin-ext */
@font-face{
  font-family:'Onest';
  font-style:normal;
  font-weight:300 700;
  font-display:swap;
  src:url('assets/fonts/onest-normal-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;
}
/* Onest · latin */
@font-face{
  font-family:'Onest';
  font-style:normal;
  font-weight:300 700;
  font-display:swap;
  src:url('assets/fonts/onest-normal-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;
}
/* JetBrains Mono · cyrillic-ext */
@font-face{
  font-family:'JetBrains Mono';
  font-style:normal;
  font-weight:300 500;
  font-display:swap;
  src:url('assets/fonts/jetbrains-mono-normal-cyrillic-ext.woff2') format('woff2');
  unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* JetBrains Mono · cyrillic */
@font-face{
  font-family:'JetBrains Mono';
  font-style:normal;
  font-weight:300 500;
  font-display:swap;
  src:url('assets/fonts/jetbrains-mono-normal-cyrillic.woff2') format('woff2');
  unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* JetBrains Mono · latin-ext */
@font-face{
  font-family:'JetBrains Mono';
  font-style:normal;
  font-weight:300 500;
  font-display:swap;
  src:url('assets/fonts/jetbrains-mono-normal-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;
}
/* JetBrains Mono · latin */
@font-face{
  font-family:'JetBrains Mono';
  font-style:normal;
  font-weight:300 500;
  font-display:swap;
  src:url('assets/fonts/jetbrains-mono-normal-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;
}
/* Playfair Display — the expressive accent italic for the one emphasised word
   in a heading. Has Cyrillic; only italic 400 is used. */
/* Playfair Display · cyrillic */
@font-face{
  font-family:'Playfair Display';
  font-style:italic;
  font-weight:400;
  font-display:swap;
  src:url('assets/fonts/playfair-italic-cyrillic.woff2') format('woff2');
  unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* Playfair Display · latin-ext */
@font-face{
  font-family:'Playfair Display';
  font-style:italic;
  font-weight:400;
  font-display:swap;
  src:url('assets/fonts/playfair-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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Playfair Display · latin */
@font-face{
  font-family:'Playfair Display';
  font-style:italic;
  font-weight:400;
  font-display:swap;
  src:url('assets/fonts/playfair-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;
}
