/* Firstfold — токены 04 (:root дословно) и 05 (движение) */
@font-face {
  font-family: "Newsreader";
  src: url("/fonts/newsreader-latin-opsz-normal.woff2") format("woff2");
  font-weight: 200 800;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Schibsted Grotesk";
  src: url("/fonts/schibsted-grotesk-latin-wght-normal.woff2") format("woff2");
  font-weight: 400 900;
  font-style: normal;
  font-display: swap;
}
/* Запасные начертания с метриками основных (подмена без сдвига): под именами из стеков 04 */
@font-face {
  font-family: "Times New Roman";
  src: local("Times New Roman"), local("Liberation Serif"), local("Tinos");
  size-adjust: 102.1%;
  ascent-override: 72%;
  descent-override: 26%;
  line-gap-override: 0%;
}
@font-face {
  font-family: "Helvetica Neue";
  src: local("Arial"), local("Liberation Sans"), local("Arimo");
  size-adjust: 105.9%;
  ascent-override: 92.2%;
  descent-override: 24.3%;
  line-gap-override: 0%;
}

:root {
  color-scheme: light;

  /* Цвет — стена, поверхности (2 уровня), текст */
  --wall: #C9CDD0;
  --sheet: #EEF0F1;
  --sheet-2: #E1E4E6;
  --ink: #111316;
  --ink-2: #464B51;
  --on-fold: #FFFFFF;

  /* Акцент — синий чертёжника: линия сгиба, CTA, ссылки, размерные метки, линейки */
  --fold: #0033F0;
  --fold-hover: #0028C8;
  --fold-active: #001E96;

  /* Линии */
  --rule: var(--fold);
  --rule-ink: var(--ink);
  --hair: 1px;
  --line-w: 2px;
  /* norm.ul-display: черта крупной ссылки; em — от кегля самой ссылки
     (свойство не регистрируется через @property); запасная толщина — «Кнопки, „Copy address“, ссылки» */
  --norm-ul-display: round(max(var(--line-w), 0.02em), 1px);

  /* Состояния — монохромно: цвета состояний запрещены как цвет интерфейса (02, запрет 6);
     состояние несут текст и форма */
  --state-success: var(--ink);
  --state-error: var(--ink);
  --state-warning: var(--ink);
  --state-surface: var(--sheet-2);
  --state-rule: var(--ink);

  /* Фокус и выделение */
  --focus-color: var(--fold);
  --focus-width: 2px;
  --focus-offset: 3px;
  --selection-bg: var(--fold);
  --selection-fg: var(--on-fold);

  /* Подложка текста по месту: на стене — стена, на листе — лист (страховка линии сгиба) */
  --surface: var(--wall);

  /* Гарнитуры — self-host, latin */
  --font-serif: "Newsreader", "Times New Roman", Times, serif;
  --font-sans: "Schibsted Grotesk", "Helvetica Neue", Arial, sans-serif;
  --wght-text: 400;
  --wght-name: 500;
  --wght-strong: 600;
  --wght-ui: 500;
  --wght-ui-strong: 600;

  /* Шкала размеров: 7 ступеней антиквы + 2 интерфейса */
  --norm-h1-size: min(clamp(44px, 7.2vw, 112px), 11.5svh);
  --fs-display: var(--norm-h1-size);
  --fs-data-l: clamp(36px, 5vw, 72px);
  --fs-h2: clamp(28px, 3.33vw, 48px);
  --fs-h3: clamp(21px, 1.94vw, 28px);
  --fs-lede: clamp(18px, 1.32vw, 20px);
  --fs-body: clamp(16px, 1.18vw, 17px);
  --fs-small: clamp(14px, 1.04vw, 15px);
  --fs-ui: 15px;
  --fs-ui-s: 13px;

  --lh-display: 0.96;
  --lh-data: 1;
  --lh-h2: 1.05;
  --lh-h3: 1.2;
  --lh-lede: 1.45;
  --lh-body: 1.55;
  --lh-small: 1.45;
  --lh-ui: 1.2;
  --lh-ui-s: 1.35;

  --ls-display: -0.022em;
  --ls-data: -0.02em;
  --ls-h2: -0.015em;
  --ls-h3: -0.01em;
  --ls-text: 0;
  --ls-ui: 0.005em;
  --ls-ui-s: 0.02em;

  /* Шкала отступов — единственная */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  --space-7: 48px;
  --space-8: 72px;
  --space-9: 96px;
  --space-10: 144px;

  /* Layout */
  --norm-margin: clamp(20px, 4.45vw, 64px);
  --norm-gutter: clamp(12px, 1.67vw, 24px);
  --norm-container-max: 1312px;
  --container: min(100% - 2 * var(--norm-margin), var(--norm-container-max));
  --cw: min(100vw - 2 * var(--norm-margin), var(--norm-container-max)); /* помощник norm.object-fit: контейнер от окна, без контейнерных единиц */
  --norm-measure: 68ch;
  --split-narrow: 5fr;  /* помощник norm.split: доля узкой колонки */
  --split-wide: 7fr;    /* помощник norm.split: доля широкой колонки */
  --norm-split: minmax(0, var(--split-narrow)) minmax(0, var(--split-wide));
  --split-rev: minmax(0, var(--split-wide)) minmax(0, var(--split-narrow)); /* помощник norm.split: широкая слева */
  --norm-section-gap: clamp(var(--space-8), 9vw, var(--space-10));
  --section-gap-short: clamp(var(--space-8), 6vw, var(--space-9));
  --head-gap: clamp(var(--space-6), 3.33vw, var(--space-7));
  --sheet-pad: clamp(var(--space-5), 3.33vw, var(--space-7));
  --norm-lede-col-min: 340px;
  --norm-sig-width-work: 0.72;

  /* Фолд и линия сгиба */
  --header-h: 56px;
  --fold-h: calc(100svh - var(--header-h) - var(--line-w));
  --fold-tail: var(--space-10);
  --tab-h: calc(var(--fs-ui) * var(--lh-ui) + 2 * var(--space-1));
  --norm-sig-cut: 0.1;
  --plate-cut: 0.11;

  /* Плита и рама: паспарту и пропорция */
  --mat-k: 0.025;  /* помощник norm.mat: доля паспарту от ширины плиты */
  --norm-mat: max(8px, calc(var(--mat-k) * 100cqi));
  --plate-k: calc((1 - 2 * var(--mat-k)) * 900 / 1440 + 2 * var(--mat-k));
  --plate-k-narrow: calc((1 - 2 * var(--mat-k)) * 844 / 390 + 2 * var(--mat-k));
  /* помощник norm.sig-cut: высота плиты широкого фолда P; cq-единицы разрешаются
     у плиты против яруса .fold__tier (container: tier / size) */
  --plate-h: min(100cqh / (1 - var(--plate-cut)), (100cqi - var(--norm-lede-col-min) - var(--norm-gutter)) * var(--plate-k));

  /* Адрес контакта: cqi разрешается против блока .contact (container-type: inline-size) */
  --norm-address-fit: 7;
  --fs-address: calc(100cqi / var(--norm-address-fit));

  /* Рамы первого ряда фолда Process (norm.step-floor, norm.step-lines); помощники — в «Process · 1» */
  --norm-step-floor: 0.75;
  --norm-step-lines: 7;
  /* Тень подвеса (norm.mount-shadow): контактная + длинная вниз-вправо; длинная — из помощников */
  --mount-x: 8px;        /* помощник norm.mount-shadow: сдвиг вправо */
  --mount-y: 18px;       /* помощник norm.mount-shadow, norm.shadow-clear: сдвиг вниз */
  --mount-blur: 32px;    /* помощник norm.mount-shadow, norm.shadow-clear: размытие */
  --mount-spread: -8px;  /* помощник norm.mount-shadow, norm.shadow-clear: растяжение */
  --norm-mount-shadow: 0 1px 1px rgb(17 19 22 / 0.22),
    var(--mount-x) var(--mount-y) var(--mount-blur) var(--mount-spread) rgb(17 19 22 / 0.2);
  /* norm.shadow-clear: вылет длинной тени ниже нижней кромки плиты */
  --norm-shadow-clear: calc(var(--mount-y) + var(--mount-blur) + var(--mount-spread));

  /* Управление */
  --btn-h: 48px;
  --btn-h-s: 40px;
  --radius: 0;

  /* Шов фолда B без рамы (norm.seam) */
  --tab-clear: calc(var(--tab-h) + var(--space-3));                 /* помощник norm.seam: место язычка над линией */
  --seam-min: calc(var(--tab-clear) + var(--line-w) + var(--space-5)); /* помощник norm.seam: наименьший шов */
  --tab-w: 0px;                                                      /* помощник зоны язычка: ширину язычка ставит скрипт */

  /* Плита-деталь: высота / ширина кадра детали */
  --detail-k: calc(2 / 3);  /* помощник norm.detail-shot */

  /* z-индексы: стена → плиты и рамы → линия → текст → язычок */
  --z-plate: 1;
  --z-line: 2;
  --z-text: 3;
  --z-tab: 4;
  --z-menu: 20;
  --z-skip: 30;
}

@media (min-width: 720px) {
  :root { --header-h: 64px; --norm-address-fit: 10; }
}
@media (min-width: 1080px) {
  :root { --norm-step-lines: 5; }
}

.sheet { --surface: var(--sheet); }
::selection { background: var(--selection-bg); color: var(--selection-fg); }

