/* ==========================================================================
   YAZME | ЛОКАЛЬНЫЕ ШРИФТЫ  (замена fonts.googleapis.com / fonts.gstatic.com)
   --------------------------------------------------------------------------
   Зачем: Google Fonts — это два чужих домена в критическом пути. На каждый
   уходит DNS + TCP + TLS (в отчёте Метрики «процент отправки DNS-запросов»
   был 48,93 %), а сам CSS блокирует первую отрисовку. На 3G это 1,5–4 с
   до появления текста.

   Здесь те же Inter и Unbounded, но с нашего сервера, разрезанные на
   кириллицу и латиницу. unicode-range взяты у Google один в один, поэтому
   браузер скачивает ровно тот кусок, который нужен странице.
   Файлы: /assets/fonts/web/*.woff2 (кэш на год, см. .htaccess раздел 2.2)

   ══ ПАТЧ СКОРОСТИ 2026-08-18 ═══════════════════════════════════════════════
   ЧТО ПОКАЗАЛ ЗАМЕР. На 3G главная качала 14 файлов шрифтов = 202 КБ, и
   116 КБ из них — ЛАТИНИЦА: inter-lat-400/500/600/700 по 23–24 КБ каждый
   плюс unbounded-lat-800. На русском сайте латиницей набраны логотип, ники
   и отдельные слова, а платили за неё как за основной алфавит.

   ЧТО СДЕЛАНО — две вещи, обе без потери символов.

   1. ЛАТИНИЦА ТЕПЕРЬ В ДВУХ ФАЙЛАХ, А НЕ В ЧЕТЫРЁХ.
      Отдельные inter-lat-500 и inter-lat-600 (48 КБ) убраны. Начертание 500
      берёт файл 400, начертание 600 — файл 700. Почему именно так, а не
      «оба на 400»: латиница часто стоит вплотную к кириллице в одной строке
      (ник рядом с именем, «YAZME» в заголовке). Если увести 600 на Regular,
      латинская часть строки станет заметно светлее соседней кириллической —
      это видно глазом. Пара 500→Regular и 600→Bold держит вес ближе всего.
      Кириллица осталась во всех четырёх начертаниях: на ней набран весь текст.

   2. ФАЙЛЫ ПЕРЕСОБРАНЫ БЕЗ НЕИСПОЛЬЗУЕМЫХ ТАБЛИЦ.
      В исходных woff2 было 518 глифов при 230 доступных через cmap: остальные
      подключались стилистическими наборами Inter (ss01–ss08, cv01–cv13, дроби,
      табличные цифры) — их на сайте не включает ни одно правило. Плюс хинтинг,
      который в вебе не используется. Пересобрано инструментом pyftsubset
      с сохранением kern, liga, clig, ccmp, mark, mkmk, rlig.
      Набор символов ВНУТРИ объявленного unicode-range не изменился ни на один
      знак — проверено сравнением cmap до и после.

      Команда для пересборки, если понадобится обновить шрифт:
        pyftsubset исходник.woff2 --flavor=woff2 --no-hinting --desubroutinize \
          --layout-features='kern,liga,clig,ccmp,mark,mkmk,rlig' \
          --unicodes='<диапазон из правила ниже>' --output-file=новый.woff2

   ИТОГ: 14 файлов и 202 КБ → 12 файлов и ~124 КБ.

   ПРО ?v=2 В АДРЕСАХ. Шрифты отдаются с Cache-Control: immutable на год.
   Без смены адреса вернувшийся посетитель продолжил бы качать старые
   тяжёлые файлы. Меняете содержимое файла — поднимаете здесь номер.
   ВАЖНО: тот же номер стоит в preload-тегах в includes/yz_assets.php.
   Если номера разойдутся, браузер скачает шрифт дважды и напишет в консоль,
   что preload не пригодился.

   ОТКАТ: вернуть файл из git и распаковать прежние woff2.
   ========================================================================== */

/* ---------- Inter (основной текст интерфейса) ---------- */
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;
  src:url('/assets/fonts/web/inter-cyr-400.woff2?v=2') 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;font-display:swap;
  src:url('/assets/fonts/web/inter-lat-400.woff2?v=2') 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:'Inter';font-style:normal;font-weight:500;font-display:swap;
  src:url('/assets/fonts/web/inter-cyr-500.woff2?v=2') format('woff2');
  unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
/* латиница 500 → файл 400 (см. пункт 1 в шапке) */
@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;
  src:url('/assets/fonts/web/inter-lat-400.woff2?v=2') 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:'Inter';font-style:normal;font-weight:600;font-display:swap;
  src:url('/assets/fonts/web/inter-cyr-600.woff2?v=2') format('woff2');
  unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
/* латиница 600 → файл 700 (см. пункт 1 в шапке) */
@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;
  src:url('/assets/fonts/web/inter-lat-700.woff2?v=2') 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:'Inter';font-style:normal;font-weight:700;font-display:swap;
  src:url('/assets/fonts/web/inter-cyr-700.woff2?v=2') 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:700;font-display:swap;
  src:url('/assets/fonts/web/inter-lat-700.woff2?v=2') 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}

/* 800 отдельного файла не имеет: 700 — самое жирное начертание Inter,
   которое реально нужно интерфейсу. Запрос font-weight:800 браузер
   синтезирует из 700, лишний файл на это не тратится. */

/* ---------- Unbounded (заголовки, --yz-font-display) ---------- */
@font-face{font-family:'Unbounded';font-style:normal;font-weight:600;font-display:swap;
  src:url('/assets/fonts/web/unbounded-cyr-600.woff2?v=2') format('woff2');
  unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Unbounded';font-style:normal;font-weight:600;font-display:swap;
  src:url('/assets/fonts/web/unbounded-lat-600.woff2?v=2') 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:'Unbounded';font-style:normal;font-weight:800;font-display:swap;
  src:url('/assets/fonts/web/unbounded-cyr-800.woff2?v=2') format('woff2');
  unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Unbounded';font-style:normal;font-weight:800;font-display:swap;
  src:url('/assets/fonts/web/unbounded-lat-800.woff2?v=2') 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}

/* Unbounded 700/900 отдаём как 600/800 — на глаз разницы нет,
   а это минус два файла по 13 и 21 КБ. */
