/* ====================================================================
   ГАРНИТУРЫ ЯЗЫКА — объявление и правило раздачи.

   Канон: "Golos Text" — имена и проза; "Martian Mono" — числа, подписи,
   штамп. Обе OFL-1.1, лицензии лежат рядом с файлами в fonts/.

   ПОЧЕМУ ОТДЕЛЬНЫЙ ФАЙЛ, А НЕ СТРОКИ В tokens.css. Витрина берёт у
   языка гарнитуры и не берёт плотность: кегль данных 13 px верен для
   рабочего экрана и неверен для страницы, которую читают. Отдельный
   файл даёт взять первое без второго. Продукты получают его вместе с
   токенами — он первым в SOURCES генератора.

   ПРАВИЛО РАЗДАЧИ: ЧЕТЫРЕ ФАЙЛА ЛЕЖАТ НА СВОЁМ ДОМЕНЕ, В /fonts/.
   Продукт кладёт содержимое packages/design/fonts/ в /fonts/ своего
   домена. Никаких сторонних CDN — D-230 снял запрет на собственный
   шрифт, но не на чужой сервер.

   АДРЕС В src ОДИН, И ОН ОТНОСИТЕЛЬНЫЙ: ../fonts/… от самого файла.
   Это единственная форма, которую понимают ВСЕ потребители сразу:
   превью языка и прототипы платформы (открываются файлом — корня
   домена у них нет), витрина (копия лежит в корне сайта, ../fonts
   из корня и есть /fonts) и сборщики продуктов. Первая редакция
   держала два адреса — /fonts/… плюс относительный запасной — и
   сборщик Next уронил её в первый же час: он разрешает url() на
   этапе сборки, и неразрешимый адрес для него ошибка сборки, а не
   запасной вариант. Продукт со сборщиком получает файлы гарнитур
   рядом с генерируемой копией токенов — это делает его design.sh
   pull.

   ЕСЛИ ФАЙЛЫ НЕ РАЗДАНЫ, отказ будет ТИХИМ: браузер молча возьмёт
   системный шрифт. Механической проверки на стороне языка нет и быть
   не может — язык не знает, что раздаёт продукт. Проверяется гербарием
   экранов: подмена гарнитуры видна на снимке.

   Диапазоны выведены из САМИХ файлов (cmap), а не переписаны у Google:
   подмножества здесь свои. Пересобирать их — tools/subset_fonts.py.
   ==================================================================== */

@font-face {
  font-family: "Golos Text";
  src: url("../fonts/golos-text-latin.woff2") format("woff2");
  font-weight:400 900; font-style: normal; font-display: swap;
  unicode-range:
    U+0000,U+000D,U+0020-007E,U+00A0-00FF,U+0102,U+0131,U+0152-0153,
    U+02BC,U+02C6,U+02DA,U+02DC,U+0300-0301,U+0303-0304,U+0308,U+2009,
    U+2011,U+2013-2014,U+2018-201A,U+201C-201E,U+2022,U+2026,
    U+2039-203A,U+2044,U+20AC,U+2122,U+2191-2193,U+2212,U+2215,U+FEFF;
}

@font-face {
  font-family: "Golos Text";
  src: url("../fonts/golos-text-cyrillic.woff2") format("woff2");
  font-weight:400 900; font-style: normal; font-display: swap;
  unicode-range:
    U+0000,U+000D,U+0020,U+0041,U+00A0,U+00C1,U+0102,U+0301,
    U+0401-040C,U+040E-044F,U+0451-045C,U+045E-045F,U+0490-0491,
    U+04B0-04B1,U+20BD,U+2116;
}

@font-face {
  font-family: "Martian Mono";
  src: url("../fonts/martian-mono-latin.woff2") format("woff2");
  font-weight:100 800; font-stretch:75% 112.5%; font-style: normal; font-display: swap;
  unicode-range:
    U+0020-007E,U+00A0-00FF,U+0102,U+0131,U+0152-0153,U+02BC,U+02C6,
    U+02DA,U+02DC,U+0300-0301,U+0303-0304,U+0308,U+0323,U+2002,U+2011,
    U+2013-2014,U+2018-201A,U+201C-201E,U+2022,U+2026,U+2039-203A,
    U+2044,U+20AC,U+2122,U+2191-2193,U+2212;
}

@font-face {
  font-family: "Martian Mono";
  src: url("../fonts/martian-mono-cyrillic.woff2") format("woff2");
  font-weight:100 800; font-stretch:75% 112.5%; font-style: normal; font-display: swap;
  unicode-range:
    U+0020,U+0041,U+00A0,U+00C1,U+0102,U+0301,U+0401,U+0404,
    U+0406-0407,U+040E,U+0410-044F,U+0451,U+0454,U+0456-0457,U+045E,
    U+0490-0491,U+20BD,U+2116;
}