/* Токены движения — 05 (дословно) */
:root {
  /* Длительности */
  --dur-micro: 140ms;   /* hover: цвет ссылок и кнопок; появление язычка */
  --dur-short: 240ms;   /* локальное изменение состояния: Copy address, строка ошибки */
  --dur-medium: 380ms;  /* появление кадра раскадровки */
  --dur-long: 700ms;    /* только рисование линии сгиба (норма norm.fold-draw): единственный жест
                           сайта; путь линии через всё окно читается за это время, короче —
                           вспышка, длиннее — ожидание; больше нигде не используется */
  --dur-reduced: 80ms;  /* reduced-motion: смена цвета и opacity вместо движения (не больше 100ms) */

  /* Кривые */
  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);      /* ответ интерфейса, появление */
  --ease-in: cubic-bezier(0.64, 0, 0.78, 0);       /* зарезервирована: уходов в каталоге нет */
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);   /* зарезервирована: симметричных ходов в каталоге нет */
  --ease-rule: cubic-bezier(0.55, 0, 0.1, 1);      /* фирменная: линейка — разгон и длинное торможение; только линия сгиба */

  /* Задержки */
  --delay-fold-draw: 120ms;  /* линия начинает рисоваться чуть позже первого кадра: сначала видна работа */
  --delay-tab: calc(var(--delay-fold-draw) + var(--dur-long));  /* язычок появляется, когда линия дошла до правого края */
  --delay-copied-reset: 2000ms;  /* «Address copied» возвращается в «Copy address» (04) */

  /* Стаггер */
  --stagger-frame: 90ms;  /* шаг между кадрами раскадровки */

  /* Нормы движения: числа читает и CSS, и скрипт (getComputedStyle) — единственное место значения */
  --norm-scrub: 1;            /* пикселей сдвига кадра страницы на пиксель скролла сцены */
  --norm-scrub-k-max: 2;      /* norm.scrub-k-max: предел --norm-scrub, если сцена длиннее потолка: k = ход / длина сцены */
  --norm-scene-max: 4;        /* norm.scene-max: потолок длины сцены в высотах окна (innerHeight): от первого пикселя скролла
                                 до отпускания стадии, то есть вместе с уходом текста над стадией (колонка) */
  --norm-scene-page-max: 6;   /* norm.scene-page-max: потолок высоты кадра страницы кейса в высотах кадра (для 06) */
  --norm-reveal-threshold: 0.2;  /* доля высоты кадра раскадровки в окне, при которой он появляется */
  --norm-stagger-steps: 5;    /* norm.stagger-steps: предел номера в стаггере: при быстрой прокрутке задержка не растёт дальше */

  /* Помощники сцены (не нормы). Значения ставит скрипт при вооружении и пересчёте; до вооружения
     их нет (в CSS у каждого запасное значение) и сцены тоже нет.
     --scene-len: длина запаса скролла, пока стадия закреплена (на колонке — после ухода текста над
       стадией, он в запас не входит); формула — «Scroll-поведение» (--norm-scene-max, --norm-scrub-k-max).
     --stage-top: верх закреплённой стадии колонкой от верха окна, по 04 («Кейс · 1 Сцена»):
       max(--space-3, y линии − (высота стадии − --plate-cut × высота плиты)), y линии = --header-h + --fold-h.
     --stage-hold: расстояние от линии до низа стадии в закреплённом состоянии (широкий фолд — высота
       стадии − --fold-h; колонка — --stage-top + высота стадии − y линии); высота слоёв линии и язычка,
       чтобы они отпускались вместе со стадией. */
  --scene-len: 0px;
  --stage-top: var(--space-3);
  --stage-hold: 0px;
}

/* ===== База ===== */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--wall);
  color: var(--ink);
  font-family: var(--font-serif);
  font-size: var(--fs-body);
  font-weight: var(--wght-text);
  line-height: var(--lh-body);
  letter-spacing: var(--ls-text);
  font-optical-sizing: auto;
  -webkit-font-smoothing: antialiased;
}
h1, h2, h3, p, ul, ol, dl, dd, figure { margin: 0; }
ul, ol { padding: 0; list-style: none; }
img, svg { display: block; max-width: 100%; }
h1, h2, h3 { font-weight: var(--wght-text); text-wrap: balance; }
p, dd, li { text-wrap: pretty; }
button { font: inherit; color: inherit; }

h1 {
  font-size: var(--fs-display);
  line-height: var(--lh-display);
  letter-spacing: var(--ls-display);
  padding-top: var(--space-5);
}
h2 { font-size: var(--fs-h2); line-height: var(--lh-h2); letter-spacing: var(--ls-h2); }
h3 { font-size: var(--fs-h3); line-height: var(--lh-h3); letter-spacing: var(--ls-h3); }

.nw { white-space: nowrap; }
.sr-only {
  position: absolute !important;
  width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0;
}

/* Ссылки */
a {
  color: var(--ink);
  text-decoration-line: underline;
  text-decoration-thickness: var(--hair);
  text-decoration-color: var(--fold);
  text-decoration-skip-ink: auto;
  text-underline-offset: 0.2em;
}
a:hover { text-decoration-thickness: var(--line-w); }
a:active { text-decoration-color: var(--fold-active); text-decoration-thickness: var(--line-w); }
/* Крупная ссылка (04, «Кнопки, „Copy address“, ссылки»): база — --line-w; norm.ul-display — внутри @supports */
.faqidx__list a, .p404__name, .others__list a, .contact__addr a {
  text-decoration-thickness: var(--line-w);
  text-underline-offset: 0.12em;
}
.faqidx__list a:hover, .p404__name:hover, .others__list a:hover, .contact__addr a:hover,
.faqidx__list a:active, .p404__name:active, .others__list a:active, .contact__addr a:active {
  text-decoration-thickness: calc(var(--line-w) + var(--hair));
}
.faqidx__list a:active, .p404__name:active, .others__list a:active, .contact__addr a:active { text-decoration-color: var(--fold-active); }
@supports (text-decoration-thickness: round(1px, 1px)) {
  .faqidx__list a, .p404__name, .others__list a, .contact__addr a { text-decoration-thickness: var(--norm-ul-display); }
  .faqidx__list a:hover, .p404__name:hover, .others__list a:hover, .contact__addr a:hover,
  .faqidx__list a:active, .p404__name:active, .others__list a:active, .contact__addr a:active {
    text-decoration-thickness: calc(var(--norm-ul-display) + var(--hair));
  }
}
:focus-visible { outline: var(--focus-width) solid var(--focus-color); outline-offset: var(--focus-offset); }
main:focus { outline: none; }

.link-ui {
  font-family: var(--font-sans); font-weight: var(--wght-ui); font-size: var(--fs-ui); line-height: var(--lh-ui); letter-spacing: var(--ls-ui);
}
.ext { display: inline-block; width: 0.62em; height: 0.62em; margin-left: var(--space-1); vertical-align: 0.05em; }

/* Подложка текста (04, «Линия сгиба и текст»): только у текстовых элементов; элемент, внутри которого стоит .frame
   (ol.steps, ряд плит 404, сетка рам главной), ни подложки, ни z-index не получает — рамы остаются на --z-plate, под линией */
main :is(h1, h2, h3, p, ul, ol, dl, table, nav, .label, .cta-row, .p404__name):not(:has(.frame), .pstep__cap, .faq__index) {
  position: relative;
  z-index: var(--z-text);
  background-color: var(--surface);
}
/* Строка, прерванная линией (окно страховки): справа свободна зона язычка (ширина язычка + --space-3) */
.is-line-cut { margin-inline-end: var(--cut-end, 0px); }

/* Макет страницы: контент по ширине контейнера */
.pg { width: var(--container); margin-inline: auto; }
.sec { margin-top: var(--norm-section-gap); }
.sec__head { margin-bottom: var(--head-gap); }
.lead { font-size: var(--fs-lede); line-height: var(--lh-lede); max-inline-size: var(--norm-measure); margin-top: var(--space-4); }
.sheet { background: var(--sheet); padding: var(--sheet-pad); }

/* ===== Ссылка пропуска, шапка ===== */
.skip:not(:focus) { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip:focus {
  position: fixed; top: var(--space-3); left: var(--space-3); z-index: var(--z-skip);
  background: var(--fold); color: var(--on-fold); padding: var(--space-3) var(--space-4);
  font: var(--wght-ui) var(--fs-ui)/var(--lh-ui) var(--font-sans); text-decoration: none;
}
.site-head { position: relative; height: var(--header-h); }
.site-head__in { display: flex; align-items: center; height: 100%; }
.logo {
  margin-right: auto;
  font-family: var(--font-serif); font-weight: var(--wght-strong); font-size: var(--fs-lede); line-height: 1; letter-spacing: var(--ls-h3);
  color: var(--ink); text-decoration: none;
}
.logo:hover, .logo:active { color: var(--ink); }
.nav { display: none; }
.nav ul { display: flex; gap: var(--space-6); }
.nav a, .menu__panel a, .site-foot__nav a {
  color: var(--ink); text-decoration-line: none;
}
.nav a, .site-foot__nav a {
  font-family: var(--font-sans); font-weight: var(--wght-ui); font-size: var(--fs-ui); line-height: var(--lh-ui); letter-spacing: var(--ls-ui);
}
.nav a, .site-foot__nav a { text-underline-offset: 6px; }
.nav a:hover, .menu__panel a:hover, .site-foot__nav a:hover { text-decoration-line: underline; text-decoration-thickness: var(--hair); text-decoration-color: var(--ink); }
.nav a[aria-current="page"] { text-decoration-line: underline; text-decoration-thickness: var(--line-w); text-decoration-color: var(--fold); }
.nav a:active, .menu__panel a:active, .site-foot__nav a:active { text-decoration-line: underline; text-decoration-thickness: var(--line-w); text-decoration-color: var(--fold-active); }
.site-head .btn { margin-left: var(--space-3); }

.menu { margin-left: var(--space-3); }
.menu summary {
  list-style: none; cursor: pointer; display: flex; align-items: center; height: var(--btn-h-s);
  font-family: var(--font-sans); font-weight: var(--wght-ui); font-size: var(--fs-ui); line-height: var(--lh-ui); letter-spacing: var(--ls-ui);
}
.menu summary::-webkit-details-marker { display: none; }
.menu[open] summary { text-decoration-line: underline; text-decoration-thickness: var(--line-w); text-decoration-color: var(--ink); text-underline-offset: 6px; }
.menu__panel {
  position: absolute; left: 0; right: 0; top: var(--header-h); z-index: var(--z-menu);
  background: var(--sheet); padding: var(--space-4) var(--norm-margin);
}
.menu__panel li + li { border-top: var(--hair) solid var(--rule); }
.menu__panel a {
  display: flex; align-items: center; min-height: var(--btn-h);
  font-family: var(--font-serif); font-size: var(--fs-h3); line-height: var(--lh-h3); letter-spacing: var(--ls-h3);
}
.menu__panel a[aria-current="page"] { text-decoration-line: underline; text-decoration-thickness: var(--line-w); text-decoration-color: var(--fold); }
.menu__panel a[aria-current="page"]:active { text-decoration-color: var(--fold-active); }
.menu__panel :is(nav, ul) { position: static; z-index: auto; background: none; }

@media (min-width: 720px) {
  .nav { display: block; margin-right: var(--space-7); }
  .site-head .btn { margin-left: 0; }
  .menu { display: none; }
}

/* ===== Кнопки ===== */
.btn {
  display: inline-flex; align-items: center; justify-content: center;
  height: var(--btn-h); padding-inline: var(--space-5);
  background: var(--fold); color: var(--on-fold); border: 0; border-radius: var(--radius);
  font-family: var(--font-sans); font-weight: var(--wght-ui); font-size: var(--fs-ui); line-height: var(--lh-ui); letter-spacing: var(--ls-ui);
  text-decoration: none; white-space: nowrap; cursor: pointer;
}
.btn:hover { background: var(--fold-hover); color: var(--on-fold); }
.btn:active { background: var(--fold-active); color: var(--on-fold); }
.btn--s { height: var(--btn-h-s); padding-inline: var(--space-4); }
.btn--quiet { background: transparent; color: var(--ink); border: var(--hair) solid var(--ink); }
.btn--quiet:hover { background: var(--sheet); color: var(--ink); border-color: var(--ink); }
.btn--quiet:active { background: var(--sheet-2); color: var(--ink); border-color: var(--ink); }

.cta-row { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-5); }
.copy-slot { display: inline-flex; }
@media (scripting: enabled) { .copy-slot { min-width: 6.5em; min-height: var(--btn-h); } }
.copy {
  appearance: none; background: none; border: 0; cursor: pointer;
  height: var(--btn-h); padding: 0 var(--space-1);
  color: var(--ink);
  font-family: var(--font-sans); font-weight: var(--wght-ui); font-size: var(--fs-ui); line-height: var(--lh-ui); letter-spacing: var(--ls-ui);
  text-decoration-line: underline; text-decoration-thickness: var(--hair); text-decoration-color: var(--fold);
  text-decoration-skip-ink: auto; text-underline-offset: 0.25em;
}
.copy:hover { text-decoration-thickness: var(--line-w); }
.copy:active { text-decoration-color: var(--fold-active); text-decoration-thickness: var(--line-w); }
.copy.is-done { color: var(--state-success); text-decoration-line: none; }
.copy-note {
  flex: 0 0 100%; margin: 0;
  font-size: var(--fs-small); line-height: var(--lh-small); color: var(--state-error);
  background: var(--state-surface); border-left: var(--line-w) solid var(--state-rule);
  padding: var(--space-2) var(--space-3);
}

