/*
 * fonts.css
 *
 * Самохостные гарнитуры «Должна:». Подключается ПЕРЕД typography.css.
 *
 * Literata (SIL OFL, TypeTogether) - текст и заголовки, вместо Source Serif 4.
 * Golos Text (Paratype, открытая лицензия) - интерфейс, вместо Inter.
 *
 * Почему ушли с Google Fonts: внешний CDN ненадёжен для российской аудитории,
 * а Inter даёт узнаваемый «нейросетевой» вид, и кириллица у него добавлена,
 * а не спроектирована. У Literata кириллицу рисовали TypeTogether, у Golos
 * Text она первична.
 *
 * Главное преимущество Literata - ось opsz (оптический размер): заголовок
 * получает настоящее дисплейное начертание, а не просто увеличенный текстовый.
 * Ось живая, проверено рендером: одна строка на opsz 7 против opsz 72 даёт
 * 52px разницы по ширине.
 *
 * Файлы - готовые сабсеты Google по unicode-range, свой сабсеттер не нужен.
 * Браузер скачивает только нужные диапазоны, обычно 3-4 файла из 12.
 */

/* ===== Literata, прямое ===== */

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

@font-face {
  font-family: "Literata";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("/fonts/literata-cyrillic-ext.woff2") format("woff2");
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

@font-face {
  font-family: "Literata";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("/fonts/literata-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: "Literata";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("/fonts/literata-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* ===== Literata, курсив =====
   Курсив на сайте реально работает: лид главной, даты в лентах, выносные
   цитаты, blockquote и подвал похожих историй у надрывов. */

@font-face {
  font-family: "Literata";
  font-style: italic;
  font-weight: 400 700;
  font-display: swap;
  src: url("/fonts/literata-italic-cyrillic.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
  font-family: "Literata";
  font-style: italic;
  font-weight: 400 700;
  font-display: swap;
  src: url("/fonts/literata-italic-cyrillic-ext.woff2") format("woff2");
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

@font-face {
  font-family: "Literata";
  font-style: italic;
  font-weight: 400 700;
  font-display: swap;
  src: url("/fonts/literata-italic-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: "Literata";
  font-style: italic;
  font-weight: 400 700;
  font-display: swap;
  src: url("/fonts/literata-italic-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* ===== Golos Text ===== */

@font-face {
  font-family: "Golos Text";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("/fonts/golos-text-cyrillic.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
  font-family: "Golos Text";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("/fonts/golos-text-cyrillic-ext.woff2") format("woff2");
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

@font-face {
  font-family: "Golos Text";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("/fonts/golos-text-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: "Golos Text";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("/fonts/golos-text-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/*
 * ===== Метрически выровненные фолбэки =====
 *
 * Пока свой шрифт качается, строку рисует системный - и если его метрики
 * не совпадают, при подмене вся страница дёргается. Цифры ниже посчитаны
 * замером на canvas, не на глаз: рисуется одна и та же русская строка
 * в 100px каждым шрифтом, сравниваются ширина и fontBoundingBox.
 *
 * Literata против Georgia:    ширина 3794 против 3558
 * Golos Text против Segoe UI: ширина 3784 против 3546
 *
 * size-adjust растягивает фолбэк до ширины своего шрифта, ascent/descent
 * подгоняют высоту строки. Проценты ascent/descent даны относительно уже
 * растянутого кегля, поэтому поделены на size-adjust.
 */

@font-face {
  font-family: "Literata Fallback";
  src: local("Georgia");
  size-adjust: 106.6%;
  ascent-override: 110.6%;
  descent-override: 29.1%;
}

@font-face {
  font-family: "Golos Fallback";
  src: local("Segoe UI"), local("Helvetica Neue"), local("Arial");
  size-adjust: 106.7%;
  ascent-override: 91.9%;
  descent-override: 20.6%;
}
