/* ============================================================
   WayliLoc — fonts.css
   Шрифты лежат У НАС (website/fonts/), а не на fonts.googleapis.com.

   Почему self-host (правка 2026-08-07):
     * внешний CSS шрифтов БЛОКИРОВАЛ рендер — Lighthouse считал 2.1 с;
     * два лишних соединения (googleapis + gstatic) на каждый заход;
     * приватность: Google Fonts передаёт IP посетителя на серверы Google —
       в ЕС это спорно, а сайт целится в ЕС и имеет политику конфиденциальности;
     * CSP стала строже: fonts.googleapis.com убран из style-src,
       fonts.gstatic.com — из font-src;
     * кеш наш: /fonts/** отдаётся на год (см. firebase.json).

   Состав ОТ ФАКТИЧЕСКОГО ИСПОЛЬЗОВАНИЯ (снято с живых страниц, а не на глаз):
     * Open Sans — ВАРИАТИВНЫЙ (wght 300..800), один файл на сабсет. Покрывает
       400/600/700/800 и делает НАСТОЯЩИМ вес 650 (.lede strong, .step p strong
       и др.) — раньше он не грузился и браузер подменял его на 700.
     * Fira Sans — 700 и 800 (вариативной версии у него нет). Вес 850 у h1
       округляется до 800, как и раньше.
   НЕ берём: Fira Sans 400 и 800-italic, Open Sans 500 — в вёрстке не встречаются
   НИ РАЗУ. Курсив (<em> в terms/unsubscribe, 2 места) остаётся синтетическим —
   отдельные italic-файлы ради двух слов не окупаются.

   Сабсеты: latin (en/es/de/fr) + cyrillic (ru). latin-ext НЕ берём: испанские,
   немецкие и французские диакритики и типографские кавычки/тире лежат в latin
   (U+0000-00FF + U+2000-206F). Он понадобится, если добавится язык с польской,
   чешской, турецкой или балтийской латиницей — тогда вернуть блоки latin-ext. Браузер по
   unicode-range скачивает только те, что реально нужны странице.
   ⚠️ Меняешь набор — обнови и preload в <head> страниц.
   ============================================================ */

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

/* latin */
@font-face {
  font-family: 'Fira Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/fonts/FiraSans-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;
}

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

/* latin */
@font-face {
  font-family: 'Fira Sans';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url('/fonts/FiraSans-800-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;
}

/* cyrillic */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 300 800;
  font-stretch: 100%;
  font-display: swap;
  src: url('/fonts/OpenSans-300-800-cyrillic.woff2') format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* latin */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 300 800;
  font-stretch: 100%;
  font-display: swap;
  src: url('/fonts/OpenSans-300-800-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;
}


/* Material Icons Round — глиф на пине сохранённой точки (js/map.js рисует его
   на canvas через ctx.font, поэтому нужен только @font-face, без класса).
   ⚠️ САБСЕТ: из 2188 глифов оставлены 60, перечисленных в
   SAVED_POINT_ICON_LIGATURES (js/map.js) — 7.8 КБ вместо 173 КБ. Собран
   pyftsubset с --no-layout-closure: без этого флага GSUB-правила лигатур
   тянут обратно весь набор (сабсет получался 160 КБ).
   ⚠️ Добавляешь иконку в SAVED_POINT_ICON_LIGATURES → пересобери сабсет,
   иначе на пине будет пусто. Команда — в docs/website.md §«Шрифты». */
@font-face {
  font-family: 'Material Icons Round';
  font-style: normal;
  font-weight: 400;
  font-display: block;
  src: url('/fonts/MaterialIconsRound-subset.woff2') format('woff2');
}