/* ===== Линия сгиба, язычок ===== */
.fold-line {
  position: absolute; top: calc(var(--fold-h) + var(--header-h)); left: 0; right: 0;
  height: var(--line-w); background: var(--fold); z-index: var(--z-line); pointer-events: none;
}
/* Без JS язычок лежит под текстом (z-line, после линии в порядке разметки): текст он не закрывает; с JS — верхний слой */
.fold-tab {
  position: absolute; top: calc(var(--fold-h) + var(--header-h) - var(--tab-h));
  right: max(var(--norm-margin), calc((100% - var(--norm-container-max)) / 2));
  height: var(--tab-h); padding: var(--space-1) var(--space-3);
  background: var(--fold); color: var(--on-fold); z-index: var(--z-line); white-space: nowrap;
  font-family: var(--font-sans); font-weight: var(--wght-ui-strong); font-size: var(--fs-ui); line-height: var(--lh-ui);
  font-variant-numeric: tabular-nums lining-nums; pointer-events: none;
}
.js .fold-tab { z-index: var(--z-tab); }
.last-fold { height: var(--line-w); background: var(--fold); margin-top: var(--norm-section-gap); }

/* ===== Рама, плита ===== */
.frame {
  position: relative; z-index: var(--z-plate);
  container-type: inline-size;
  background: var(--sheet); box-shadow: var(--norm-mount-shadow);
  border-radius: var(--radius);
}
.frame__in { padding: var(--norm-mat); }
.pic { display: block; }
.pic--d { display: none; }
.dim__t--d { display: none; }
.pic img {
  width: 100%; height: auto; background: var(--sheet-2); color: var(--ink-2);
  font: var(--wght-ui) var(--fs-ui-s)/var(--lh-ui-s) var(--font-sans); overflow: hidden;
}
@media (min-width: 720px) {
  .plate--work .pic--d, .plate--step .pic--d { display: block; }
  .plate--work .pic--m, .plate--step .pic--m { display: none; }
}
@media (min-width: 720px) and (not ((max-aspect-ratio: 13/10) or (min-height: 1100px))), (min-width: 1360px) and (min-aspect-ratio: 3/2) and (min-height: 650px) {
  .plate--fold .pic--d { display: block; }
  .plate--fold .pic--m { display: none; }
  .dim__t--d { display: inline; }
  .dim__t--m { display: none; }
}

/* Размерные метки (только плиты фолда) */
.dim { position: absolute; pointer-events: none; color: var(--fold); font-family: var(--font-sans); font-weight: var(--wght-ui-strong); font-size: var(--fs-ui-s); line-height: var(--lh-ui-s); letter-spacing: var(--ls-ui-s); font-variant-numeric: tabular-nums lining-nums; }
.dim--h {
  left: var(--norm-mat); right: var(--norm-mat); bottom: calc(100% + var(--space-3));
  height: var(--hair); background: var(--fold);
}
.dim--h::before, .dim--h::after { content: ""; position: absolute; top: -4px; width: var(--hair); height: 8px; background: var(--fold); }
.dim--h::before { left: 0; }
.dim--h::after { right: 0; }
.dim--h .dim__t { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); padding-inline: var(--space-2); background: var(--wall); white-space: nowrap; }
.dim--v { top: 0; bottom: 0; left: calc(-0.5 * var(--norm-margin)); width: 0; }
.dim--v::before { content: ""; position: absolute; top: var(--norm-mat); bottom: var(--norm-mat); left: 0; width: var(--hair); background: var(--fold); }
.dim--v::after { content: ""; position: absolute; top: var(--norm-mat); bottom: var(--norm-mat); left: -4px; width: 8px; border-top: var(--hair) solid var(--fold); border-bottom: var(--hair) solid var(--fold); }
.dim--v .dim__t { position: absolute; left: 0; top: var(--dimv-y, 30%); transform: translate(-50%, -50%) rotate(-90deg); padding-inline: var(--space-2); background: var(--wall); white-space: nowrap; z-index: 1; }

/* Схемы */
.scheme__box { position: relative; }
.scheme__svg { display: block; width: 100%; height: auto; overflow: visible; }
.scheme__svg--d { display: none; }
.s-wall { fill: var(--wall); }
.s-sheet { fill: var(--sheet); }
.s-ink { fill: var(--ink); }
.s-ink2 { fill: var(--ink-2); }
.s-fold { fill: var(--fold); }
.s-edge { stroke: var(--ink); stroke-width: var(--hair); vector-effect: non-scaling-stroke; }
.s-ghost { fill: none; stroke: var(--ink-2); stroke-width: var(--hair); vector-effect: non-scaling-stroke; }
line.s-edge { fill: none; }
.s-dim { stroke: var(--fold); stroke-width: var(--hair); vector-effect: non-scaling-stroke; fill: none; }
.s-leader { stroke: var(--ink); stroke-width: var(--hair); vector-effect: non-scaling-stroke; fill: none; }
.sch-l {
  display: none; position: absolute; white-space: nowrap;
  font-family: var(--font-sans); font-weight: var(--wght-ui); font-size: var(--fs-ui-s); line-height: var(--lh-ui-s); letter-spacing: var(--ls-ui-s);
  color: var(--ink); background: var(--sheet); padding: var(--space-1) var(--space-2);
}
.sch-l--story { left: 4.44%; top: 17.33%; transform: translateY(-100%); }   /* над первым бруском заголовка, у его левого края; выноска вниз к бруску */
.sch-l--object { left: 52.78%; top: 12%; transform: translateY(-100%); }
.sch-l--cta { left: 20.56%; top: 57.56%; transform: translateY(-50%); }
/* Ключи 1–3 (04, «Подписи „Анатомии“»): плашка --sheet, цифра на тех же местах, что подписи; без выноски */
.sch-k {
  display: inline-block; background: var(--sheet); color: var(--ink); padding: var(--space-1) var(--space-2);
  font-family: var(--font-sans); font-weight: var(--wght-ui-strong); font-size: var(--fs-ui-s); line-height: var(--lh-ui-s); letter-spacing: var(--ls-ui-s);
  font-variant-numeric: tabular-nums lining-nums;
}
.scheme__box .sch-k { display: none; position: absolute; transform: translateY(-50%); }
.sch-k--d.sch-k--1 { left: 4.44%; top: 19.56%; }
.sch-k--d.sch-k--2 { left: 52.78%; top: 15.11%; }
.sch-k--d.sch-k--3 { left: 19.44%; top: 57.56%; }
.sch-k--m.sch-k--1 { left: 5.13%; top: 11.37%; }
.sch-k--m.sch-k--2 { left: 10.26%; top: 42.65%; }
.sch-k--m.sch-k--3 { left: 48.72%; top: 36.02%; }
.sch-l--fold { left: 4.4%; top: 99%; transform: translateY(-100%); color: var(--fold); background: none; padding: 0; }

.legend { display: flex; flex-wrap: wrap; column-gap: var(--space-4); row-gap: var(--space-1); font-family: var(--font-sans); font-weight: var(--wght-ui); font-size: var(--fs-ui-s); line-height: var(--lh-ui-s); letter-spacing: var(--ls-ui-s); color: var(--ink); }
.legend li { display: inline-flex; align-items: center; gap: var(--space-2); }
.sw { display: inline-block; width: 12px; height: 8px; flex: none; }
.sw--fold { height: 2px; background: var(--fold); }

/* ===== Этикетка плиты ===== */
.label__head {
  font-family: var(--font-serif); line-height: var(--lh-h3);
  display: flex; flex-wrap: wrap; align-items: baseline; column-gap: var(--space-3);
}
.label__a { max-inline-size: 100%; }
.label__name {
  font-family: var(--font-serif); font-weight: var(--wght-name); font-size: var(--fs-h3); line-height: var(--lh-h3); letter-spacing: var(--ls-h3);
  white-space: nowrap; overflow-wrap: normal; hyphens: manual;
}
.label__b {
  font-family: var(--font-sans); font-weight: var(--wght-ui); font-size: var(--fs-ui-s); line-height: var(--lh-ui-s); letter-spacing: var(--ls-ui-s);
  color: var(--ink-2); white-space: nowrap;
}
.label__dot { display: none; }
.label__dir, .label__sig { display: grid; grid-template-columns: max-content minmax(0, 1fr); column-gap: var(--space-4); }
.label__dir dt, .label__sig dt, .label__data dt {
  font-family: var(--font-sans); font-weight: var(--wght-ui); font-size: var(--fs-ui-s); line-height: var(--lh-ui-s); letter-spacing: var(--ls-ui-s); color: var(--ink-2);
}
.label__dir dd { font-size: var(--fs-body); line-height: var(--lh-body); }
.label__sig dd { font-size: var(--fs-small); line-height: var(--lh-small); }
.label__dir { margin-top: var(--space-3); }
.label__data { margin-top: var(--space-2); container: label-data / inline-size; }
.label__data dt { margin-bottom: var(--space-1); }
.label__vals { display: grid; row-gap: var(--space-3); }
.val { display: block; }
.val__n {
  display: block; white-space: nowrap;
  font-family: var(--font-serif); font-weight: var(--wght-text); font-size: var(--fs-h3); line-height: var(--lh-data); letter-spacing: var(--ls-data);
  font-variant-numeric: tabular-nums lining-nums;
}
.val__c {
  display: block; margin-top: var(--space-1);
  font-family: var(--font-sans); font-weight: var(--wght-text); font-size: var(--fs-ui-s); line-height: var(--lh-ui-s); letter-spacing: var(--ls-ui-s); color: var(--ink-2);
}
@container label-data (min-width: 460px) {
  .label__vals { grid-auto-flow: column; justify-content: start; column-gap: var(--space-5); }
}
.fold-rest .label__vals { grid-auto-flow: row; }   /* кейс колонкой: данные столбцом при любой ширине (04, «Этикетка плиты»); в колонке лида широкого фолда — norm.label-row: столбец не вмещается над линией на 1440 × 800 */
.label__cond { margin-top: var(--space-2); font-size: var(--fs-small); line-height: var(--lh-small); color: var(--ink-2); }
.label__sig { margin-top: 0; }
.label__links {
  display: flex; flex-wrap: wrap; column-gap: var(--space-5); row-gap: var(--space-2); margin-top: var(--space-4);
  font-family: var(--font-sans); font-weight: var(--wght-ui); font-size: var(--fs-ui); line-height: var(--lh-ui); letter-spacing: var(--ls-ui);
}
.label__links a { white-space: nowrap; }

