/*
 * Шрифты тем — СВОИМИ ФАЙЛАМИ, со своего сервера.
 *
 * ПОЧЕМУ НЕ С ЧУЖОГО. Склад работает и без сети. Гарнитура, подтянутая с
 * внешнего сервера, однажды не доедет — и вид интерфейса поменяется сам
 * собой, без единой правки в коде. Поэтому файлы лежат в проекте и
 * раздаются нами; наружу за ними никто не ходит.
 *
 * ПОЧЕМУ ПО ДВА ФАЙЛА. Латиница и кириллица разнесены по наборам:
 * браузер скачивает кириллицу только если она на экране есть. Для
 * русского интерфейса это значит один лишний файл в 20 КБ, а не двойной
 * вес шрифта.
 *
 * ПЕРЕМЕННОЕ НАЧЕРТАНИЕ: один файл на все веса от 400 до 700. Отдельные
 * файлы под каждый вес весили бы втрое больше при том же результате.
 *
 * ОТКУДА ВЗЯТЫ. Все три — свободные, забраны 23.08.2026 с Google Fonts:
 *   Roboto    — Apache 2.0, гарнитура Material (тема «Google»);
 *   Inter     — SIL OFL 1.1, ближайшая свободная замена Söhne (Stripe);
 *   Noto Sans — SIL OFL 1.1, гуманистический, близок по рисунку к Segoe UI
 *               (тема «Microsoft» там, где настоящего Segoe UI нет);
 *   Montserrat — SIL OFL 1.1, геометрический. У monday.com гарнитура
 *               Poppins, и она БЕЗ КИРИЛЛИЦЫ: русские буквы падали бы на
 *               запасной шрифт прямо внутри слова. Montserrat того же
 *               строя и с полной кириллицей;
 *   Manrope   — SIL OFL 1.1, для темы «HubSpot»: их HubSpot Sans
 *               лицензионный, а Lexend Deca тоже без кириллицы;
 *   Onest     — SIL OFL 1.1, для темы «Wrike»: у них TT Norms Pro,
 *               лицензионный шрифт TypeType. Onest того же нейтрального
 *               строя и рисовался сразу с кириллицей;
 *   Rubik     — SIL OFL 1.1, для темы «ClickUp»: их Plus Jakarta Sans
 *               тоже БЕЗ КИРИЛЛИЦЫ (проверено запросом к наборам);
 *   Geologica — SIL OFL 1.1, для темы «Мастерская»: на specform.pro стоит
 *               Sora, и она ТОЖЕ БЕЗ КИРИЛЛИЦЫ — запрос к Google Fonts
 *               вернул только latin и latin-ext. Geologica того же
 *               квадратного низкоконтрастного строя и рисовалась с
 *               кириллицей; начертания от 300, а лёгкий заголовок там
 *               главная примета вида.
 *
 * `swap`: пока файл едет, текст показывается системным шрифтом. Пустой
 * экран вместо чисел ради красоты букв — плохая сделка.
 */

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

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

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

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

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

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

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