/*
 * Шрифтовые стеки под 18 языков сайта.
 *
 * Макет назначает Onest + IBM Plex Mono. Onest покрывает латиницу и кириллицу
 * и не покрывает арабицу (ar, ur), деванагари (hi), бенгальскую (bn) и CJK
 * (zh, ja) — на этих языках браузер молча подставит свой дефолт, и типографика
 * макета там просто не существует. Поэтому шрифт выбирается по языку страницы.
 *
 * Как и tokens.css, файл только определяет переменные: пока верстка не сошлётся
 * на var(--ss-font-*), внешний вид сайта не меняется.
 *
 * :lang() вместо html[lang] — работает по наследованию, а TranslatePress
 * проставляет lang на <html> для каждой языковой версии.
 */
:root {
  --ss-font-ui:   Onest, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --ss-font-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;

  /* Line height is a token, not a number written into each rule: Nastaliq needs
     far more room than Latin, and a hardcoded value in the prose styles would
     override the per-language setting below and let Urdu collide with itself. */
  --ss-lh-base: 1.68;
  --ss-lh-h1:   1.05;
  --ss-lh-h2:   1.15;
  --ss-lh-h3:   1.3;
}

/* Арабский: насх. */
:root:lang(ar) {
  --ss-font-ui: "Noto Sans Arabic", "Segoe UI", Tahoma, sans-serif;
}

/* Урду: насталик. Он выше по строке — при базовом line-height строки наезжают,
   поэтому язык поднимает интерлиньяж, а не отдельные правила в вёрстке. */
:root:lang(ur) {
  --ss-font-ui: "Noto Nastaliq Urdu", "Jameel Noori Nastaleeq", serif;
  --ss-lh-base: 2.1;
  --ss-lh-h1:   1.9;
  --ss-lh-h2:   1.9;
  --ss-lh-h3:   1.9;
}

:root:lang(hi) { --ss-font-ui: "Noto Sans Devanagari", "Nirmala UI", sans-serif; }
:root:lang(bn) { --ss-font-ui: "Noto Sans Bengali", "Nirmala UI", sans-serif; }

/* CJK: системные гарнитуры. Веб-шрифт на эти письменности — мегабайты трафика
   ради начертания, которое у пользователя уже есть. */
:root:lang(zh) {
  --ss-font-ui: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", sans-serif;
}
:root:lang(ja) {
  --ss-font-ui: "Hiragino Kaku Gothic ProN", "Yu Gothic", "Noto Sans JP", Meiryo, sans-serif;
}

/* Вьетнамский: диакритика двойного яруса. Onest её содержит не во всех начертаниях,
   поэтому позади него стоит гарнитура, которая точно содержит. */
:root:lang(vi) {
  --ss-font-ui: Onest, "Be Vietnam Pro", system-ui, "Segoe UI", sans-serif;
}

/* RTL: зеркалится вся раскладка, а не только выравнивание текста.
   Верстка обязана пользоваться логическими свойствами (margin-inline-start,
   padding-inline-end, inset-inline), тогда этот блок остаётся почти пустым. */
:root:lang(ar), :root:lang(ur) { --ss-dir: rtl; }