/* ===== Фолд P (главная, кейсы) ===== */
/* Колонкой (вне norm.fold-wide). Обёртки — display: contents; порядок задаёт order у нефокусируемых блоков. */
.fold--p { display: flex; flex-direction: column; }
.fold--p :is(.fold__box, .fold__tier, .fold__col, .label) { display: contents; }
.fold--p h1 { order: 0; }
.fold--p .fold__lede { order: 1; margin-top: var(--space-6); font-size: var(--fs-lede); line-height: var(--lh-lede); }
.fold--p .cta-row { order: 2; margin-top: var(--space-5); }
.fold--p .label__head { order: 3; margin-top: var(--space-6); }
.fold--p .plate--fold { order: 5; margin-top: calc(var(--space-3) + var(--space-4) + var(--space-2)); }
.fold--p .label__dir { order: 6; margin-top: var(--space-6); }
.fold--p .label__data { order: 6; margin-top: var(--space-2); }
.fold--p .label__cond { order: 6; }
.fold--p .label__more { order: 7; margin-top: var(--space-4); }
.fold--p .label__head { white-space: normal; }
.fold--p .label__a { white-space: nowrap; }
.fold--p .label__dot { display: inline; }
.fold--p .label__more .label__links { margin-top: var(--space-4); }
.fold--p .label__sig { margin-top: 0; }

/* Низкий порядок (norm.fold-low): над линией — H1, голова, метка, плита; лид и CTA — за линией */
@media (width < 720px) and (height < 839px), (720px <= width < 1080px) and (height < 727px), (width >= 1080px) and (height < 774px) {
  .fold--p .label__head { order: 1; margin-top: var(--space-6); }
  .fold--p .plate--fold { order: 3; }
  .fold--p .fold__lede { order: 4; margin-top: var(--space-6); }
  .fold--p .cta-row { order: 5; margin-top: var(--space-5); }
}

/* Метка ширины и высоты — на стене у плиты */
.plate--fold .dim--v { left: calc(-0.5 * var(--norm-margin)); }

/* Кейс, колонкой (вне norm.fold-wide). Стадия сцены — голова этикетки и плита; H1, лид и кнопка — над стадией. Всё, что под линией
   (лид и кнопка низкого порядка, строки этикетки), стоит после обёртки сцены (.fold-rest): обёртка кончается вместе с плитой (05). */
.scene__stage { display: contents; }
.scene__runway { order: 9; height: 0; }
.fold--case .fold__rows { display: none; }
.fold--case .cta-row { margin-bottom: var(--space-6); }
.fold--case .label__head { margin-top: 0; }
.fold-rest .fold__lede--tail, .fold-rest .cta-row--tail { display: none; }
.fold-rest .label__dir { margin-top: var(--space-6); }
.fold-rest .label__data { margin-top: var(--space-2); }
.fold-rest .label__cond { margin-bottom: 0; }
/* Низкий порядок (norm.fold-low): над линией — H1, голова, метка, плита; лид и кнопка — после плиты, за линией */
@media (width < 720px) and (height < 839px), (720px <= width < 1080px) and (height < 727px), (width >= 1080px) and (height < 774px) {
  .fold--case .fold__tier > .fold__lede, .fold--case .fold__tier > .cta-row { display: none; }
  .fold--case h1 { margin-bottom: var(--space-6); }
  .fold-rest .fold__lede--tail { display: block; margin-top: var(--space-6); font-size: var(--fs-lede); line-height: var(--lh-lede); }
  .fold-rest .cta-row--tail { display: flex; margin-top: var(--space-5); }
}

/* Широкий фолд (norm.fold-wide): колонка лида + плита справа, до кромки окна */
@media (min-width: 1360px) and (min-aspect-ratio: 3/2) and (min-height: 650px) {
  .fold--p { display: block; width: auto; margin-inline: 0; padding-bottom: var(--fold-tail); }
  .fold--p .fold__box {
    display: grid;
    grid-template-columns: [full-start] minmax(0, 1fr) [content-start] var(--container) [content-end] minmax(0, 1fr) [full-end];
    grid-template-rows: auto var(--space-7) minmax(0, 1fr);
    height: var(--fold-h);
  }
  .fold--p h1 { grid-column: content; grid-row: 1; order: 0; }
  .fold--p .fold__tier {
    display: grid; grid-column: content-start / full-end; grid-row: 3; min-height: 0;
    container: tier / size;
    grid-template-columns: minmax(var(--norm-lede-col-min), 1fr) auto;
    column-gap: var(--norm-gutter);
  }
  .fold--p .fold__col {
    display: grid; position: relative; min-width: 0;
    grid-template-rows: auto auto minmax(var(--space-5), 1fr) auto;
    padding-bottom: var(--space-5);
    container-type: inline-size;
  }
  .fold--p .fold__lede { grid-row: 1; order: 0; margin-top: 0; font-size: clamp(var(--fs-body), 5.2cqi, var(--fs-lede)); }
  .fold--p .cta-row { grid-row: 2; order: 0; margin-top: var(--space-5); align-self: start; }
  .fold--p .label { display: block; grid-row: 4; align-self: end; }
  .fold--p .label__head { order: 0; margin-top: 0; padding-top: var(--space-3); border-top: var(--hair) solid var(--rule-ink); }
  .fold--p .label__dir { order: 0; margin-top: var(--space-3); }
  .fold--p .label__data { order: 0; margin-top: var(--space-2); }
  .fold--p .label__head { white-space: normal; }
  .fold--p .label__a { white-space: normal; }
  .fold--p .label__dot { display: none; }
  .fold--p .label__more {
    position: absolute; order: 0; margin-top: 0;
    top: calc(100% + var(--line-w) + var(--space-5)); left: 0; right: 0;
  }
  .fold--p .plate--fold {
    order: 0; margin-top: 0; grid-column: 2; grid-row: 1;
    align-self: end; justify-self: end;
    height: var(--plate-h); width: calc(var(--plate-h) / var(--plate-k));
    margin-bottom: calc(-1 * var(--plate-cut) * var(--plate-h));
  }
  .plate--fold .dim--v { left: calc(-0.5 * var(--norm-gutter)); }
  .plate--fold .dim--v .dim__t { top: calc((100% * (1 - var(--plate-cut)) + var(--norm-mat)) / 2); }

  /* Кейс: плоская разметка яруса (стадия сцены — display: contents, её дети — ячейки сетки яруса) */
  .fold--case { padding-bottom: 0; }
  .scene { padding-bottom: var(--fold-tail); }   /* запас под широким фолдом — вне секции: обёртка сцены кончается вместе со стадией (05) */
  .fold--case .scene__stage { display: contents; }
  .fold--case .fold__rows { display: contents; }
  .fold-rest { display: none; }
  .fold--case h1 { margin-bottom: 0; }
  .fold--case .fold__tier > .fold__lede { display: block; }
  .fold--case .fold__tier > .cta-row { display: flex; margin-bottom: 0; }
  .fold--case .fold__tier {
    position: relative;
    grid-template-rows: auto auto minmax(var(--space-5), 1fr) auto auto auto auto;
    --col-w: calc(100cqi - var(--plate-h) / var(--plate-k) - var(--norm-gutter));
  }
  .fold--case .fold__lede { grid-column: 1; grid-row: 1; font-size: clamp(var(--fs-body), calc(0.052 * var(--col-w)), var(--fs-lede)); }
  .fold--case .cta-row { grid-column: 1; grid-row: 2; }
  .fold--case .label__head { grid-column: 1; grid-row: 4; }
  .fold--case .label__dir { grid-column: 1; grid-row: 5; }
  .fold--case .label__data { grid-column: 1; grid-row: 6; }
  .fold--case .label__cond { grid-column: 1; grid-row: 7; margin-bottom: var(--space-5); }
  .fold--case .plate--fold { grid-row: 1 / -1; }
}

/* ===== Сцена кейса (05) ===== */
.plate__win { position: relative; overflow: hidden; aspect-ratio: 390 / 844; }
.plate__page img { background: transparent; }
.scene-tpl { display: none; }
.plate__win .plate__page { display: none; }
.is-scene.has-page .plate__win > .pic:not(.plate__page) { display: none; }
.is-scene.has-page .plate__win .plate__page.pic--m { display: block; }
@media (min-width: 720px) and (not ((max-aspect-ratio: 13/10) or (min-height: 1100px))), (min-width: 1360px) and (min-aspect-ratio: 3/2) and (min-height: 650px) {
  .plate__win { aspect-ratio: 1440 / 900; }
  .is-scene.has-page .plate__win .plate__page.pic--m { display: none; }
  .is-scene.has-page .plate__win .plate__page.pic--d { display: block; }
}
@media (prefers-reduced-motion: no-preference) {
  .is-scene .scene__runway { height: var(--scene-len); }   /* запас скролла, пока стадия закреплена */

  /* Слои линии и язычка: вне стадии, первые в обёртке сцены. Линия неподвижна у нижней кромки окна с первого пикселя скролла.
     Высота каждого слоя — --stage-hold (от линии до низа стадии), поэтому нижняя кромка слоя в закреплённом состоянии стоит там же,
     где низ стадии, и слои отпускаются тем же пикселем скролла, что и стадия (ограничитель sticky — низ обёртки сцены). */
  .is-scene .scene__rule,
  .is-scene .scene__tab {
    position: sticky;
    top: calc(var(--header-h) + var(--fold-h));   /* 04: окно − шапка − толщина линии, плюс шапка */
    height: var(--stage-hold);
    pointer-events: none;
  }
  .is-scene .scene__tab,
  .is-scene .scene__tab + * {                    /* раскладка потока не меняется: высота слоёв погашена; слои стоят один на другом, */
    margin-top: calc(-1 * var(--stage-hold));    /* а не друг под другом: у слоя ниже первого sticky не опускал бы его к линии, когда --stage-hold > --fold-h */
  }
  .is-scene .scene__rule { z-index: var(--z-line); }   /* порядок слоёв 04: плиты → линия → текст */
  .is-scene .scene__tab  { z-index: var(--z-tab); }    /* язычок — верхний слой, как в 04 */
  .is-scene .scene__rule .fold-line { position: absolute; top: 0; }
  .is-scene .scene__tab  .fold-tab  { top: auto; bottom: var(--stage-hold); }   /* нижней кромкой на верхней кромке линии (04) */
  .is-scene .plate__page {
    transform: translate3d(0, calc(var(--scene-y, 0) * -1px), 0);
    will-change: transform;
  }

  /* широкий фолд: стадия — весь фолд P, стоит там же, где стоял до скролла, композиция не сдвигается */
  .is-scene--wide .fold__box { position: sticky; top: var(--header-h); }
  /* колонкой: стадия — голова этикетки, метка ширины и плита; верх — по 04 (линия перерезает плиту на --plate-cut её высоты) */
  .is-scene--col .scene__stage {
    display: flex; flex-direction: column;
    position: sticky; top: var(--stage-top); order: 3;
  }
}

