/* === Fallback faces with adjusted metrics ===
   Эти @font-face не загружают новые файлы — они переопределяют системный
   Arial/Arial Black так, чтобы при font-display:swap текст занимал ровно ту же
   высоту и ширину, что и Onest/Unbounded. Это убирает «прыжок» (CLS) в момент,
   когда веб-шрифт догрузится и подменит fallback. */
@font-face {
  font-family: 'Onest Fallback';
  font-style: normal;
  font-weight: 400 800;
  src: local('Arial'), local('Helvetica Neue'), local('Helvetica');
  ascent-override: 92.5%;
  descent-override: 23%;
  line-gap-override: 0%;
  size-adjust: 99.5%;
}
@font-face {
  font-family: 'Unbounded Fallback';
  font-style: normal;
  font-weight: 600 900;
  src: local('Arial Black'), local('Helvetica Neue Bold'), local('Arial');
  ascent-override: 80%;
  descent-override: 21%;
  line-gap-override: 0%;
  size-adjust: 109%;
}

/* === Onest / Unbounded — variable-шрифты (ось wght), один файл на сабсет ===
   Прежние 36 файлов были байт-в-байт одинаковыми копиями под каждый вес
   (variable-шрифт покрывает все веса сам), а имена сабсетов были перепутаны
   с unicode-range — preload грузил файлы без единого нужного глифа.
   Теперь: имя файла = реальное содержимое, один @font-face на сабсет.
   ₸ (U+20B8) вынесен в микрофайл Unbounded-tenge (<1KB) — раньше ради него
   скачивался 118KB latin-ext. В Onest глифа ₸ нет — рендерится из fallback,
   как и раньше. */
@font-face {
  font-family: 'Onest';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url(/fonts/Onest-cyrillic-9049b6.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: 100 900;
  font-display: swap;
  src: url(/fonts/Onest-latin-d5c8e7.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: 'Unbounded';
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
  src: url(/fonts/Unbounded-cyrillic-3a5ed4.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Unbounded';
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
  src: url(/fonts/Unbounded-latin-8616dc.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: 'Unbounded';
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
  src: url(/fonts/Unbounded-tenge-18f9d0.woff2) format('woff2');
  unicode-range: U+20B8;
}

/* ---------- Fallback faces to prevent layout shift when real fonts swap in ---------- */
/* Onest fallback — metrics tuned to match Arial so the swap is invisible.
   See docs/superpowers/specs/2026-05-21-capi-c-conversion-audit-design.md for calibration notes. */
@font-face {
  font-family: 'Onest Fallback';
  src: local('Arial');
  size-adjust: 106%;
  ascent-override: 92%;
  descent-override: 24%;
  line-gap-override: 0%;
}

/* Unbounded fallback — shown briefly during the `swap` flash on slow networks
   before the real Unbounded downloads. Metrics tuned to match it (minimal CLS). */
@font-face {
  font-family: 'Unbounded Fallback';
  src: local('Arial Black'), local('Arial Bold');
  size-adjust: 96%;
  ascent-override: 100%;
  descent-override: 25%;
  line-gap-override: 0%;
}
