/* Источник: проект Claude Design, tokens/typography.css. Срез 14 августа 2026.

   ОБЪЯВЛЕННОЕ РАСХОЖДЕНИЕ С ИСТОЧНИКОМ, 10.09.2026. Решение владельца дословно:
   «хочу, чтобы по всему сайту снизился уровень жирности текста: весь текст, который
   сейчас medium, чтобы он стал regular, а весь текст, который semi-bold, чтобы он
   стал medium». В лестнице проекта это сдвиг на ступень вниз - 450 -> 400 у текста и
   500 -> 450 у среднего.

   Правило проекта говорит, что источник правды - проект Claude Design, и расхождение
   с ним считается дефектом. Поэтому оно названо ЗДЕСЬ и записано долгом: то же
   изменение обязано уехать в проект, иначе следующий срез молча вернёт прежний вес.
   Машиной это не сверится - типографического зеркала в `design/v4/tokens/` нет. */
:root{
  --sc-font:"Rubik",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  --sc-font-heading:var(--sc-font);

  /* Вес. Rubik переменный (ось 300-900, один файл на подмножество), поэтому дробных
     ступеней докачивать не надо; при дискретном @font-face 450 округлится до 500. */
  --sc-fw-text:400;
  --sc-fw-medium:450;
  --sc-fw-bold:700;

  /* Дисплейная антиква. ВТОРАЯ гарнитура системы, объявленное исключение.
     Применяется ТОЛЬКО на дисплейных ступенях лендинга. В кабинете - нигде.

     Это СТЕК из двух семейств, а не одно: дисплейной антиквы, которая держит и
     латиницу, и кириллицу, и иврит, не существует. Первое имя ведёт латиницу,
     второе подхватывает кириллицу по отсутствующим глифам. Georgia остаётся
     последней подстановкой - и единственной для иврита: ивритский заголовок
     рисуется Rubik. */
  --sc-font-display:"Fraunces","Prata",Georgia,"Times New Roman",serif;

  /* Вес дисплейной ступени не поднимается выше 400: Prata статическая, и на
     кириллице всё, что выше, браузер синтезировал бы алгоритмом. */
  --sc-fw-display:400;

  /* Кегль. Основной текст не мельче 16px (EN 301 549 / WCAG 2.1 AA); 14.5 разрешён
     только служебной подписи - метке, единице, дате рядом с крупным числом. */
  --sc-text-display:clamp(2.5rem,calc(1.55rem + 3vw),4rem);      /* 64 */
  --sc-text-h1:clamp(2rem,calc(1.5rem + 1.8vw),2.75rem);         /* 44 */
  --sc-text-h2:clamp(1.5rem,calc(1.25rem + 1vw),2rem);           /* 32 */
  --sc-text-h3:1.5rem;                                     /* 24 */
  --sc-text-lead:1.25rem;                                  /* 20 */
  --sc-text-body:1.09375rem;                               /* 17.5 */
  --sc-text-body-sm:1rem;                                  /* 16 - дно основного */
  --sc-text-caption:0.90625rem;                            /* 14.5 - только служебное */

  /* Текст ОБОЛОЧКИ ИНСТРУМЕНТА - 14. Это не «мелкий текст», а другой класс
     содержимого: подписи органов, которыми человек управляет, а не читает.
     Минимального кегля в WCAG нет; 16px важны ПОЛЯМ ВВОДА на телефоне, иначе iOS
     зумит страницу. Всё, что читает клиент, и все поля форм остаются на 16 и выше. */
  --sc-ui-text:0.875rem;                                   /* 14 - только оболочка */

  /* Интерлиньяж. 1.0 на дисплее - признак направления. */
  --sc-lh-display:1;
  --sc-lh-h1:1.05;
  --sc-lh-h2:1.12;
  --sc-lh-h3:1.2;
  --sc-lh-lead:1.45;
  --sc-lh-body:1.6;
  --sc-lh-body-sm:1.55;
  --sc-lh-caption:1.5;

  /* Трекинг: отрицательный только на крупных ступенях, он часть ступени. */
  --sc-ls-display:-.02em;
  --sc-ls-h1:-.015em;
  --sc-ls-h2:-.008em;
  --sc-ls-h3:normal;
  --sc-ls-body:normal;

  /* Письменность как ось. Значения объявлены токенами в :root, а НЕ переопределением
     токенов внутри :lang(): правило :lang() применяет их к классам (base/base.css),
     поэтому шкала остаётся одним словарём, а не тремя.

     Кириллица - единственная письменность, которой интерлиньяж 1.0 не подходит:
     диакритика Ё и Й поднимается до 0.906 при высоте прописных 0.719, минимум 1.109.
     На 1.0 две строки заголовка накладываются на 7.8px при кегле 72. Следствие для
     макета: русский заголовок ВЫШЕ английского, фиксированная высота экрана запрещена. */
  --sc-lh-heading-ru:1.12;

  /* Иврит в Rubik вертикально мельче латиницы, поэтому 1.0 безопаснее. Растёт
     только низ шкалы: мелкий ивритский кегль теряется первым, и проверка контраста
     этого не ловит - она меряет светлоту, а не плотность горизонтальных штрихов. */
  --sc-text-caption-he:0.96875rem;
  --sc-text-body-sm-he:1.0625rem;
  --sc-lh-body-he:1.7;
  --sc-lh-body-sm-he:1.65;
  --sc-lh-caption-he:1.6;

  /* При интерлиньяже 1.0 хвосты у, р, ק, g выходят за строчный бокс на 0.06em.
     Блок с дисплейным интерлиньяжем обязан нести этот паддинг или не иметь
     overflow:hidden вовсе. */
  --sc-display-ink-pad:.09em;
  --sc-measure:70ch;
}