/* ===== Фолд B ===== */
/* Фолд B без рамы (About, FAQ) — шов (norm.seam): сетка строк с распоркой ::before */
.seam { display: grid; grid-template-columns: minmax(0, 1fr); }
.seam > * { grid-column: 1; }
.seam::before {
  content: ""; grid-column: 1; grid-row: 1 / 5;
  min-height: calc(var(--fold-h) + var(--line-w) + var(--space-5));
}
.fold--b .fold__box { display: flex; flex-direction: column; min-height: var(--fold-h); }
.fold--b.seam .fold__box { display: contents; min-height: 0; }
.offer-row { display: grid; gap: var(--space-5); margin-top: var(--space-6); }
.offer-row .fold__lede { font-size: var(--fs-lede); line-height: var(--lh-lede); }
@media (min-width: 720px) {
  .offer-row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: var(--norm-gutter); align-items: start; }
  .offer-row__cta { justify-self: end; }
}

/* ===== Главная · 2 Работа ===== */
.work__row { display: grid; row-gap: var(--space-5); column-gap: var(--norm-gutter); }
.work__row + .work__row { margin-top: var(--norm-section-gap); }
.label--work { display: block; }
.label--work .label__head, .fold--p .label__head { }
.label--work .label__head { padding-top: var(--space-3); border-top: var(--hair) solid var(--rule-ink); }
.label--work .label__more { margin-top: var(--space-4); }
.label--work .label__links { margin-top: var(--space-4); }
@media (min-width: 720px) and (max-width: 1079.98px) {
  /* плита во всю ширину; под ней этикетка в две колонки norm.split: слева голова и Direction, справа Signature и ссылки */
  .label--work { display: grid; grid-template-columns: var(--norm-split); column-gap: var(--norm-gutter); align-items: start; }
  .label--work .label__head, .label--work .label__dir { grid-column: 1; }
  .label--work .label__head { grid-row: 1; }
  .label--work .label__dir { grid-row: 2; }
  .label--work .label__more { grid-column: 2; grid-row: 1 / span 2; margin-top: 0; padding-top: var(--space-3); border-top: var(--hair) solid var(--rule-ink); }
  .label--work .label__links { margin-top: var(--space-3); }
}
@media (min-width: 1080px) {
  .work__row { grid-template-columns: minmax(0, 1fr) calc(var(--norm-sig-width-work) * 100%); }
  .work__row .plate { grid-column: 2; grid-row: 1; }
  .work__row .label { grid-column: 1; grid-row: 1; align-self: end; }
}

/* ===== Главная · 3 Замеры ===== */
.mtable-sheet { display: none; }
.measure__cond { display: grid; gap: var(--space-4); font-size: var(--fs-small); line-height: var(--lh-small); color: var(--ink-2); max-inline-size: var(--norm-measure); }
.all { font-family: var(--font-sans); font-weight: var(--wght-ui); font-size: var(--fs-ui-s); line-height: var(--lh-ui-s); letter-spacing: var(--ls-ui-s); color: var(--ink-2); }
.allv { font-size: var(--fs-lede); line-height: var(--lh-data); font-variant-numeric: tabular-nums lining-nums; white-space: nowrap; }
/* ниже norm.bp-lg — один лист: строки «метрика — значение» */
.msheet__list { margin: 0; }
.msheet__row {
  display: grid; grid-template-columns: minmax(0, 1fr); row-gap: var(--space-1);
  padding-block: var(--space-3); border-top: var(--hair) solid var(--rule);
}
.msheet__row dt { font-size: var(--fs-small); line-height: var(--lh-small); }
.msheet__row dd { font-size: var(--fs-lede); line-height: var(--lh-data); font-variant-numeric: tabular-nums lining-nums; margin: 0; }
.msheet__row dd > .all { display: block; margin-bottom: var(--space-1); }
.msheet__row dd > .allv { display: block; }
.msub { display: grid; grid-template-columns: minmax(0, max-content) minmax(0, 1fr); column-gap: var(--space-4); row-gap: var(--space-1); align-items: baseline; }
.msub__i { display: contents; }
.msub__n { font-family: var(--font-sans); font-weight: var(--wght-ui); font-size: var(--fs-ui-s); line-height: var(--lh-ui-s); letter-spacing: var(--ls-ui-s); color: var(--ink-2); white-space: nowrap; }
.msub__v { white-space: normal; }
.msheet .measure__cond { margin-top: var(--space-5); padding-top: var(--space-5); border-top: var(--hair) solid var(--rule); }
@media (min-width: 720px) {
  .msheet__row { grid-template-columns: minmax(0, 1fr) auto; column-gap: var(--space-4); align-items: baseline; }
  .msheet__row dd > .all, .msheet__row dd > .allv { display: inline; margin: 0; }
  .msheet__row dd > .all { margin-right: var(--space-3); }
  .msheet .measure__cond { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--norm-gutter); max-inline-size: none; }
}
@media (min-width: 1080px) {
  .mtable-sheet { display: block; }
  .msheet { display: none; }
  .mtable { width: 100%; border-collapse: collapse; table-layout: fixed; }
  .mtable thead td { width: 34%; }
  .mtable thead th { width: 22%; }
  .mtable thead th {
    text-align: left; padding: 0 var(--space-3) var(--space-3) 0; vertical-align: bottom;
    font-weight: var(--wght-name); font-size: var(--fs-h3); line-height: var(--lh-h3); letter-spacing: var(--ls-h3);
    white-space: nowrap; overflow-wrap: normal; hyphens: manual;
  }
  .mtable tbody th { text-align: left; font-weight: var(--wght-text); font-size: var(--fs-small); line-height: var(--lh-small); padding: var(--space-3) var(--space-4) var(--space-3) 0; vertical-align: top; }
  .mtable tbody td { padding-block: var(--space-3); vertical-align: top; font-size: var(--fs-lede); line-height: var(--lh-lede); font-variant-numeric: tabular-nums lining-nums; }
  .mtable tbody td[colspan] { display: table-cell; }
  .mtable tbody td[colspan] .all { margin-right: var(--space-3); }
  .mtable tbody tr > * { border-top: var(--hair) solid var(--rule); }
  .mtable-sheet .measure__cond { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--norm-gutter); max-inline-size: none; margin-top: var(--space-6); padding-top: var(--space-5); border-top: var(--hair) solid var(--rule); }
}

/* панель замеров на странице кейса */
.cmeasure__panel > div {
  display: grid; grid-template-columns: minmax(0, 1fr); row-gap: var(--space-1);
  padding-block: var(--space-3); border-top: var(--hair) solid var(--rule);
}
.cmeasure__panel dt { font-size: var(--fs-small); line-height: var(--lh-small); }
.cmeasure__panel dd { font-size: var(--fs-lede); line-height: var(--lh-data); font-variant-numeric: tabular-nums lining-nums; white-space: nowrap; }
@media (min-width: 720px) {
  .cmeasure__panel > div { grid-template-columns: minmax(0, 1fr) auto; column-gap: var(--space-4); align-items: baseline; }
}

/* ===== Главная · 4 Предложение ===== */
.offer__sheets { display: grid; gap: var(--space-5); }
.offer__sheets > .sheet { align-self: start; }
.offer h3, .sprint-in h3 { font-weight: var(--wght-name); }
.sheet__sub { margin-top: var(--space-2); font-size: var(--fs-body); line-height: var(--lh-body); }
.data { display: grid; row-gap: var(--space-4); margin-top: var(--space-4); }
.data__v { display: block; white-space: nowrap; font-size: var(--fs-h2); line-height: var(--lh-data); letter-spacing: var(--ls-data); font-variant-numeric: tabular-nums lining-nums; }
.data__c { display: block; margin-top: var(--space-1); font-family: var(--font-sans); font-size: var(--fs-ui-s); line-height: var(--lh-ui-s); letter-spacing: var(--ls-ui-s); color: var(--ink-2); }
.sprint__top { display: grid; gap: var(--space-5); }
.sprint__mini { display: grid; grid-template-columns: minmax(0, 0.6fr) minmax(0, 0.4fr); column-gap: var(--space-4); align-items: end; max-width: 100%; }
.sprint__mini .legend { flex-direction: column; flex-wrap: nowrap; }
.scheme--mini .scheme__svg--m { display: block; }
.scheme--mini .scheme__svg--d { display: none; }
.scheme--mini .sch-k--m { display: block; }
.groups { display: grid; gap: var(--space-5); margin-top: var(--space-6); }
.group__cap { font-family: var(--font-sans); font-weight: var(--wght-ui); font-size: var(--fs-ui-s); line-height: var(--lh-ui-s); letter-spacing: var(--ls-ui-s); color: var(--ink-2); }
.group li { padding-block: var(--space-2); border-top: var(--hair) solid var(--rule); font-size: var(--fs-body); line-height: var(--lh-body); }
.group__note { margin-top: var(--space-2); font-size: var(--fs-body); line-height: var(--lh-body); }
.sheet__line { margin-top: var(--space-5); font-size: var(--fs-body); line-height: var(--lh-body); }
.sheet__line + .sheet__pay, .sheet__pay + .sheet__line { margin-top: var(--space-2); }
.sheet__pay { margin-top: var(--space-2); font-size: var(--fs-small); line-height: var(--lh-small); color: var(--ink-2); }
.sheet__actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-5); margin-top: var(--space-6); }
.offer__web .data { margin-top: var(--space-3); }
@media (min-width: 720px) {
  .offer__sheets { grid-template-columns: var(--split-rev); column-gap: var(--norm-gutter); }
  .groups { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--norm-gutter); }
  .sprint__mini { grid-template-columns: minmax(0, 1fr); row-gap: var(--space-3); align-items: start; }
  .sprint__mini .legend { flex-direction: row; flex-wrap: wrap; }
  .scheme--mini .scheme__svg--d { display: block; }
  .scheme--mini .scheme__svg--m { display: none; }
  .scheme--mini .sch-k--m { display: none; }
  .scheme--mini .sch-k--d { display: block; }
}
@media (min-width: 1080px) {
  .sprint__top { grid-template-columns: minmax(0, 1fr) minmax(0, 0.7fr); }
}

