/* v51-tokens.css · токены и сетка 5.1 (VSPEC-5.1 §1.5). Перенос блока 1 стенда
   site/stands/v51-stand.css (раунд 2, sha256 017bf91531a166e6…) байт в байт; ниже блока — одна строка §1.5.
   Грузится после identity-v5.css, действует под html[data-v51]. Правка — здесь, стенд — история. */

/* ── 1 · ТОКЕНЫ 5.1 ─────────────────────────────────────────────────────────
   Модуль — кирпич: тычок с швом 130 мм × 0,4 px/мм = 52 px на 1440; шаг
   колонки — ложок с швом, 2 модуля; строка тела 20 × 1,5 = 30 px — ряд кладки.
   Модуль держат начала колонок, поля, вертикальные отступы секций и изломы;
   внутренние кромки компонентов свободны (F-18). Кегли — px с vw, без rem. */
html[data-v51] {
  --m: clamp(26px, 3.6111vw, 64px);
  --col-gap: 16px;
  --gutter: var(--m);
  --content: calc(24 * var(--m) - var(--col-gap));
  --container: calc(var(--content) + 2 * var(--gutter));
  /* правая кромка H1 + 1 модуль: здесь кончается затемнение текстовой зоны (F-15) */
  --scrim-edge: calc((100% - var(--content)) / 2 + 20 * var(--m) - var(--col-gap));   /* конец колонки 10: 1128 на 1440 */
  --t-1: clamp(12px, calc(11.63px + .0952vw), 14px);
  --t-2: clamp(17px, calc(15.886px + .2857vw), 22px);
  --t-3: clamp(21px, calc(17.66px + .857vw), 34px);
  --t-4: clamp(25.5px, calc(23.83px + .4286vw), 34px);
  --t-5: clamp(25.5px, calc(18.26px + 1.857vw), 52px);   /* F-20: на 390 h2 25,5 < H1 внутренних 31 */
  --t-6: clamp(31px, calc(17.26px + 3.524vw), 84px);
  --t-7: clamp(38px, calc(14.97px + 5.905vw), 128px);
  --t-btn: 19px;                        /* F-21: вне шкалы — порог крупного текста WCAG 18,66 px при 700+; белое на #FF4D12 3,32:1 */
  --fs-h1: var(--t-7); --fs-h1-inner: var(--t-6); --fs-h2: var(--t-5);
  --fs-h3: var(--t-4); --fs-h4: var(--t-3); --fs-text: var(--t-2);
  --fs-mono: var(--t-1); --fs-mono-s: var(--t-1);
  --lh: 1.5;
  --dur-fade: .8s;                      /* LATER-07: одна длительность кроссфейда на сайт */
  --dur-cap: .5s;                       /* задержка подписи детали */
  --head-h: 72px;
  --strip-h: 44px;
  --grade-real: contrast(1.04) saturate(.9) brightness(.97);
  --grade-vis: contrast(1.08) saturate(.82) brightness(.94);
}
@media (min-width: 64rem) { html[data-v51] { --gutter: calc(2 * var(--m)); } }
@media (max-width: 47.99rem) { html[data-v51] { --head-h: 56px; --strip-h: 48px; } }

html[data-v51] body { padding-bottom: calc(var(--strip-h) + env(safe-area-inset-bottom, 0px)); }

.v51-wrap { width: min(100% - 2 * var(--gutter), var(--content)); margin-inline: auto; }
.v51-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--col-gap); }
.v51-skip { position: absolute; left: -9999px; top: 8px; z-index: 60; }
.v51-skip:focus { left: var(--gutter); padding: 10px 16px; background: var(--bg); color: var(--fg); }

/* подпись-маркировка: один класс на все служебные строки 5.1 */
.v51-lab { font-family: var(--font-mono); font-weight: var(--w-mono); font-size: var(--t-1);
           letter-spacing: var(--track-mono); text-transform: uppercase; line-height: 1.25; }

/* §1.5: «html[data-v51] { font-size: 16px } снимает текучий корень» — [data-id] ставит корню --fs-text,
   и rem внутри страницы считался дважды (VSPEC-BOOST-2.md:12-14). Кегли 5.1 — px; корень держит 16. */
html[data-v51] { font-size: 16px; }
