/* ============================================================
   Шрифты Журнала/Foyer - свои, с этого же домена.

   Было: одна ссылка на fonts.googleapis.com в index.html. Чужой домен
   на критическом пути (DNS, TLS, их CSS, и только потом сами файлы) -
   и это ещё полбеды. Хуже то, что у Гугла для Playfair Display нет
   сабсета cyrillic-ext, а в сабсете cyrillic нет казахских Ә Ғ Қ Ң Ө
   Ү Һ. На kk-локали заголовки собирались посимвольно: часть Playfair,
   часть Georgia. В самом шрифте эти буквы есть, Гугл их просто не
   отдавал.

   Стало: файлы нарезаны из исходных вариативных шрифтов репозитория
   google/fonts - латиница, вся кириллица (казахский целиком),
   пунктуация, ₸ и №. Ось веса обрезана до 400-700: выше в проекте не
   используется, а лишний диапазон это лишние килобайты. Один файл на
   начертание вместо четырёх сабсетов.
   Пересобрать: bash backend/tools/build-fonts.sh

   Вариативность важна не для красоты: в коде живут веса 550 и 650
   (весь foyerbox - суммы в кассе, чеке, ценниках). На статических
   начертаниях браузер округлял их до 600 и 700, теперь они честные.

   ВЕРСИЯ. ?v=1 в адресах ниже - это ключ вечного кэша: сервер отдаёт
   .woff2 с параметром ?v как immutable на год (backend/server.js,
   staticFile). injectAssetVersions сюда не дотягивается, он
   переписывает только .js и .css в разметке. Поэтому при замене
   файла шрифта цифру надо поднять РУКАМИ И ЗДЕСЬ, И в <link
   rel="preload"> в index.html. Разойдутся - preload и @font-face
   укажут на разные адреса, и браузер скачает шрифт дважды.
   ============================================================ */

/* Основной текст интерфейса. Курсива у Golos не существует в природе:
   в семье только прямые начертания. Поэтому наклон в подсказках
   (.ed-note, .cab-hint и прочие) как был синтетическим, так и
   остаётся - переезд тут ничего не меняет. */
@font-face {
  font-family: "Golos Text";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("golos-text-var.woff2?v=1") format("woff2");
}

/* Заголовки, названия, цитаты.

   Нижняя граница намеренно 500, а не 400. В проекте 47 serif-правил
   без явного веса: они наследуют 400 от body, а Гугл отдавал только
   500 и 600, и браузер всё это время округлял их вверх до 500. Открой
   мы честный 400 - все заголовки разом посветлели бы, и это была бы
   уже не смена источника шрифтов, а редизайн.
   Захотите настоящий Playfair Regular - поменяйте на «400 700»,
   файл его содержит. */
@font-face {
  font-family: "Playfair Display";
  font-style: normal;
  font-weight: 500 700;
  font-display: swap;
  src: url("playfair-var.woff2?v=1") format("woff2");
}

/* Курсив Playfair раньше не грузился вовсе - в ссылке на Гугл его не
   было. Всё, что помечено serif + italic (.cab-quote, .cab-review__t,
   врезки в blocks.css, эпиграфы площадок), браузер рисовал
   искусственным наклоном прямого начертания. Теперь настоящий, с
   рисованными формами букв: это единственное намеренное визуальное
   изменение всего патча. */
@font-face {
  font-family: "Playfair Display";
  font-style: italic;
  font-weight: 500 700;
  font-display: swap;
  src: url("playfair-italic-var.woff2?v=1") format("woff2");
}

/* Технические подписи, коды, суммы. Казахских букв в JetBrains Mono
   нет в самом шрифте, а не в сабсете - вырезать нечего. На kk
   моноширинный текст с Ә/Қ/Ң уйдёт в системный фолбэк; для цифр,
   латиницы и русского это неважно, а пользовательский текст этим
   семейством нигде и не набирается. */
@font-face {
  font-family: "JetBrains Mono";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("jetbrains-mono-var.woff2?v=1") format("woff2");
}