/* ===== Главная · 5 Процесс (серия рам) ===== */
.frames6 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-6) var(--norm-gutter); align-items: start; }
.pstep__cap { margin-top: var(--space-3); font-size: var(--fs-body); line-height: var(--lh-body); }
.process__more { margin-top: var(--space-6); }
.scheme--step .scheme__svg--m { display: block; }
.scheme--step .scheme__svg--d { display: none; }
/* рама 6 — кадр работы; синяя линия — в поле паспарту вплотную под кадром, на изображение не ложится */
.plate--step .frame__in { position: relative; }
.plate--step .frame__in::after {
  content: ""; position: absolute; left: var(--norm-mat); right: var(--norm-mat);
  bottom: calc(var(--norm-mat) - var(--line-w)); height: var(--line-w); background: var(--fold);
}
@media (min-width: 720px) {
  .frames6 { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: var(--space-7); }
  .scheme--step .scheme__svg--d { display: block; }
  .scheme--step .scheme__svg--m { display: none; }
}

/* ===== Контакт ===== */
.contact { container-type: inline-size; }
.contact__addr {
  margin-top: var(--head-gap);
  font-size: var(--fs-address); line-height: var(--lh-data); letter-spacing: var(--ls-data);
  font-variant-numeric: tabular-nums lining-nums;
}
.contact__addr a { color: var(--ink); text-decoration-line: underline; text-decoration-color: var(--fold); }
.contact__cols { display: grid; gap: var(--space-6); margin-top: var(--space-7); }
.contact__note { margin-top: var(--space-4); font-size: var(--fs-small); line-height: var(--lh-small); color: var(--ink-2); max-inline-size: var(--norm-measure); }
.contact--short .cta-row { margin-top: var(--space-6); }
.contact__note--s { margin-top: var(--space-3); }
.contact__cap { font-family: var(--font-sans); font-weight: var(--wght-ui); font-size: var(--fs-ui-s); line-height: var(--lh-ui-s); letter-spacing: var(--ls-ui-s); color: var(--ink-2); margin-bottom: var(--space-2); }
.incl li { padding-block: var(--space-2); border-top: var(--hair) solid var(--rule); font-size: var(--fs-body); line-height: var(--lh-body); }
.next { margin-top: var(--space-6); }
.next li { padding-block: var(--space-2); border-top: var(--hair) solid var(--rule); font-size: var(--fs-body); line-height: var(--lh-body); }
.draft { padding: var(--space-5); }
.draft__head > div { display: grid; grid-template-columns: max-content minmax(0, 1fr); column-gap: var(--space-3); align-items: baseline; }
.draft__head dt { font-family: var(--font-sans); font-size: var(--fs-ui-s); line-height: var(--lh-ui-s); letter-spacing: var(--ls-ui-s); color: var(--ink-2); }
.draft__head dd { font-size: var(--fs-body); }
.draft__head { padding-bottom: var(--space-2); border-bottom: var(--hair) solid var(--rule); margin-bottom: var(--space-2); }
.draft__lines li { padding-block: var(--space-2); border-bottom: var(--hair) solid var(--wall); font-size: var(--fs-body); line-height: var(--lh-body); }
.facts { display: grid; grid-template-columns: minmax(0, 1fr); margin-top: var(--space-8); }
.facts li { padding-block: var(--space-4); border-top: var(--hair) solid var(--rule); }
.facts li:first-child { border-top: 0; padding-top: 0; }
.facts__v { white-space: nowrap; font-size: var(--fs-h2); line-height: var(--lh-data); letter-spacing: var(--ls-data); font-variant-numeric: tabular-nums lining-nums; }
.facts__c { margin-top: var(--space-2); font-size: var(--fs-small); line-height: var(--lh-small); color: var(--ink-2); }
.start__links { display: grid; gap: var(--space-2); margin-top: var(--space-6); justify-items: start; }
.start__links a { font-size: var(--fs-body); }
@media (min-width: 720px) {
  .start__links { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--norm-gutter); row-gap: var(--space-2); }
  .contact__cols { grid-template-columns: var(--norm-split); column-gap: var(--norm-gutter); }
  .facts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .facts li { padding-block: 0; padding-inline: var(--space-5); border-top: 0; border-left: var(--hair) solid var(--rule); }
  .facts li:first-child { padding-left: 0; border-left: 0; }
}

/* ===== Подвал ===== */
.site-foot { padding-block: var(--space-7) var(--space-8); }
.site-foot__in { display: grid; gap: var(--space-5); }
.site-foot__name { font-weight: var(--wght-strong); font-size: var(--fs-h3); line-height: var(--lh-h3); letter-spacing: var(--ls-h3); }
.site-foot__mail { margin-top: var(--space-3); font-size: var(--fs-lede); line-height: var(--lh-lede); }
.site-foot__mail a { color: var(--ink); text-decoration-line: underline; text-decoration-thickness: var(--hair); text-decoration-color: var(--fold); text-underline-offset: 0.2em; }
.site-foot__mail a:hover { text-decoration-thickness: var(--line-w); }
.site-foot__mail a:active { text-decoration-color: var(--fold-active); text-decoration-thickness: var(--line-w); }
.site-foot__nav ul { display: grid; grid-template-columns: repeat(2, max-content); column-gap: var(--space-7); row-gap: var(--space-3); }
.site-foot__copy { font-family: var(--font-sans); font-size: var(--fs-ui-s); line-height: var(--lh-ui-s); letter-spacing: var(--ls-ui-s); color: var(--ink-2); }
@media (min-width: 720px) and (max-width: 1079.98px) {
  .site-foot__nav ul { display: flex; flex-wrap: wrap; column-gap: var(--space-6); }
}
@media (min-width: 1080px) {
  .site-foot__in { grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--norm-gutter); align-items: start; }
  .site-foot__brand { grid-column: 1 / span 4; }
  .site-foot__nav { grid-column: 7 / span 4; }
  .site-foot__copy { grid-column: 11 / span 2; align-self: end; text-align: end; }
}

/* ===== Кейс ===== */
.tx { display: grid; gap: var(--space-5); }
.tx__k { font-size: var(--fs-h2); line-height: var(--lh-h2); letter-spacing: var(--ls-h2); overflow-wrap: normal; }
.tx__v > p { max-inline-size: var(--norm-measure); }
.tx__lead { font-size: var(--fs-lede); line-height: var(--lh-lede); }
/* «The brief» на листе: абзац, факты и пометка — одна мера и одна правая кромка (кромка листа) */
.brief { padding: var(--sheet-pad); }
.facts3 { margin-top: var(--space-5); }
.facts3 > div { padding-block: var(--space-3); border-top: var(--hair) solid var(--rule); }
.facts3 dt, .row__cap, .drawn-cap { font-family: var(--font-sans); font-weight: var(--wght-ui); font-size: var(--fs-ui-s); line-height: var(--lh-ui-s); letter-spacing: var(--ls-ui-s); color: var(--ink-2); }
.facts3 dd { font-size: var(--fs-body); }
.tx__note { margin-top: var(--space-4); font-size: var(--fs-small); line-height: var(--lh-small); color: var(--ink-2); }
.drawn-cap { margin-top: var(--space-5); }
/* «Directions drawn»: четыре названия, по одному в строке, одной колонкой на любой ширине; выбранное — --ink */
.drawn { display: grid; margin-top: var(--space-1); max-inline-size: var(--norm-measure); }
.drawn li { padding-block: var(--space-2); border-top: var(--hair) solid var(--rule); color: var(--ink-2); font-size: var(--fs-h3); line-height: var(--lh-h3); letter-spacing: var(--ls-h3); font-weight: var(--wght-text); }
.drawn .is-chosen { color: var(--ink); }
.drawn__mark { margin-left: var(--space-3); font-family: var(--font-sans); font-weight: var(--wght-ui); font-size: var(--fs-ui-s); line-height: var(--lh-ui-s); letter-spacing: var(--ls-ui-s); color: var(--ink-2); white-space: nowrap; }
.rows__h { font-size: var(--fs-h2); line-height: var(--lh-h2); letter-spacing: var(--ls-h2); margin-bottom: var(--head-gap); }
.rows__list > .row { padding-block: var(--space-5); border-top: var(--hair) solid var(--rule); display: grid; gap: var(--space-3); }
.rows__list > .row--detail { align-items: start; gap: var(--space-5); }
.row__txt .row__v { margin-top: var(--space-4); }
.row__txt .row__v p { max-inline-size: none; }
.row__k { font-size: var(--fs-h3); line-height: var(--lh-h3); letter-spacing: var(--ls-h3); font-weight: var(--wght-text); }
.row__v p { max-inline-size: var(--norm-measure); }
.row__cap { margin-bottom: var(--space-1); }
.cmeasure__cols { display: grid; gap: var(--space-6); }
.cmeasure__panel { min-width: 0; }
.cmeasure__cond { display: grid; gap: var(--space-4); font-size: var(--fs-small); line-height: var(--lh-small); color: var(--ink-2); max-inline-size: var(--norm-measure); }
.cmeasure__foot { container-type: inline-size; display: flex; flex-wrap: wrap; align-items: baseline; column-gap: var(--space-5); row-gap: var(--space-2); margin-top: var(--space-5); padding-top: var(--space-5); border-top: var(--hair) solid var(--rule); }
.cmeasure__host { font-size: min(var(--fs-body), calc(100cqi / 18.5)); }
.cmeasure__note { font-size: var(--fs-small); color: var(--ink-2); }
.others__list { display: grid; gap: var(--space-5); margin-top: var(--head-gap); }
.others__list a { color: var(--ink); text-decoration-line: underline; text-decoration-color: var(--fold); font-size: var(--fs-h2); line-height: var(--lh-h2); letter-spacing: var(--ls-h2); }
.nw-h { white-space: nowrap; overflow-wrap: normal; hyphens: manual; }
@media (min-width: 720px) {
  .tx { grid-template-columns: var(--norm-split); column-gap: var(--norm-gutter); }
  .rows__list > .row { grid-template-columns: var(--norm-split); column-gap: var(--norm-gutter); }
  .cmeasure__cols { grid-template-columns: var(--split-rev); column-gap: var(--norm-gutter); }
  .others__list { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--norm-gutter); }
}

/* ===== Sprint · 1 Первый экран (фолд B) ===== */
/* Поток (ниже norm.bp-md или портретное окно): H1 → лид → кнопки → данные → легенда → рама (мобильный кадр) */
.fold--sprint .offer-row__cta .cta-row { justify-content: flex-start; }
.sdata { display: grid; row-gap: var(--space-4); margin-top: var(--space-6); }
.sdata__v { white-space: nowrap; font-size: var(--fs-data-l); line-height: var(--lh-data); letter-spacing: var(--ls-data); font-variant-numeric: tabular-nums lining-nums; }
.sdata__c { margin-top: var(--space-1); font-size: var(--fs-body); line-height: var(--lh-body); color: var(--ink-2); }
.fold__scheme { margin-top: var(--space-6); }
.fold__scheme .legend { margin-bottom: var(--space-4); }
.scheme--anatomy .scheme__svg--m { display: block; }
.scheme--anatomy .scheme__svg--d { display: none; }
.scheme--anatomy .sch-k--m { display: block; }

