/* ============================================================
   SODO — типографічна система (self-hosted, без CDN)

   Montserrat     — заголовки H1/H2 капсом, кнопки, великі цифри.
                    Black 900 — головне слово героя, ExtraBold 800 —
                    решта заголовків, Bold 700 — елементи керування.
   Onest          — увесь основний текст, підзаголовки H3, поля форми.
   Pixelify Sans  — службова мова інтерфейсу: номери кроків, мітки
                    «Було / Результат», лічильники, екран завантаження.

   Підмножини latin + cyrillic узяті прямо з Google Fonts і лежать
   поруч: жодного зовнішнього запиту під час завантаження сторінки.

   Pixelify Sans у released-версії не має великих кириличних І, О і П
   (U+0406, U+041E, U+041F) — у самій гарнітурі їх просто немає в
   cmap. У піксельному малюнку вони збігаються з латинськими I, O, P,
   тому файли тут перезібрані з доданими цими трьома відповідностями.
   Без цього «ПОКАЗАТИ ЩЕ» і «Цикл SODO» вивалювались би в запасний
   шрифт посеред слова.
   ============================================================ */

/* Ваги 700 тут немає навмисно: нею були набрані лише кнопки й
   текстові посилання, і різниця з 800 на 14-17px непомітна, а два
   файли — це 29 КБ на телефоні. Кнопки тепер 800.  */

/* ── Montserrat ─────────────────────────────────────────── */


@font-face {
  font-family: "Montserrat";
  src: url("Montserrat-800-cyrillic.woff2") format("woff2");
  font-weight: 800; font-style: normal; font-display: swap;
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: "Montserrat";
  src: url("Montserrat-800-latin.woff2") format("woff2");
  font-weight: 800; font-style: normal; font-display: swap;
  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";
  src: url("Montserrat-900-cyrillic.woff2") format("woff2");
  font-weight: 900; font-style: normal; font-display: swap;
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: "Montserrat";
  src: url("Montserrat-900-latin.woff2") format("woff2");
  font-weight: 900; font-style: normal; font-display: swap;
  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;
}

/* ── Onest ──────────────────────────────────────────────── */

@font-face {
  font-family: "Onest";
  src: url("Onest-400-cyrillic.woff2") format("woff2");
  font-weight: 400; font-style: normal; font-display: swap;
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: "Onest";
  src: url("Onest-400-latin.woff2") format("woff2");
  font-weight: 400; font-style: normal; font-display: swap;
  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";
  src: url("Onest-500-cyrillic.woff2") format("woff2");
  font-weight: 500; font-style: normal; font-display: swap;
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: "Onest";
  src: url("Onest-500-latin.woff2") format("woff2");
  font-weight: 500; font-style: normal; font-display: swap;
  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";
  src: url("Onest-600-cyrillic.woff2") format("woff2");
  font-weight: 600; font-style: normal; font-display: swap;
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: "Onest";
  src: url("Onest-600-latin.woff2") format("woff2");
  font-weight: 600; font-style: normal; font-display: swap;
  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;
}

/* ── Pixelify Sans ──────────────────────────────────────── */

@font-face {
  font-family: "Pixelify";
  src: url("Pixelify-400.woff2") format("woff2");
  font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "Pixelify";
  src: url("Pixelify-500.woff2") format("woff2");
  font-weight: 500; font-style: normal; font-display: swap;
}

/* ── польська діакритика ────────────────────────────────────
   Латинські набори з Google Fonts обрізані по U+00FF, тож ą ć ę ł
   ń ś ź ż у них немає взагалі — польський текст малював системний
   шрифт, і літери всередині слова виходили з іншої гарнітури.

   Три файли на всі шістнадцять літер, разом 13 КБ. Це варіативні
   зрізи, тож один файл тягне всі ваги: кожен @font-face пришпилює
   вісь wght до своєї.

   Вага тут неспроста виписана по одній. Спершу я оголосив ці фейси
   одним діапазоном (font-weight: 100 900) — і браузер їх просто не
   брав: маючи поруч фейси з точною вагою, він добирає спочатку за
   вагою і аж потім дивиться в таблицю символів. У Google Fonts усі
   підмножини однієї родини оголошені з однаковою вагою саме тому:
   вибір має вирішувати unicode-range, а не вага.

   Для Pixelify цей блок має стояти ПІСЛЯ основних: у них діапазон
   не заданий, тобто формально вони покривають і ці літери, а при
   збігу виграє той @font-face, що оголошений останнім.
   ──────────────────────────────────────────────────────── */

@font-face {
  font-family: "Montserrat";
  src: url("Montserrat-pl.woff2") format("woff2");
  font-weight: 800; font-style: normal; font-display: swap;
  unicode-range: U+0104-0107, U+0118-0119, U+0141-0144, U+015A-015B, U+0179-017C;
}
@font-face {
  font-family: "Montserrat";
  src: url("Montserrat-pl.woff2") format("woff2");
  font-weight: 900; font-style: normal; font-display: swap;
  unicode-range: U+0104-0107, U+0118-0119, U+0141-0144, U+015A-015B, U+0179-017C;
}
@font-face {
  font-family: "Onest";
  src: url("Onest-pl.woff2") format("woff2");
  font-weight: 400; font-style: normal; font-display: swap;
  unicode-range: U+0104-0107, U+0118-0119, U+0141-0144, U+015A-015B, U+0179-017C;
}
@font-face {
  font-family: "Onest";
  src: url("Onest-pl.woff2") format("woff2");
  font-weight: 500; font-style: normal; font-display: swap;
  unicode-range: U+0104-0107, U+0118-0119, U+0141-0144, U+015A-015B, U+0179-017C;
}
@font-face {
  font-family: "Onest";
  src: url("Onest-pl.woff2") format("woff2");
  font-weight: 600; font-style: normal; font-display: swap;
  unicode-range: U+0104-0107, U+0118-0119, U+0141-0144, U+015A-015B, U+0179-017C;
}
@font-face {
  font-family: "Pixelify";
  src: url("Pixelify-pl.woff2") format("woff2");
  font-weight: 400; font-style: normal; font-display: swap;
  unicode-range: U+0104-0107, U+0118-0119, U+0141-0144, U+015A-015B, U+0179-017C;
}
@font-face {
  font-family: "Pixelify";
  src: url("Pixelify-pl.woff2") format("woff2");
  font-weight: 500; font-style: normal; font-display: swap;
  unicode-range: U+0104-0107, U+0118-0119, U+0141-0144, U+015A-015B, U+0179-017C;
}
