/*
 * Самохостинг шрифтов (этап 10.9, «производительность фронтенда»).
 *
 * ПОЧЕМУ не Google Fonts CDN:
 *   - Раньше <head> тянул два preconnect (fonts.googleapis.com,
 *     fonts.gstatic.com) и внешний CSS-файл, а затем ещё один round-trip
 *     за самими woff2 — это 3-4 лишних DNS/TLS-соединения в критическом
 *     пути первой отрисовки, прежде чем текст вообще можно показать.
 *     Файлы из той же папки, что и остальной статик, не требуют лишних
 *     соединений и раздаются вместе с CSS/JS с тем же кэшированием
 *     и (в проде) тем же CDN.
 *   - GDPR/приватность: каждый запрос к fonts.gstatic.com/googleapis.com
 *     передаёт Google IP-адрес и User-Agent посетителя ещё до согласия
 *     на любые cookie/трекинг — это лишний повод для жалоб о передаче
 *     персональных данных третьей стороне без необходимости.
 *
 * ПОЧЕМУ font-display: swap:
 *   Пока woff2 не загружен, браузер сразу показывает текст системным
 *   шрифтом (FOUT) вместо невидимого текста (FOIT по умолчанию у
 *   некоторых браузеров). Читаемый контент важнее идеального совпадения
 *   шрифта в первые доли секунды.
 *
 * ПОЧЕМУ сохранены unicode-range:
 *   Разбивка на сабсеты (latin / latin-ext / cyrillic) — это то же
 *   поведение, что отдаёт сама Google Fonts: браузер запрашивает файл
 *   сабсета, только когда на странице реально встречается символ из
 *   его unicode-range. Кириллический текст (весь основной контент
 *   сайта) подтянет cyrillic-файл, а latin/latin-ext (нужны для
 *   отдельных латинских символов, диакритики и т.п.) не скачаются,
 *   если такие символы не встретились. Без unicode-range браузер
 *   был бы вынужден грузить все сабсеты сразу.
 *
 * ПОЧЕМУ Inter — один файл на сабсет с font-weight: 400 700, а не
 * четыре (по одному на 400/500/600/700):
 *   Google при запросе нескольких начертаний Inter одним URL
 *   (см. прежний <link> в base.html: wght@400;500;600;700) современным
 *   браузерам отдаёт вариативный шрифт (ось wght, диапазон 100-900) —
 *   все четыре «начертания» в исходном CSS буквально ссылались на один
 *   и тот же файл (проверено побайтово). Скачивать и хранить в репозитории
 *   4 идентичные копии на сабсет было бы бессмысленным раздуванием (лишние
 *   ~250 КБ мёртвого веса) и заставило бы браузер при использовании
 *   разных начертаний на странице скачивать один и тот же файл под
 *   разными хешированными именами повторно. Диапазон font-weight: 400 700
 *   в @font-face — стандартный способ отдать браузеру вариативный шрифт:
 *   он сам интерполирует нужную насыщенность (400/500/600/700) из одного
 *   файла. JetBrains Mono запрошен и используется только с начертанием
 *   400, поэтому для него — обычный статический файл на сабсет.
 */

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('../fonts/inter-400-700-cyrillic.woff2') format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('../fonts/inter-400-700-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: 'Inter';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('../fonts/inter-400-700-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: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/jetbrains-mono-400-cyrillic.woff2') format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/jetbrains-mono-400-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: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/jetbrains-mono-400-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;
}