/* Альбомное окно от norm.bp-md: строка данных из трёх ячеек, схема под ней, перерезана линией */
@media (min-width: 720px) and (orientation: landscape) {
  .fold--sprint .fold__tier { display: block; margin-top: var(--space-6); }
  .fold--sprint .sdata { grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: var(--norm-gutter); row-gap: 0; margin-top: 0; }
  .fold--sprint .sdata > li { container-type: inline-size; border-top: var(--hair) solid var(--rule); padding-top: var(--space-3); }
  .fold--sprint .sdata__v { font-size: clamp(var(--fs-h2), 13.5cqi, var(--fs-data-l)); }
  .fold__scheme { margin-top: var(--space-6); }
  .fold__scheme .legend { display: none; }
  .scheme--anatomy .scheme__svg--d { display: block; }
  .scheme--anatomy .scheme__svg--m { display: none; }
  .scheme--anatomy .sch-l { display: block; }
  .scheme--anatomy .sch-k--m { display: none; }
}
/* Ярус (не ниже norm.sprint-tier): данные колонкой | схема, нижняя кромка рамы — на линии */
@media (720px <= width < 1080px) and (height >= 616px) and (orientation: landscape), (width >= 1080px) and (height >= 650px) and (orientation: landscape) {
  .fold--sprint .fold__box { display: grid; grid-template-rows: auto auto minmax(0, 1fr); row-gap: var(--space-6); height: var(--fold-h); min-height: 0; }
  .fold--sprint .offer-row { margin-top: 0; }
  .fold--sprint .fold__tier {
    display: grid; grid-template-columns: var(--norm-split); column-gap: var(--norm-gutter);
    container: tier / size; margin-top: 0; min-height: 0;
  }
  .fold--sprint .fold__data {
    --sd-cap: calc(var(--fs-body) * var(--lh-body));
    --sd-wrap: 1;
    --sd-gap: clamp(var(--space-5), 10cqh, var(--space-7));
    --sd-fit: calc((100cqh - 2 * var(--sd-gap) - 3 * (var(--space-1) + var(--sd-cap)) - var(--sd-wrap) * var(--sd-cap)) / 3);
    container-type: inline-size;
    display: grid; grid-template-columns: minmax(0, 1fr); row-gap: var(--sd-gap); align-content: start; align-self: start;
  }
  .fold--sprint .sdata > li { container-type: normal; border-top: 0; padding-top: 0; }
  .fold--sprint .sdata__v { font-size: clamp(var(--fs-h2), min(var(--sd-fit), 13.5cqi), var(--fs-data-l)); }
  .fold__scheme { margin-top: 0; container-type: inline-size; display: flex; align-items: flex-end; min-width: 0; }
  .fold__scheme .frame {
    --fh: min(100cqh, 100cqi * var(--plate-k));        /* высота рамы: ярус и колонка */
    --fw: calc(var(--fh) / var(--plate-k));
    --fmat: max(8px, calc(var(--mat-k) * var(--fw)));  /* паспарту рамы (norm.mat); cqi у самой рамы разрешался бы против колонки */
    height: var(--fh); width: var(--fw);
    /* рама опущена под линию сгиба на --line-w / 2 + паспарту + 3/900 высоты экрана схемы: центр ЛС схемы лежит на центре линии окна,
       на кадре одна синяя линия, а не две параллельные (04, «Sprint · 1») */
    margin-bottom: calc(-1 * (var(--line-w) / 2 + var(--fmat) + 3 * (var(--fw) - 2 * var(--fmat)) / 1440));
  }
}
@media (min-width: 1080px) {
  .fold--sprint .fold__data { --sd-wrap: 0; }
}

/* ===== Sprint · 2–4 ===== */
.sprint-in__h { margin-bottom: var(--head-gap); }
.groups--eq { margin-top: 0; }
.sprint-in .group li { font-size: var(--fs-body); }
.sheet__link { margin-top: var(--space-5); }
.sprint-pay__h { margin-bottom: var(--head-gap); }
.pgrid { display: grid; gap: var(--space-6); }
.pcell { border-top: var(--hair) solid var(--rule); padding-top: var(--space-3); }
.pcell__k { font-size: var(--fs-h2); line-height: var(--lh-h2); letter-spacing: var(--ls-h2); white-space: nowrap; margin-bottom: var(--space-3); }
.pcell p { max-inline-size: var(--norm-measure); }
.faqlinks { display: grid; gap: var(--space-2); margin-top: var(--space-6); justify-items: start; }
@media (min-width: 720px) {
  .pgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--norm-gutter); row-gap: var(--space-7); align-items: start; }
}

/* ===== Process ===== */
.fold--process .fold__box { display: block; min-height: var(--fold-h); }
.fold--process .steps { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--norm-gutter); margin-top: var(--space-6); }
/* Помощники norm.step-floor / norm.step-lines (04, «Process · 1»): объявлены в правилах компонента, контейнера у .steps нет */
.steps {
  /* помощник norm.step-lines: высота текстов шага — строка названия и запас строк описания и ссылки */
  --step-copy: calc(var(--fs-lede) * var(--lh-h3) + var(--space-1)
             + var(--norm-step-lines) * var(--fs-small) * var(--lh-small) + var(--space-2));
  /* помощник norm.step-floor: высота рам по остатку фолда; пол и потолок — у ширины рамы */
  --step-h: calc(var(--fold-h) - var(--space-5) - 2 * var(--fs-display) * var(--lh-display)
                 - 2 * var(--space-6) - max(var(--btn-h), 2 * var(--fs-lede) * var(--lh-lede))
                 - var(--space-3) - var(--step-copy) - var(--space-5));
}
/* узкий: пара — описания обоих шагов над парой портретных рам; рамы в ширину ячейки */
.step { display: contents; }
.step__txt { grid-column: 1 / -1; }
.step:nth-child(odd) > .frame { grid-column: 1; }
.step:nth-child(even) > .frame { grid-column: 2; }
.step > .frame { margin-top: var(--space-3); aspect-ratio: 1 / var(--plate-k-narrow); }
.step:nth-child(1) .step__txt { grid-row: 1; }
.step:nth-child(2) .step__txt { grid-row: 2; margin-top: var(--space-4); }
.step:nth-child(1) > .frame, .step:nth-child(2) > .frame { grid-row: 3; }
.step:nth-child(3) .step__txt { grid-row: 4; margin-top: var(--space-7); }
.step:nth-child(4) .step__txt { grid-row: 5; margin-top: var(--space-4); }
.step:nth-child(3) > .frame, .step:nth-child(4) > .frame { grid-row: 6; }
.step:nth-child(5) .step__txt { grid-row: 7; margin-top: var(--space-7); }
.step:nth-child(6) .step__txt { grid-row: 8; margin-top: var(--space-4); }
.step:nth-child(5) > .frame, .step:nth-child(6) > .frame { grid-row: 9; }
.step__name { font-weight: var(--wght-name); font-size: var(--fs-lede); line-height: var(--lh-h3); letter-spacing: var(--ls-h3); }
.step__desc { margin-top: var(--space-1); font-size: var(--fs-small); line-height: var(--lh-small); }
.step__link { margin-top: var(--space-2); font-size: var(--fs-small); }
.who__h { margin-bottom: var(--head-gap); }
.who__cols { display: grid; gap: var(--space-5); }
.who__c { border-top: var(--hair) solid var(--rule); padding-top: var(--space-3); }
.who__c h3 { font-size: var(--fs-h2); line-height: var(--lh-h2); letter-spacing: var(--ls-h2); margin-bottom: var(--space-3); }
.who__c p { font-size: var(--fs-body); max-inline-size: var(--norm-measure); }
.who__line { margin-top: var(--space-6); font-size: var(--fs-lede); line-height: var(--lh-lede); max-inline-size: var(--norm-measure); }
@media (min-width: 720px) {
  .fold--process .steps { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: var(--space-6); }
  .step { display: grid; grid-template-columns: minmax(0, 1fr); grid-row: span 2; grid-template-rows: subgrid; row-gap: var(--space-3); min-width: 0; }
  .step:nth-child(n+4) { margin-top: var(--space-7); }
  .steps .frame {
    /* 100% — ширина ячейки: пол norm.step-floor, потолок — ячейка */
    inline-size: clamp(var(--norm-step-floor) * 100%, var(--step-h) / var(--plate-k), 100%);
    aspect-ratio: 1 / var(--plate-k);
  }
  .step > .frame, .step:nth-child(n) > .frame { grid-column: auto; grid-row: auto; margin-top: 0; justify-self: start; }
  .steps > li:nth-child(n + 4) > .frame {
    /* высокое окно: рамы 4–6 опускаются на линию серединой, тексты 4–6 — за линией */
    margin-block-start: max(0px, var(--step-h) + var(--space-5) - var(--space-7) - 1.5 * 100% * var(--plate-k));
  }
  .step__txt, .step:nth-child(n) .step__txt { grid-column: auto; grid-row: auto; margin-top: 0; }
  .step:nth-child(3n+1) { grid-column: 1; }
  .step:nth-child(3n+2) { grid-column: 2; }
  .step:nth-child(3n) { grid-column: 3; }
  .step:nth-child(1), .step:nth-child(2), .step:nth-child(3) { grid-row: 1 / span 2; }
  .step:nth-child(4), .step:nth-child(5), .step:nth-child(6) { grid-row: 3 / span 2; }
  .who__cols { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--norm-gutter); }
  /* Ряд описаний стоит под тенью подвеса рам: без JS подложка у текстов есть всегда; с JS её нет, а ряд, который пересекает линия, уходит под линию (страховка) */
  .js .step__txt :is(h3, p) { background-color: transparent; }
  .steps.line-cut-1 .step:nth-child(-n+3) .step__txt { margin-top: var(--cut-shift-1, 0px); }
  .steps.line-cut-2 .step:nth-child(n+4) .step__txt { margin-top: var(--cut-shift-2, 0px); }
}

/* ===== Фолд B без рамы: About · 1, FAQ · 1 (norm.seam, norm.object-fit) ===== */
.fold--about, .fold--faq { grid-template-rows: auto auto auto minmax(var(--seam-min), 1fr) auto; }
.seam > h1 { grid-row: 1; }
.seam > .offer-row { grid-row: 2; }

/* ===== About ===== */
.about__pair {
  /* помощники norm.object-fit / norm.seam-lines, About ≥ norm.bp-md */
  --fit-stack: calc(var(--space-5) + 2 * var(--norm-h1-size) * var(--lh-display) + var(--space-6)
               + max(var(--btn-h), 2 * var(--fs-lede) * var(--lh-lede)) + var(--space-6));
  --fit-avail: calc(var(--fold-h) - var(--fit-stack) - var(--tab-clear));
  /* левая колонка «Is» */
  --fit-k: calc(var(--fs-ui-s) * var(--lh-ui-s) + var(--space-2) + 8 * var(--space-3));
  --fit-lines: 6;
  /* правая колонка: «Not yet», «Nothing is invented…», строка под парой (n₃ строк) */
  --place-lines: 5;
  --fit-k-r: calc(var(--fs-ui-s) * var(--lh-ui-s) + var(--space-2) + 6 * var(--space-3) + var(--space-3)
             + var(--fs-body) * var(--lh-body) + var(--space-5)
             + var(--place-lines) * var(--fs-lede) * var(--lh-lede));
  --fit-lines-r: 3;
  --fit-w: calc((var(--cw) - var(--norm-gutter)) / 2 / 9.3);
  --fit-h: min((var(--fit-avail) - var(--fit-k)) / (var(--fit-lines) * var(--lh-h2)),
               (var(--fit-avail) - var(--fit-k-r)) / (var(--fit-lines-r) * var(--lh-h2)));
  --object-fs: clamp(var(--fs-h3), min(var(--fit-h), var(--fit-w)), var(--fs-data-l));
}
@media (min-width: 1080px) {
  .about__pair { --place-lines: 4; }
}
@media (width < 720px) {
  .about__pair {
    --fit-stack: calc(var(--space-5) + 3 * var(--norm-h1-size) * var(--lh-display) + var(--space-6));
    --fit-k: calc(2 * (var(--fs-ui-s) * var(--lh-ui-s) + var(--space-2)) + 14 * var(--space-3)
             + var(--space-6) + var(--space-3) + var(--fs-body) * var(--lh-body));
    --fit-lines: 9;
    --fit-w: calc(var(--cw) / 9.3);
    /* одна колонка: строка под парой — за швом, в остаток не входит */
    --fit-h: calc((var(--fit-avail) - var(--fit-k)) / (var(--fit-lines) * var(--lh-h2)));
  }
}
.about__fact { font-size: var(--object-fs); max-inline-size: 9em; }
.about__pair { display: grid; gap: var(--space-6); grid-row: 3; margin-top: var(--space-6); }
.about__k { font-family: var(--font-sans); font-weight: var(--wght-ui); font-size: var(--fs-ui-s); line-height: var(--lh-ui-s); letter-spacing: var(--ls-ui-s); color: var(--ink-2); margin-bottom: var(--space-2); }
.about__fact { padding-block: var(--space-3); border-top: var(--hair) solid var(--rule); line-height: var(--lh-h2); letter-spacing: var(--ls-h2); }
.about__col--not .about__fact { color: var(--ink-2); }
.about__nothing { margin-top: var(--space-3); font-size: var(--fs-body); line-height: var(--lh-body); }
.about__line { font-size: var(--fs-lede); line-height: var(--lh-lede); max-inline-size: min(100%, var(--norm-measure)); }
@media (min-width: 720px) {
  /* пара: «Is» занимает обе строки сетки; под «Not yet» — строка под парой (житель правой половины фолда) */
  .about__pair { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: auto minmax(0, 1fr); column-gap: var(--norm-gutter); row-gap: 0; align-items: start; }
  .about__col:first-child { grid-column: 1; grid-row: 1 / span 2; }
  .about__col--not { grid-column: 2; grid-row: 1; }
  .about__line { grid-column: 2; grid-row: 2; margin-top: var(--space-5); }
  .fold--about, .fold--faq { grid-template-rows: auto auto auto minmax(var(--seam-min), 1fr); }
}
@media (width < 720px) {
  /* порядок «объект»: пара столбцом сразу под H1, шов, ярус предложения, строка под парой — в строках секции */
  .fold--about { grid-template-rows: auto auto auto minmax(var(--seam-min), 1fr) auto auto; }
  .fold--about::before { grid-row: 1 / 5; }
  .about__pair { display: contents; }
  .about__col:first-child { grid-column: 1; grid-row: 2; margin-top: var(--space-6); }
  .about__col--not { grid-column: 1; grid-row: 3; margin-top: var(--space-6); }
  .fold--about > .offer-row { grid-row: 5; margin-top: 0; }
  .about__line { grid-column: 1; grid-row: 6; margin-top: var(--space-6); }
}

@media (min-width: 720px) {
  .how .rows__list > .row { grid-template-columns: minmax(0, 1fr); row-gap: var(--space-2); }
}
.how .rows__list > .row:first-child { padding-top: var(--space-3); }

/* ===== FAQ ===== */
.fold--faq .fold__lede { font-size: var(--fs-lede); line-height: var(--lh-lede); }
.faq__index {
  /* помощники norm.object-fit / norm.seam-lines, FAQ ≥ norm.bp-md */
  --fit-stack: calc(var(--space-5) + 1 * var(--norm-h1-size) * var(--lh-display) + var(--space-6)
               + 1 * var(--fs-lede) * var(--lh-lede) + var(--space-7));
  --fit-avail: calc(var(--fold-h) - var(--fit-stack) - var(--tab-clear));
  --fit-k: calc(var(--fs-ui-s) * var(--lh-ui-s) + var(--space-3) + 6 * var(--space-3));
  --fit-lines: 10;
  /* правая колонка: вопросы 7–13 и строка CTA под ними */
  --fit-k-r: calc(var(--fs-ui-s) * var(--lh-ui-s) + var(--space-3) + 6 * var(--space-3)
             + var(--space-5) + var(--btn-h));
  --fit-lines-r: 7;
  --fit-measure: 17;
  --fit-w: calc((var(--cw) - var(--norm-gutter)) / 2 / (var(--fit-measure) + 0.5));
  --fit-h: min((var(--fit-avail) - var(--fit-k)) / (var(--fit-lines) * var(--lh-h3)),
               (var(--fit-avail) - var(--fit-k-r)) / (var(--fit-lines-r) * var(--lh-h3)));
  --object-fs: clamp(var(--fs-h3), min(var(--fit-h), var(--fit-w)), var(--fs-h2));
}
@media (width < 720px) {
  .faq__index {
    --fit-stack: calc(var(--space-5) + 2 * var(--norm-h1-size) * var(--lh-display) + var(--space-6)
                 + 2 * var(--fs-lede) * var(--lh-lede) + var(--space-7));
    --fit-k: calc(var(--fs-ui-s) * var(--lh-ui-s) + var(--space-3) + 5 * var(--space-3));
    --fit-lines: 14;
    --fit-measure: 12;
    --fit-w: calc(var(--cw) / (var(--fit-measure) + 0.5));
    /* одна колонка, строки CTA в фолде нет */
    --fit-h: calc((var(--fit-avail) - var(--fit-k)) / (var(--fit-lines) * var(--lh-h3)));
  }
}
.faq__index a { font-size: var(--object-fs); max-inline-size: min(calc(var(--fit-measure) * 1em), 100%); }
.faq__index { grid-row: 3; margin-top: var(--space-7); display: grid; gap: var(--space-6); }
.faqidx__cap { font-family: var(--font-sans); font-weight: var(--wght-ui); font-size: var(--fs-ui-s); line-height: var(--lh-ui-s); letter-spacing: var(--ls-ui-s); color: var(--ink-2); margin-bottom: var(--space-3); }
.faqidx__list { display: grid; gap: var(--space-3); justify-items: start; }
.faqidx__list a { display: block; color: var(--ink); line-height: var(--lh-h3); letter-spacing: var(--ls-h3); text-decoration-line: underline; text-decoration-color: var(--fold); }
.faq__cta { display: none; }
.copy-slot__txt { font-size: var(--fs-body); line-height: var(--lh-body); color: var(--ink); }
@media (scripting: enabled) { .copy-slot__txt { display: none; } }
.faq__list > .row { padding-block: var(--space-6); scroll-margin-top: var(--space-6); }
.faq__row:target { --surface: var(--sheet); background: var(--sheet); box-shadow: 0 0 0 var(--space-5) var(--sheet); }
@media (min-width: 720px) {
  .faq__index { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--norm-gutter); }
  /* строка CTA — житель правой половины фолда: в строке указателя, под правой группой, низом по низу строки; вне nav */
  .faq__cta { display: flex; grid-row: 3; align-self: end; justify-self: start; margin-left: calc((100% + var(--norm-gutter)) / 2); }
}
@media (width < 720px) {
  /* nav занимает три строки секции: первая группа над швом, строка шва, вторая группа за ним (subgrid; контейнера, подложки и z-index у nav нет) */
  .fold--faq > .faq__index { grid-row: 3 / 6; grid-template-rows: subgrid; row-gap: 0; }
  .faq__grp:first-child { grid-row: 1; }
  .faq__grp:last-child { grid-row: 3; }
}

/* ===== 404 ===== */
.fold--404 .fold__lede { margin-top: var(--space-6); font-size: var(--fs-lede); line-height: var(--lh-lede); }
.p404 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--norm-gutter); row-gap: max(var(--space-5), var(--norm-shadow-clear)); margin-top: var(--space-6); }
.p404__i:first-child { grid-column: 1 / -1; }
.p404__name { display: inline-block; margin-bottom: var(--space-3); color: var(--ink); font-size: var(--fs-h3); line-height: var(--lh-h3); letter-spacing: var(--ls-h3); text-decoration-line: underline; text-decoration-color: var(--fold); white-space: nowrap; overflow-wrap: normal; hyphens: manual; }
@media (min-width: 720px) and (not ((max-aspect-ratio: 13/10) or (min-height: 1100px))) {
  .p404 { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 0; }
  .p404__i:first-child { grid-column: auto; }
}
.page--404 .last-fold { margin-top: var(--section-gap-short); }

/* ===== Движение (05) ===== */
@keyframes fold-draw { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes fade-in { from { opacity: 0; } to { opacity: 1; } }
@media (scripting: enabled) and (prefers-reduced-motion: no-preference) {
  .fold-line {
    transform-origin: 0 50%;
    animation: fold-draw var(--dur-long) var(--ease-rule) var(--delay-fold-draw) backwards;
  }
  .fold-tab {
    animation: fade-in var(--dur-micro) var(--ease-out) var(--delay-tab) backwards;
  }
  .is-in {
    animation: fade-in var(--dur-medium) var(--ease-out) calc(var(--i, 0) * var(--stagger-frame)) backwards;
  }
  .copy-note {
    animation: fade-in var(--dur-short) var(--ease-out) backwards;
  }
}
/* Обратная связь (05). Буквы ссылок, текстовых кнопок и навигации — всегда --ink, цвет букв не
   переходит. Черта ссылки (толщина на hover, --fold-active на active) меняется сразу: перехода
   у `a` нет. Заливка кнопок — за --dur-micro. Фокус — без перехода, нажатие — сразу. */
.btn {
  transition:
    background-color var(--dur-micro) var(--ease-out),
    border-color var(--dur-micro) var(--ease-out);
}
.copy { transition: color var(--dur-short) var(--ease-out); }   /* только успех: подпись и цвет */
.btn:active, .copy:active { transition-duration: 0s; }

@media (prefers-reduced-motion: reduce) {
  .fold-line,
  .fold-tab,
  .is-in,
  .copy-note { animation: none; }
  a, .btn, .copy { transition-duration: var(--dur-reduced); }
  .btn:active, .copy:active { transition-duration: 0s; }
  html { scroll-behavior: auto; }
}
@media print {
  .scheme--step { opacity: 1 !important; }
}
