/* Страница темы и страница товара. Телефон — первым; сетка для компьютера включается с 900px
   (style.json → spacing.wide_from_px). Все числа стиля приходят переменными из style.json.
   Цвета: лист, графит и голубой; фиолетовый — только в репликах людей (.voice).
   Правило движения: всё, что прячет содержимое, стоит только под .js-motion —
   этот класс ставит скрипт и только если не включено «меньше движения».
   Список стран у кнопки покупки и нижнюю панель прячет сам скрипт (атрибут hidden),
   поэтому у .buy__menu и .sticky нельзя задавать display. */

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; --second: var(--accent); --second-soft: var(--sand); }

body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--font);
  font-size: var(--fs-body);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

.page { overflow-x: clip; }

.wrap {
  width: 100%;
  max-width: calc(var(--maxw) + 2 * var(--gutter));
  margin-inline: auto;
  padding-inline: var(--gutter);
}

h1, h2, h3, p, ul, ol, dl, dd, figure, blockquote { margin: 0; }
ul, ol { padding: 0; list-style: none; }

h1, h2, h3 {
  font-weight: var(--fw-head);
  letter-spacing: var(--track-head);
  line-height: 1.02;
  text-wrap: balance;
  overflow-wrap: break-word;
}
h1 { font-size: var(--fs-h1); line-height: 1; }
h2 { font-size: var(--fs-h2); }
h3 { font-size: var(--fs-h3); line-height: 1.08; letter-spacing: -.02em; }
.h-line { display: block; text-wrap: balance; }
/* первый экран не шире окна: длинное слово переносится, а не раздвигает сетку и не режется */
.hero__text, .phero__grid, .phero__text { grid-template-columns: minmax(0, 1fr); }
.hero__text > *, .phero__grid > *, .phero__text > * { min-width: 0; max-width: 100%; }
.hero h1, .hero .lead, .phero h1, .phero .lead, .top__title { overflow-wrap: anywhere; }
.btn { max-width: 100%; overflow-wrap: anywhere; }
.h-line + .h-line { margin-top: .16em; }

p { text-wrap: pretty; overflow-wrap: break-word; }

.lead {
  font-size: var(--fs-lead);
  line-height: 1.28;
  font-weight: 500;
  letter-spacing: -.012em;
}

a { color: inherit; }
:focus-visible { outline: 3px solid var(--accent-ink); outline-offset: 3px; border-radius: 6px; }
::selection { background: var(--accent); color: var(--on-accent); }

.count { font-variant-numeric: tabular-nums; }

/* --- мелкие подписи ------------------------------------------------------- */

.eyebrow, .label, .buy__title {
  font-family: var(--mono);
  font-size: var(--fs-min);
  line-height: 1.2;
  letter-spacing: .07em;
  text-transform: uppercase;
  font-weight: 500;
}
.eyebrow { display: flex; align-items: center; gap: .7em; }
.eyebrow::before {
  content: "";
  flex: none;
  width: .72em; height: .72em;
  border-radius: 50%;
  background: var(--accent);
}
.eyebrow__num { color: var(--accent-ink); font-weight: 700; }
.label { display: block; color: var(--ink-muted); }

.chip {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 3px 14px;
  border: 1.5px solid currentColor;
  border-radius: var(--r-pill);
  font-size: var(--fs-min);
  line-height: 1.25;
  font-weight: 500;
  text-decoration: none;
}
.chip--link { min-height: var(--tap-min); padding-inline: 18px; font-weight: 600; }
.chip--link::after { content: "↑"; margin-left: .5em; }

.link {
  display: inline-flex;
  align-items: center;
  gap: .35em;
  min-height: var(--tap-min);
  font-weight: 700;
  text-decoration: underline;
  text-decoration-color: var(--accent);
  text-decoration-thickness: 3px;
  text-underline-offset: 6px;
}

/* --- кнопки --------------------------------------------------------------- */

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .35em;
  min-height: var(--tap-min);
  padding: 10px 1.7em;
  border: 2px solid transparent;
  border-radius: var(--r-pill);
  font: inherit;
  font-weight: 700;
  line-height: 1.1;
  text-decoration: none;
  cursor: pointer;
  transition: transform .25s var(--ease), box-shadow .25s var(--ease), background-color .25s var(--ease);
}
.btn--accent { background: var(--accent); color: var(--on-accent); }
.btn--dark { background: var(--dark); color: var(--on-dark); }
/* главная кнопка первого экрана: тёмный овал с тонкой тёмной рамкой; заливку меняет движение (ниже) */
.btn--pulse { border-color: var(--dark); }
.btn:hover { transform: translateY(-2px); box-shadow: 0 10px 28px -12px var(--ink); }
.btn:active { transform: translateY(0) scale(.98); }
.btn__arrow { display: inline-block; margin-left: .3em; }
.btn-note { display: block; margin-top: 6px; padding-left: 18px; font-size: var(--fs-min); color: var(--ink-muted); }

/* кнопка покупки: одна кнопка, под ней раскрывается «Выберите страну» */
.buy { display: flex; flex-direction: column; gap: 10px; width: 100%; max-width: 440px; }
.buy__btn { width: 100%; justify-content: space-between; text-align: left; }
.buy--big .buy__btn { min-height: 68px; font-size: 1.25rem; }
.buy__chev {
  flex: none;
  width: .62em; height: .62em;
  margin-right: .1em;
  border-right: 3px solid currentColor;
  border-bottom: 3px solid currentColor;
  rotate: 45deg;
  translate: 0 -.16em;
  transition: rotate .3s var(--ease), translate .3s var(--ease);
}
.buy__btn[aria-expanded="true"] .buy__chev { rotate: -135deg; translate: 0 .16em; }
.buy__menu {
  padding: 16px;
  border: 2px solid var(--dark);
  border-radius: var(--r-card);
  background: var(--paper);
  color: var(--ink);
}
.buy__title { color: var(--ink-muted); }
.buy__list { display: grid; gap: 8px; margin-top: 12px; max-height: min(56vh, 460px); overflow-y: auto; overscroll-behavior: contain; }
.buy__name { display: inline-flex; align-items: center; gap: 12px; }
.flag {
  flex: none;
  display: inline-flex;
  width: 20px; height: 14px;
  overflow: hidden;
  border-radius: 3px;
  box-shadow: 0 0 0 1px var(--line);
}
.flag svg { display: block; width: 100%; height: 100%; }
.buy__item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: var(--tap-min);
  padding: 8px 18px;
  border: 2px solid transparent;
  border-radius: 14px;
  background: var(--accent-soft);
  font-weight: 700;
  text-decoration: none;
  transition: background-color .2s var(--ease);
}
a.buy__item:hover, a.buy__item:focus-visible { background: var(--accent); color: var(--on-accent); }
.buy__item.is-disabled {
  border: 2px dashed var(--ink-muted);
  background: transparent;
  color: var(--ink-muted);
  cursor: not-allowed;
}
.buy--bar { flex-direction: column-reverse; max-width: 520px; margin-inline: auto; }

/* --- верх страницы -------------------------------------------------------- */

.progress {
  position: fixed;
  z-index: 30;
  inset: 0 0 auto 0;
  height: 4px;
  background: var(--accent);
  transform: scaleX(var(--scroll, 0));
  transform-origin: 0 50%;
}

/* --- меню сайта: строка вверху и шапка, которая выезжает при прокрутке назад (как на главной) --- */
.snav { border-bottom: 1px solid color-mix(in srgb, var(--ink, #17171A) 10%, transparent); }
.snav__row { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 56px; }
.snav__name { flex: none; font-weight: 900; font-size: 1.1rem; letter-spacing: -.02em; text-decoration: none; color: #E5356F; }
.snav__links { display: flex; gap: 2px; overflow-x: auto; scrollbar-width: none; }
.snav__links::-webkit-scrollbar { width: 0; height: 0; }
.snav__links a { flex: none; padding: 9px 12px; border-radius: 999px; font-size: .88rem; font-weight: 700; line-height: 1.2;
  text-decoration: none; white-space: nowrap; color: inherit; transition: background-color .2s, color .2s; }
.snav__links a:hover { background: #17171A; color: #fff; }
.snav__links a.is-cat, .sbar .snav__links a.is-cat { min-height: 32px; padding: 0 10px; align-self: center; background: #D12A64; color: #fff; }
.snav__links a.is-cat:hover { background: #17171A; }
.snav__links a { display: inline-flex; align-items: center; min-height: 44px; }
.top__catalog { flex: none; margin-left: auto; padding: 9px 14px; border-radius: 999px; background: #17171A; color: #fff;
  font-size: .88rem; font-weight: 700; line-height: 1.2; text-decoration: none; }
.pback { display: flex; flex-wrap: wrap; gap: 8px 24px; }
.foot__nav { display: flex; flex-wrap: wrap; gap: 0 4px; margin: 0 -10px; }
.foot__nav a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 10px; font-weight: 700; text-decoration: none; color: inherit; }
.foot__nav a:hover { text-decoration: underline; text-underline-offset: 3px; }
.phero__supp { font-size: var(--fs-min); font-weight: 700; color: var(--ink-muted); }
.products__all { margin-top: 24px; }
.sbar { position: fixed; inset: 0 0 auto 0; z-index: 40; padding: 8px 10px 0; pointer-events: none;
  transform: translate3d(0, -130%, 0); transition: transform .35s cubic-bezier(.2, .7, .2, 1); will-change: transform; }
/* без размытия фона: размытие на каждом кадре дёргало страницу на телефоне (как .hbar главной) */
.sbar.is-on { transform: translate3d(0, 0, 0); }
.sbar__in { pointer-events: auto; display: flex; align-items: center; justify-content: space-between; gap: 8px;
  width: min(100%, 880px); margin-inline: auto; min-height: 48px; padding: 0 6px 0 18px; border-radius: 999px;
  background: color-mix(in srgb, #FFFFFF 96%, transparent); color: #17171A;
  box-shadow: 0 6px 24px rgb(23 23 26 / .14), inset 0 0 0 1px rgb(23 23 26 / .06); }
/* «← Назад к разбору» стоит на месте имени сайта и не шире 45 % шапки: на 375 рядом целиком виден «Каталог» */
.sbar .sbar__back { flex: none; max-width: 45%; min-height: 0; padding: 9px 12px; overflow: hidden; border-radius: 999px;
  background: #17171A; color: #fff; font-size: .84rem; font-weight: 700; line-height: 1.2; text-decoration: none;
  white-space: nowrap; text-overflow: ellipsis; }
@media (prefers-reduced-motion: reduce) { .sbar { transition: none; } }

.top__row { display: flex; align-items: flex-start; gap: 12px; padding-block: 16px 14px; }
.top__dot { flex: none; width: 14px; height: 14px; margin-top: .22em; border-radius: 50%; background: var(--accent); }
.top__title {
  max-width: 24em;
  font-size: var(--fs-min);
  font-weight: 600;
  line-height: 1.25;
  text-wrap: balance;
}
.top__back {
  display: inline-flex;
  align-items: center;
  gap: .35em;
  min-height: 48px;
  font-size: var(--fs-min);
  font-weight: 700;
  text-decoration: underline;
  text-decoration-color: var(--accent);
  text-decoration-thickness: 3px;
  text-underline-offset: 6px;
}
.page--product .top__row { padding-block: 6px 4px; }
.page--product .top__back { min-height: 44px; font-size: .9rem; text-decoration-thickness: 2px; text-underline-offset: 5px; }

/* узкий телефон: меню и выезжающая шапка помещаются целиком, без прокрутки пунктов вбок (владелец, 15.10) */
@media (max-width: 480px) {
  .snav__row { gap: 6px; }
  .snav__name { font-size: 1rem; }
  .snav__links a { padding: 9px 7px; font-size: .8rem; }
  .snav__links a.is-cat, .sbar .snav__links a.is-cat { padding: 0 9px; }
  .sbar__in { padding-left: 8px; gap: 4px; }
  .sbar .sbar__back { max-width: none; padding: 8px 11px; font-size: .8rem; }
}

/* --- первый экран --------------------------------------------------------- */

.hero { padding-top: clamp(12px, 3vh, 64px); }
.hero__text {
  display: grid;
  gap: clamp(16px, 2.6vh, 36px);
  padding-bottom: clamp(28px, 5vh, 72px);
}
.hero__action .btn { width: 100%; min-height: 64px; font-size: 1.125rem; }
.hero__media {
  margin-inline: 10px;
  aspect-ratio: 4 / 5;
  max-height: 86vh;
  width: auto;
  transform: scale(calc(.9 + .1 * var(--g, 1)));
  transform-origin: 50% 0;
  will-change: transform;
}

/* --- картинка, клип, градиент --------------------------------------------- */

.media {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border-radius: var(--r-panel);
}
/* цвет под картинкой не кладём: на скруглённых углах он просвечивает цветной каймой */
.media--gradient { background: var(--accent); }
.media__gradient {
  position: absolute;
  inset: -25%;
  background:
    radial-gradient(52% 46% at calc(18% + 46% * var(--p, .35)) 28%, var(--accent-soft) 0, transparent 62%),
    radial-gradient(58% 60% at 84% calc(88% - 44% * var(--p, .35)), var(--accent-deep) 0, transparent 66%),
    linear-gradient(140deg, var(--accent-mid), var(--accent) 58%);
}
.media__img, .media__video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.block__banner {
  aspect-ratio: 4 / 3;
  margin-block: clamp(28px, 5vh, 56px);
  transform: scale(calc(.94 + .06 * var(--g, 1)));
}

/* --- блоки ---------------------------------------------------------------- */

.block { padding-block: var(--section); }
.block__head { display: grid; gap: clamp(16px, 3vh, 28px); margin-bottom: clamp(28px, 6vh, 72px); }

.prose { display: grid; gap: 1.1em; max-width: 34em; }

/* проблема: реплики людей — переписка; единственное место, где остаётся фиолетовый */
.block--problem .label { margin-top: clamp(40px, 7vh, 80px); }
.voices { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; max-width: 40em; margin-top: 18px; }
.voice {
  max-width: min(88%, 26em);
  padding: .7em 1.05em;
  border-radius: 1.3em 1.3em 1.3em .3em;
  background: var(--voice-soft);
  font-size: clamp(1.1rem, 4.5vw, 1.4rem);
  font-weight: 600;
  line-height: 1.24;
  letter-spacing: -.01em;
}
.voice:nth-child(even) {
  align-self: flex-end;
  border-radius: 1.3em 1.3em .3em 1.3em;
  background: var(--voice);
  color: var(--on-voice);
}
.voice:nth-child(4n+3) { background: var(--dark); color: var(--on-dark); }

/* разбор со сценой: без движения — картинка и абзацы друг под другом */
.stage { display: grid; gap: 28px; padding-inline: var(--gutter); }
.stage .block__head { margin-bottom: 0; }
.stage__media { aspect-ratio: 1 / 1; }
.stage__steps { display: grid; gap: 1.1em; max-width: 34em; }
/* несколько картинок в сцене: без движения — сеткой, все видны */
.stage__deck {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  aspect-ratio: auto;
}
.stage__slide { aspect-ratio: 1 / 1; }
.stage__step:first-of-type { font-size: var(--fs-lead); line-height: 1.28; font-weight: 500; }

/* вставка-мостик к товару */
.block--cta { padding-block: 0; }
.cta {
  display: grid;
  gap: 16px;
  padding: 22px;
  border: 2px solid var(--accent);
  border-radius: var(--r-panel);
  background: var(--accent-soft);
}
.cta--photo { grid-template-columns: 80px minmax(0, 1fr); align-items: center; }
.cta--photo .cta__btn { grid-column: 1 / -1; }
.cta__photo {
  width: 80px; height: 80px;
  padding: 6px;
  overflow: hidden;
  border-radius: 16px;
  background: var(--paper);
}
.cta__photo img { display: block; width: 100%; height: 100%; border-radius: 10px; object-fit: cover; }
.cta__text { max-width: 28em; font-size: clamp(1.1rem, 4.4vw, 1.35rem); font-weight: 600; line-height: 1.3; }
.cta__btn { width: 100%; }

/* источники */
.sources { border-top: 3px solid var(--ink); }
.source {
  display: grid;
  gap: 14px;
  padding-block: clamp(26px, 4.5vh, 44px);
  border-bottom: 1px solid var(--line);
  scroll-margin-top: 24px;
}
.source__num {
  font-size: clamp(3rem, 13vw, 5.5rem);
  font-weight: var(--fw-head);
  line-height: .82;
  letter-spacing: -.05em;
  color: var(--accent);
  font-variant-numeric: tabular-nums;
}
.source__claim {
  font-size: clamp(1.15rem, 4.6vw, 1.7rem);
  font-weight: 600;
  line-height: 1.26;
  letter-spacing: -.012em;
}
.source__claim .count { color: var(--accent-ink); }
.source__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; }
.source__cite { flex: 1 0 100%; font-style: normal; color: var(--ink-muted); }
.source:target .source__claim { background: linear-gradient(transparent 62%, var(--accent-soft) 0); }

/* мифы */
.myths { display: grid; gap: 16px; }
.myth { display: grid; overflow: hidden; border-radius: var(--r-panel); }
.myth__side { display: grid; align-content: start; justify-items: start; gap: 14px; padding: 28px 24px 30px; }
.myth__side--myth { background: var(--dark); color: var(--on-dark); }
.myth__side--myth .label { color: var(--accent); }
.myth__side--myth p {
  font-size: clamp(1.4rem, 5.8vw, 2.2rem);
  font-weight: var(--fw-head);
  line-height: 1.1;
  letter-spacing: -.025em;
  text-decoration: line-through;
  text-decoration-color: var(--accent);
  text-decoration-thickness: .09em;
}
.myth__side--fact { background: var(--accent-soft); }
.myth__side--fact .label { color: var(--accent-ink); font-weight: 700; }

/* что делать: оговорки и шаги */
.caveats {
  margin-bottom: clamp(28px, 5vh, 56px);
  padding: 24px;
  border: 2px solid var(--ink);
  border-radius: var(--r-panel);
}
.caveats ul, .ticks { display: grid; gap: 12px; margin-top: 14px; }
.caveats li, .ticks li { position: relative; padding-left: 1.5em; font-weight: 500; }
.caveats li::before, .ticks li::before {
  content: "";
  position: absolute;
  left: 0; top: .5em;
  width: .6em; height: .6em;
  border-radius: 50%;
  background: var(--accent);
}
.step {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 18px;
  padding-block: clamp(24px, 4vh, 40px);
  border-top: 1px solid var(--line);
}
.step:last-child { border-bottom: 1px solid var(--line); }
.step__num {
  display: grid;
  place-items: center;
  width: 56px; height: 56px;
  border-radius: 50%;
  background: var(--accent);
  color: var(--on-accent);
  font-size: 1.5rem;
  font-weight: var(--fw-head);
  font-variant-numeric: tabular-nums;
}
.step h3 { margin: .28em 0 .5em; }

/* шаг с картинкой: картинка и слова стоят рядом и меняются сторонами от шага к шагу */
.step--pic {
  grid-template-columns: minmax(0, 46fr) minmax(0, 54fr);
  align-items: center;
  gap: 16px;
  padding-block: 12px;
  border: 0;
  overflow: hidden;
}
.step--pic:last-child { border: 0; }
.step--pic[data-side="right"] { grid-template-columns: minmax(0, 54fr) minmax(0, 46fr); }
.step--pic[data-side="right"] .step__media { order: 2; }
.step--pic .step__media { aspect-ratio: 1 / 1; }
.page--product .step--pic .media__img { object-fit: cover; }
.step__body { display: grid; gap: 10px; justify-items: start; }
.step--pic .step__num { width: 40px; height: 40px; font-size: 1.1rem; }
.step--pic h3 { margin: 0; }
.step--pic p { font-size: clamp(.95rem, 4vw, 1.25rem); line-height: 1.4; }

/* товары */
.block--products { background: var(--accent-soft); }
.products { display: grid; gap: 16px; }
.product { overflow: hidden; border-radius: var(--r-panel); background: var(--paper); }
.product__photo {
  display: grid;
  place-items: center;
  aspect-ratio: 1 / 1;
}
/* фото товара занимает верх карточки целиком: без полей и линии оно не выглядит вставленным квадратом */
.product__photo img { width: 100%; height: 100%; object-fit: cover; }
.product__nophoto {
  display: grid;
  place-items: center;
  width: 100%; height: 100%;
  padding: 16px;
  border: 2px dashed var(--line);
  border-radius: var(--r-card);
  color: var(--ink-muted);
  font-family: var(--mono);
  font-size: var(--fs-min);
  text-align: center;
}
.product__body { display: grid; justify-items: start; gap: 14px; padding: 24px; }
.product__more { width: 100%; }
.product__more summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: var(--tap-min);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  font-weight: 700;
  cursor: pointer;
  list-style: none;
}
.product__more summary::-webkit-details-marker { display: none; }
.product__more summary::after { content: "+"; font-size: 1.6em; font-weight: 400; color: var(--accent-ink); }
.product__more[open] summary::after { content: "−"; }
.product__more p { padding-top: 14px; font-size: var(--fs-min); }
.product__origin { color: var(--ink-muted); font-size: var(--fs-min); }
.product__link { width: 100%; }

/* регистрация */
.block--register { background: var(--accent); color: var(--on-accent); }
.block--register .eyebrow::before { background: currentColor; }
.block--register .eyebrow__num { color: inherit; }
.block--register :focus-visible { outline-color: currentColor; }
.block--register .buy__menu { border-color: var(--dark); }
.register__note { max-width: 30em; margin-top: clamp(28px, 5vh, 48px); font-weight: 500; }

/* что нового */
.news {
  display: grid;
  justify-items: start;
  gap: 16px;
  max-width: 40em;
  padding: 24px;
  border: 2px solid var(--ink);
  border-radius: var(--r-panel);
}

/* подвал */
.foot { padding-block: clamp(48px, 9vh, 96px); background: var(--dark); color: var(--on-dark); }
.foot .wrap { display: grid; gap: 14px; }
.foot p { max-width: 38em; }
.foot .legal a { color: inherit; text-underline-offset: 3px; }
.foot__main { font-weight: 700; }
.foot__strong { font-size: var(--fs-lead); font-weight: var(--fw-head); letter-spacing: -.02em; line-height: 1.15; }
.foot__date { font-family: var(--mono); font-size: var(--fs-min); }
.has-sticky .foot { padding-bottom: calc(clamp(48px, 9vh, 96px) + 96px); }

/* --- страница товара ------------------------------------------------------ */

/* официальные картинки показываются целиком, без обрезки */
.page--product .media__img, .page--product .media__video { object-fit: contain; }

.phero { padding-block: 6px clamp(36px, 6vh, 80px); }
.phero__grid { display: grid; gap: clamp(18px, 3vh, 32px); }
.phero__media { aspect-ratio: var(--ar, 1); width: 100%; }
.phero__text { display: grid; gap: clamp(14px, 2.4vh, 28px); }
.phero__text h1 { font-size: clamp(2rem, 8.4vw, 4.75rem); }
.phero__note { font-size: var(--fs-min); color: var(--ink-muted); }

.psec { padding-block: clamp(44px, 8vh, 110px); }
.psec h2 { margin-bottom: clamp(18px, 3vh, 32px); font-size: clamp(1.75rem, 7vw, 3.5rem); }
.psec__grid { display: grid; gap: 24px; }
/* рамка берёт пропорции самой картинки (--ar ставит сборщик): пустых полос по бокам нет */
.psec__media { aspect-ratio: var(--ar, 1.3333); }

/* товар на чисто белом фоне медленно вращается по часовой стрелке */
.media--spin { border-radius: 50%; }
.js-motion .media--spin .media__img { animation: spin 28s linear infinite; will-change: transform; }
@keyframes spin {
  to { transform: rotate(360deg); }
}

/* картинка, которая открывается по нажатию */
[data-zoom] { cursor: zoom-in; }
.zoom {
  position: fixed;
  z-index: 60;
  inset: 0;
  background: rgb(20 22 26 / 0);
  transition: background-color .35s var(--ease);
  cursor: zoom-out;
  touch-action: none;
}
.zoom.is-open { background: rgb(20 22 26 / .72); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.zoom__img {
  position: fixed;
  box-sizing: border-box;
  padding: clamp(10px, 3vw, 22px);
  border-radius: clamp(22px, 6vw, 34px);
  background: var(--paper);
  box-shadow: 0 30px 80px -30px rgb(0 0 0 / .6);
  object-fit: contain;
  transform-origin: 0 0;
  will-change: transform, clip-path;
}
.zoom__close {
  position: fixed;
  top: calc(14px + env(safe-area-inset-top, 0px)); right: 14px;
  width: 44px; height: 44px;
  border: 0;
  border-radius: 50%;
  background: var(--paper);
  box-shadow: 0 10px 30px -12px rgb(0 0 0 / .5);
  color: var(--ink);
  font: inherit;
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
}
.js-motion .zoom__close { opacity: 0; transition: opacity .3s var(--ease); }
.js-motion .zoom.is-open .zoom__close { opacity: 1; }
.psec__buy { margin-top: clamp(28px, 5vh, 48px); }

/* вторая картинка раздела — схема или фото под текстом, открывается по нажатию */
.psec__after { aspect-ratio: var(--ar, 2); margin-top: 22px; }
.psec__note { margin-top: 18px; font-size: var(--fs-min); color: var(--ink-muted); }

/* пункты с картинками: картинка и слова стоят рядом и меняются сторонами */
.picks { display: grid; gap: 18px; margin-top: 24px; }
.pick {
  display: grid;
  grid-template-columns: minmax(0, 48fr) minmax(0, 52fr);
  align-items: center;
  gap: 16px;
  overflow: hidden;
}
.pick[data-side="right"] { grid-template-columns: minmax(0, 52fr) minmax(0, 48fr); }
.pick[data-side="right"] .pick__media { order: 2; }
.pick__media { aspect-ratio: var(--ar, 1.4); }
.pick__body { display: grid; gap: 8px; }
.pick h3 { margin: 0; font-size: clamp(1.15rem, 4.8vw, 1.6rem); line-height: 1.15; }
.pick p { font-size: clamp(.95rem, 4vw, 1.2rem); line-height: 1.4; }

/* мозаика: пункты со значками — карточками в два столбца, первая во всю ширину при нечётном числе */
.bento { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 24px; }
.tile {
  display: grid;
  align-content: start;
  justify-items: start;
  gap: 8px;
  padding: 16px;
  border-radius: var(--r-card);
  background: var(--paper);
  box-shadow: 0 22px 44px -32px color-mix(in srgb, var(--ink) 60%, transparent);
}
.bento > .tile:first-child:nth-last-child(odd) { grid-column: 1 / -1; }
.tile__media { width: 68px; aspect-ratio: 1 / 1; border-radius: 50%; }
.tile h3 { margin: 4px 0 0; font-size: clamp(1.05rem, 4.4vw, 1.35rem); line-height: 1.15; }
.tile p { font-size: clamp(.9rem, 3.8vw, 1.1rem); line-height: 1.35; color: var(--ink-muted); }
.psec .steps { margin-top: 20px; }
.psec .psec__media + .prose { margin-top: 24px; }

.facts { display: grid; margin-top: 8px; border-top: 3px solid var(--ink); }
.fact { display: grid; gap: 4px; padding-block: 16px; border-bottom: 1px solid var(--line); }
.fact dt { font-family: var(--mono); font-size: var(--fs-min); letter-spacing: .05em; text-transform: uppercase; color: var(--ink-muted); }
.fact dd { font-size: clamp(1.15rem, 4.6vw, 1.5rem); font-weight: 700; line-height: 1.25; }

.inci {
  display: grid;
  gap: 1em;
  max-width: 46em;
  padding: 22px;
  border: 1px solid var(--line);
  border-radius: var(--r-card);
  background: var(--paper);
  font-size: var(--fs-min);
  line-height: 1.6;
}

.quote {
  display: grid;
  gap: 16px;
  max-width: 30em;
  padding-left: 22px;
  border-left: 6px solid var(--accent);
  font-size: var(--fs-lead);
  font-weight: 600;
  line-height: 1.28;
  letter-spacing: -.012em;
}
.quote cite { font-size: var(--fs-min); font-style: normal; font-weight: 500; color: var(--ink-muted); }

.shots { display: grid; gap: 16px; margin-top: 24px; }
.shot__media { aspect-ratio: var(--ar, 1); }
.shot__caption { margin-top: 10px; font-size: var(--fs-min); color: var(--ink-muted); }

.pback { padding-block: 8px clamp(36px, 6vh, 72px); }

/* нижняя панель с кнопкой: без скрипта — обычная строка перед подвалом */
.sticky { padding-block: 8px 40px; }
.sticky.is-fixed {
  position: fixed;
  z-index: 25;
  inset: auto 0 0 0;
  padding-block: 10px calc(10px + env(safe-area-inset-bottom, 0px));
  border-top: 1px solid var(--line);
  background: var(--paper);
  box-shadow: 0 -14px 34px -22px var(--ink);
}

/* --- связки блоков -------------------------------------------------------
   Блоки не разделены линией. Каждый блок — лист (data-surface) со срезанным верхом (data-seam),
   который наезжает на предыдущий; предыдущий оставляет под ним запас снизу. Срез, лист,
   второй цвет и приёмы ниже задаёт облик страницы (data-look, style.json → looks). */
.page { --seam: clamp(30px, 9vw, 64px); --lap: var(--seam); --bridge: 150px; }
[data-surface] {
  position: relative;
  isolation: isolate;
  background: var(--surf, var(--paper));
  padding-bottom: calc(var(--section) + var(--lap) * 1.6);
}
[data-surface="paper"] { --surf: var(--paper); }
[data-surface="sand"] { --surf: var(--sand); }
[data-surface="soft"] { --surf: var(--accent-soft); }
[data-surface="warm"] { --surf: var(--second-soft); }
[data-surface="accent"] { --surf: var(--accent); }
[data-seam] {
  margin-top: calc(var(--lap) * -1);
  box-shadow: 0 -26px 46px -34px color-mix(in srgb, var(--ink) 42%, transparent);
}
/* лист: оба верхних угла скруглены */
[data-seam="sheet"] { border-radius: var(--seam) var(--seam) 0 0; }
/* «заправленная рубашка»: верх уходит дугой от одного края вниз к другому */
[data-seam="tuck-left"], [data-seam="tuck-right"] { --lap: calc(var(--seam) * 1.6); }
[data-seam="tuck-left"] { border-top-left-radius: 100% var(--lap); }
[data-seam="tuck-right"] { border-top-right-radius: 100% var(--lap); }
/* арка: верх выгнут дугой по всей ширине */
[data-seam="arc"] { border-radius: 50% 50% 0 0 / var(--lap) var(--lap) 0 0; }
.foot { position: relative; margin-top: calc(var(--seam) * -1); border-radius: var(--seam) var(--seam) 0 0; }
/* строка «назад» — тоже лист: без него между последним блоком и подвалом остаётся прямая полоса */
.pback {
  position: relative;
  margin-top: calc(var(--seam) * -1);
  padding-top: calc(var(--seam) * .8);
  padding-bottom: calc(clamp(36px, 6vh, 72px) + var(--seam));
  border-radius: var(--seam) var(--seam) 0 0;
  background: var(--paper);
  box-shadow: 0 -26px 46px -34px color-mix(in srgb, var(--ink) 42%, transparent);
}

/* вставка к товару лежит поперёк стыка: половина на одном листе, половина на следующем */
.block--cta { position: relative; z-index: 3; height: 0; padding: 0; }
.block--cta > .wrap { transform: translateY(-50%); }
.block--before-cta { padding-bottom: calc(var(--section) * .5 + var(--bridge) + var(--lap) * 1.6); }
.block--after-cta { padding-top: calc(var(--section) * .5 + var(--bridge)); }
.block--cta + .foot { padding-top: calc(clamp(48px, 9vh, 96px) + var(--bridge)); }
.cta {
  border: 0;
  background: var(--paper);
  box-shadow: 0 28px 60px -30px color-mix(in srgb, var(--ink) 55%, transparent), 0 0 0 1px var(--line);
}

/* стежок: тонкая линия вдоль края проходит через все листы, у начала каждого — цветная метка */
[data-rail] [data-surface]::before {
  content: "";
  position: absolute;
  z-index: -1;
  left: calc(var(--gutter) / 2 - 1px);
  top: calc(var(--lap) + 6px);
  bottom: 0;
  width: 2px;
  border-radius: 2px;
  background: linear-gradient(var(--second) 0 34px, color-mix(in srgb, var(--ink) 11%, transparent) 34px);
  pointer-events: none;
}
/* крупная цифра блока за текстом, срезанная краем */
[data-ghost] [data-num]::after {
  content: attr(data-num);
  position: absolute;
  z-index: -1;
  top: calc(var(--lap) * .7);
  right: -.05em;
  font-family: var(--font);
  font-size: clamp(8.5rem, 46vw, 21rem);
  font-weight: var(--fw-head);
  line-height: .78;
  letter-spacing: -.06em;
  font-variant-numeric: tabular-nums;
  color: color-mix(in srgb, var(--second) 20%, transparent);
  pointer-events: none;
}
/* подложка: под картинкой сдвинутая плашка второго цвета, стороны чередуются */
[data-plate] .block__banner, [data-plate] .psec__media, [data-plate] .phero__media {
  box-shadow: 12px 12px 0 var(--second);
}
[data-plate] .psec:nth-of-type(even) .psec__media { box-shadow: -12px 12px 0 var(--second); }
[data-plate] .psec__media, [data-plate] .phero__media { margin-bottom: 12px; }
/* у круглой вращающейся картинки подложки нет: сдвинутый круг читается как ошибка */
.page[data-plate] .psec .psec__media.media--spin { box-shadow: none; }
/* заголовки с засечками — журнальный облик */
[data-head="serif"] h1, [data-head="serif"] h2 {
  font-family: var(--serif);
  font-weight: 700;
  letter-spacing: -.022em;
  line-height: 1.06;
}
/* второй цвет в мелочах */
[data-look] .eyebrow__num { color: inherit; }
[data-look] .eyebrow::before { background: var(--second); }
[data-look] .block--register .eyebrow::before { background: currentColor; }

/* --- движение (включает скрипт) ------------------------------------------- */

/* лист подъезжает снизу и догоняет своё место, пока его верх идёт по нижней половине экрана */
.js-motion [data-seam] { translate: 0 var(--rise, 0px); }

/* способы появления: up — подъём, left / right — выезд сбоку, zoom — масштаб,
   wipe — шторка, words — заголовок по словам; соседним блокам сборщик даёт разные */
.js-motion [data-reveal] {
  opacity: 0;
  transition:
    opacity var(--dur) var(--ease),
    translate var(--dur) var(--ease),
    scale var(--dur) var(--ease),
    clip-path calc(var(--dur) * 1.3) var(--ease);
  transition-delay: calc(var(--i, 0) * var(--stagger));
}
.js-motion [data-reveal="up"], .js-motion [data-reveal=""] { translate: 0 var(--shift); }
.js-motion [data-reveal="left"] { translate: calc(var(--shift) * -2) 0; }
.js-motion [data-reveal="right"] { translate: calc(var(--shift) * 2) 0; }
.js-motion [data-reveal="zoom"] { scale: .86; }
/* не до нуля: полностью обрезанный блок браузер не считает видимым, и он не появится */
.js-motion [data-reveal="wipe"] { clip-path: inset(0 94% 0 0); }
.js-motion [data-reveal="words"] { opacity: 1; }
/* обрезку держит только wipe; на месте она шире блока — тень и подложка не срезаются прямым углом */
.js-motion [data-reveal].is-in { opacity: 1; translate: 0 0; scale: 1; }
.js-motion [data-reveal="wipe"].is-in { clip-path: inset(-60px -60px -60px -60px); }

/* у слова есть поля: без них браузер срезает хвост «у» и край буквы при сжатых буквах */
.js-motion [data-reveal="words"] .w {
  display: inline-block;
  max-width: 100%;
  margin: -.14em -.07em;
  padding: .14em .07em;
  opacity: 0;
  translate: 0 .55em;
  transition: opacity .6s var(--ease), translate .6s var(--ease);
  transition-delay: calc(var(--w, 0) * 55ms);
}
.js-motion [data-reveal="words"].is-in .w { opacity: 1; translate: 0 0; }

/* реплики приходят по одной, как сообщения */
.js-motion .voices [data-reveal] {
  scale: .9;
  transition-duration: .5s;
  transition-delay: calc(var(--i, 0) * 280ms);
}
.js-motion .voices [data-reveal="left"] { transform-origin: 0 100%; }
.js-motion .voices [data-reveal="right"] { transform-origin: 100% 100%; }
.js-motion .voices [data-reveal].is-in { scale: 1; }

.js-motion .media__gradient { animation: drift 16s ease-in-out infinite alternate; }
@keyframes drift {
  from { transform: rotate(0deg) scale(1); }
  to { transform: rotate(8deg) scale(1.12); }
}

/* первый экран: картинка раскрывается и наезжает, дальше плывёт вслед за прокруткой */
.js-motion .hero__media, .js-motion .phero__media { animation: open 1.1s var(--ease) both; }
.js-motion .hero__media .media__img {
  scale: 1.12;
  translate: 0 calc((var(--p, .3) - .3) * -9%);
  animation: approach 1.8s var(--ease) both;
}
@keyframes open {
  from { clip-path: inset(9% 9% 9% 9% round var(--r-panel)); }
  to { clip-path: inset(0 0 0 0 round var(--r-panel)); }
}
@keyframes approach {
  from { scale: 1.32; }
  to { scale: 1.12; }
}
/* картинка товара стоит на месте; по ней раз в несколько секунд проходит мягкий блик.
   Саму картинку не двигаем: при сдвиге видны края рамки */
.js-motion .phero__media::after {
  content: "";
  position: absolute;
  z-index: 2;
  inset: -20% auto -20% 0;
  width: 45%;
  background: linear-gradient(100deg, transparent, rgb(255 255 255 / .55) 50%, transparent);
  transform: translate3d(-140%, 0, 0) skewX(-12deg);
  animation: sheen 6.5s ease-in-out 1.4s infinite;
  pointer-events: none;
  will-change: transform;
}
@keyframes sheen {
  0% { transform: translate3d(-140%, 0, 0) skewX(-12deg); }
  38%, 100% { transform: translate3d(360%, 0, 0) skewX(-12deg); }
}

/* главная кнопка первого экрана: заливка плавно уходит из графита в белый и обратно,
   надпись — наоборот; рамка всё время тёмная. Вокруг кнопки ничего не светится */
.js-motion .btn--pulse { animation: invert 3.6s ease-in-out 1.4s infinite; }
.js-motion .btn--pulse[aria-expanded="true"] { animation: none; }
.js-motion .btn__arrow--down { animation: nudge-down 1.3s ease-in-out infinite; }
.js-motion .hero__action .btn__arrow--side, .js-motion .cta .btn__arrow { animation: nudge-side 1.3s ease-in-out infinite; }
@keyframes invert {
  0%, 16% { background-color: var(--dark); color: var(--on-dark); }
  44%, 60% { background-color: var(--paper); color: var(--dark); }
  88%, 100% { background-color: var(--dark); color: var(--on-dark); }
}
@keyframes nudge-down {
  50% { translate: 0 5px; }
}
@keyframes nudge-side {
  50% { translate: 5px 0; }
}

.js-motion .buy__menu { animation: drop .32s var(--ease) both; }
.js-motion .buy--bar .buy__menu { animation-name: rise; }
.js-motion .sticky.is-fixed { animation: rise .45s var(--ease) both; }
@keyframes drop {
  from { translate: 0 -10px; scale: .97; }
}
@keyframes rise {
  from { translate: 0 100%; }
}

/* сцена: раздел прилипает к экрану, клип идёт ходом прокрутки, мысли сменяются */
@media (min-height: 520px) {
  .js-motion .has-stage {
    /* сверху и снизу сцены — запас листа: под срез верха и под следующий лист (скрипт его вычитает) */
    --head: calc(var(--lap) * .7);
    --tail: calc(var(--lap) * 1.6);
    height: calc(100vh + var(--stage-step) * var(--n) + var(--head) + var(--tail));
    height: calc(100svh + var(--stage-step) * var(--n) + var(--head) + var(--tail));
    padding-block: var(--head) var(--tail);
  }
  .js-motion .has-stage.block--before-cta { --tail: calc(var(--lap) * 1.6 + var(--bridge) + 24px); }
  .js-motion .has-stage.block--after-cta { --head: calc(var(--bridge) + 24px); }
  .js-motion .has-stage:not([data-surface]) { --head: 0px; --tail: 0px; }
  .js-motion .stage {
    position: sticky;
    top: 0;
    height: 100vh;
    height: 100svh;
    grid-template-rows: auto minmax(0, 1fr);
    gap: 18px;
    padding: 22px 10px 12px;
  }
  .js-motion .stage__head { padding-inline: calc(var(--gutter) - 10px); }
  .js-motion .stage__head h2 { font-size: clamp(1.8rem, 7.2vw, 4.25rem); }
  .js-motion .stage__media { aspect-ratio: auto; height: 100%; min-height: 0; }
  /* плашка шага сдвинута влево: справа от неё узкая полоса с чёрточками шагов */
  .js-motion .stage__steps {
    position: absolute;
    inset: auto 10px 24px 18px;
    display: block;
    max-width: none;
    padding-right: 24px;
  }

  /* несколько картинок: лежат друг на друге, видна картинка текущего шага */
  .js-motion .stage__deck { display: block; position: relative; }
  .js-motion .stage__slide {
    position: absolute;
    inset: 0;
    aspect-ratio: auto;
    opacity: 0;
    transition: opacity .7s var(--ease);
  }
  .js-motion .stage__slide.is-on { opacity: 1; }

  /* указатель шага: столбик коротких вертикальных чёрточек, текущая закрашена светлым */
  .js-motion .stage__ticks {
    position: absolute;
    top: 50%;
    right: 0;
    width: 24px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    translate: 0 -50%;
    pointer-events: none;
  }
  .js-motion .stage__ticks i {
    width: 3px;
    height: 12px;
    border-radius: 2px;
    background: var(--paper);
    box-shadow: 0 0 0 1px rgb(0 0 0 / .16);   /* тонкий контур: на светлой картинке белое не теряется */
    opacity: .55;
    transition: opacity .35s var(--ease), background-color .35s var(--ease);
  }
  .js-motion .stage__ticks i.is-on { background: var(--accent-soft); opacity: 1; }

  /* подсказка на первом шаге: листать вниз — маленькая и полупрозрачная */
  .js-motion .stage__hint {
    position: absolute;
    left: 6px;
    bottom: 100%;
    display: inline-flex;
    align-items: center;
    gap: .45em;
    margin-bottom: 8px;
    color: var(--paper);
    font-size: .8125rem;
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: .02em;
    text-shadow: 0 0 6px rgb(0 0 0 / .45);
    opacity: .72;
    pointer-events: none;
    transition: opacity .35s var(--ease);
  }
  .js-motion .stage__hint b { font-weight: 600; animation: nudge-down 1.2s ease-in-out infinite; }
  .js-motion .stage__hint.is-off { opacity: 0; }

  .js-motion .stage__step {
    position: absolute;
    inset: auto 24px 0 0;
    padding: 20px 22px 22px;
    border-radius: var(--r-card);
    background: var(--paper);
    box-shadow: 0 18px 50px -18px var(--ink);
    font-size: clamp(1.1rem, 4.5vw, 1.4rem);
    font-weight: 500;
    line-height: 1.3;
    opacity: 0;
    translate: 0 26px;
    transition: opacity .45s var(--ease), translate .45s var(--ease);
  }
  .js-motion .stage__step:nth-of-type(even) { translate: 26px 0; }
  .js-motion .stage__step.is-active { position: relative; inset: auto; opacity: 1; translate: 0 0; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .hero__media, .block__banner { transform: none; }
}

/* --- компьютер ------------------------------------------------------------ */

@media (min-width: 900px) {
  .page { --seam: 72px; --bridge: 110px; }
  [data-plate] .block__banner, [data-plate] .psec__media, [data-plate] .phero__media { box-shadow: 20px 20px 0 var(--second); }
  [data-plate] .psec:nth-of-type(even) .psec__media { box-shadow: -20px 20px 0 var(--second); }
  body { font-size: var(--fs-body-wide); }
  .wrap { max-width: calc(var(--maxw) + 2 * var(--gutter-wide)); padding-inline: var(--gutter-wide); }
  .top__row { padding-block: 26px; }
  .page--product .top__row { padding-block: 14px; }

  .hero__text { grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; align-items: end; }
  .phero__text { grid-template-columns: minmax(0, 1fr); }
  .hero__text > * { grid-column: 1 / -1; }
  .hero__text h1 { grid-column: 1 / span 11; }
  .hero__text .lead { grid-column: 1 / span 7; }
  .hero__text .hero__action { grid-column: 9 / -1; justify-self: end; }
  .hero__action .btn { width: auto; }
  .hero__media { margin-inline: 24px; aspect-ratio: 16 / 8; }

  .block__head { max-width: 62rem; }
  .block__banner { aspect-ratio: 16 / 7; }
  .prose { margin-left: calc(100% / 12 * 4); }

  .voices { margin-left: calc(100% / 12 * 4); gap: 16px; }

  .cta { grid-template-columns: 1fr auto; align-items: center; gap: 32px; padding: 28px 36px; }
  .cta--photo { grid-template-columns: 88px minmax(0, 1fr) auto; gap: 28px; }
  .cta--photo .cta__btn { grid-column: auto; }
  .cta__photo { width: 88px; height: 88px; }
  .cta__btn { width: auto; }

  .source { grid-template-columns: 2fr 6fr 4fr; column-gap: 32px; align-items: start; }
  .source__meta { flex-direction: column; align-items: flex-start; }
  .source__cite { flex: none; }

  .myth { grid-template-columns: 1fr 1fr; }
  .myth__side { padding: 44px 40px 46px; }

  .caveats { margin-left: calc(100% / 12 * 4); padding: 32px 36px; }
  .steps { margin-left: calc(100% / 12 * 4); }
  .step { grid-template-columns: 88px 1fr; gap: 24px; }
  .step__num { width: 72px; height: 72px; font-size: 1.9rem; }

  .products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; align-items: start; }
  .product__body { padding: 32px; }
  .product__link { width: auto; }

  .stage { grid-template-columns: 5fr 6fr; align-items: start; gap: 48px; padding-inline: var(--gutter-wide); }
  .stage__head { grid-column: 1; }
  .stage__media { grid-column: 2; grid-row: 1 / span 2; }
  .stage__deck { gap: 16px; }
  .stage__steps { grid-column: 1; }

  /* страница товара: картинка сбоку от текста, в разделах — сверху, справа, слева по очереди */
  .phero__grid { grid-template-columns: 1fr 1fr; align-items: center; gap: 56px; }
  .phero__media { order: 2; width: min(100%, calc(72vh * var(--ar, 1))); justify-self: center; }
  .psec .prose, .psec .steps { margin-left: 0; }
  .psec[data-place="right"] .psec__grid, .psec[data-place="left"] .psec__grid {
    grid-template-columns: 1fr 1fr;
    align-items: center;
    gap: 56px;
  }
  .psec[data-place="right"] .psec__media { order: 2; }
  .psec[data-place="top"] .psec__media { width: min(100%, calc(70vh * var(--ar, 1.3333))); margin-inline: auto; }
  .psec__media { width: min(100%, calc(76vh * var(--ar, 1.3333))); }
  .psec[data-place="top"] .psec__body { margin-left: calc(100% / 12 * 4); }
  .facts { grid-template-columns: 1fr 1fr; column-gap: 48px; }
  .shots { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
  .inci { padding: 32px 36px; }
}

@media (min-width: 900px) and (min-height: 520px) {
  .js-motion .stage {
    grid-template-columns: 5fr 6fr;
    grid-template-rows: minmax(0, .8fr) minmax(0, 1fr);
    gap: 28px 56px;
    padding: 28px 24px 28px var(--gutter-wide);
    max-width: calc(var(--maxw) + 2 * var(--gutter-wide) + 200px);
    margin-inline: auto;
  }
  .js-motion .stage__head { padding-inline: 0; align-self: end; }
  .js-motion .stage__steps {
    position: relative;
    inset: auto;
    grid-column: 1;
    grid-row: 2;
    align-self: start;
    padding-right: 36px;
  }
  /* здесь шаги стоят на белом листе: чёрточки и подсказка — графитом, так же полупрозрачно */
  .js-motion .stage__ticks { top: 0; translate: 0 6px; }
  .js-motion .stage__ticks i { background: var(--ink); box-shadow: none; opacity: .16; }
  .js-motion .stage__ticks i.is-on { background: var(--accent); opacity: 1; }
  .js-motion .stage__hint { left: 0; margin-bottom: 10px; color: var(--ink); text-shadow: none; opacity: .5; }
  .js-motion .stage__step {
    inset: auto 36px auto 0;
    padding: 0;
    border-radius: 0;
    background: none;
    box-shadow: none;
    font-size: clamp(1.4rem, 2.1vw, 2rem);
    line-height: 1.24;
    letter-spacing: -.012em;
  }
}

/* --- облики со своим дизайном (владелец, 15.10: «дизайн не повторять, у каждого разбора свой») ---------
   Облик в style.json может задать свою палитру целиком (colors) и свой набор приёмов (kit → data-kit).
   Ниже — новые стыки (волна, косой срез), тёмный лист и два набора: «Цедра» (peel) и «Сад» (grove). */

.page[data-look] { background: var(--paper); color: var(--ink); }

/* волна: верх листа — ряд полукруглых зубцов, как край дольки или кожуры */
[data-seam="wave"] {
  --w: clamp(34px, 8.5vw, 64px);
  --lap: calc(var(--w) * .5);
  box-shadow: none;
  -webkit-mask:
    radial-gradient(circle at 50% 100%, #000 calc(var(--w) / 2 - .5px), #0000 calc(var(--w) / 2)) 0 0 / var(--w) calc(var(--w) / 2) repeat-x,
    linear-gradient(#000 0 0) 0 calc(var(--w) / 2 - 1px) / 100% 100% no-repeat;
          mask:
    radial-gradient(circle at 50% 100%, #000 calc(var(--w) / 2 - .5px), #0000 calc(var(--w) / 2)) 0 0 / var(--w) calc(var(--w) / 2) repeat-x,
    linear-gradient(#000 0 0) 0 calc(var(--w) / 2 - 1px) / 100% 100% no-repeat;
}
/* косой срез: верх листа идёт наискось */
[data-seam="slant-left"], [data-seam="slant-right"] { --lap: clamp(36px, 10vw, 96px); box-shadow: none; }
[data-seam="slant-right"] { clip-path: polygon(0 var(--lap), 100% 0, 100% 100%, 0 100%); }
[data-seam="slant-left"] { clip-path: polygon(0 0, 100% var(--lap), 100% 100%, 0 100%); }

/* тёмный лист: фон — тёмный цвет облика, текст светлый; переменные внутри листа пересчитаны */
[data-surface="deep"] {
  --surf: var(--dark);
  --ink: var(--paper);
  --ink-muted: color-mix(in srgb, var(--paper) 72%, var(--dark));
  --line: color-mix(in srgb, var(--paper) 20%, var(--dark));
  --accent-soft: color-mix(in srgb, var(--accent) 26%, var(--dark));
  --accent-ink: var(--accent);
  --dark: color-mix(in srgb, var(--paper) 12%, #000 88%);
  color: var(--ink);
}
/* плашки и карточки на тёмном листе — тоже тёмные: светлый текст листа на светлой плашке пропадал (владелец 15.10) */
[data-surface="deep"] :is(.stage__step, .product, .myth__side--fact) {
  background: color-mix(in srgb, var(--paper) 11%, var(--surf));
  color: var(--ink);
}

/* ===== «Цедра» (peel): осенняя книга. Главы с номером, буквица, окно-арка, долька цитруса ===== */
[data-kit="peel"] .eyebrow__num::before { content: "Глава "; font-weight: 500; }
[data-kit="peel"] .eyebrow { letter-spacing: .14em; }
[data-kit="peel"] h2 { font-style: italic; }
/* буквица у первого абзаца главы */
[data-kit="peel"] .block--explain .prose > p:first-child::first-letter,
[data-kit="peel"] .block--problem .prose > p:first-child::first-letter {
  float: left;
  margin: .06em .12em 0 0;
  font-family: var(--serif);
  font-size: 3.4em;
  font-weight: 700;
  line-height: .82;
  color: var(--accent);
}
/* картинка первого экрана — в окне-арке */
[data-kit="peel"] .hero__media { border-radius: 999px 999px var(--r-panel) var(--r-panel); }
[data-kit="peel"] .block__banner { border-radius: var(--r-panel) 72px var(--r-panel) var(--r-panel); }
/* долька цитруса: тонкие сегменты в круге за текстом листа, медленно поворачивается при прокрутке */
[data-kit="peel"] [data-surface="sand"]::after, [data-kit="peel"] [data-surface="warm"]::after {
  content: "";
  position: absolute;
  z-index: -1;
  top: calc(var(--lap) + 4vh);
  right: -22vw;
  width: min(70vw, 520px);
  aspect-ratio: 1;
  border-radius: 50%;
  background:
    radial-gradient(circle, transparent 0 7%, transparent 7% 86%, color-mix(in srgb, var(--accent) 30%, transparent) 86% 90%, transparent 90%),
    repeating-conic-gradient(from calc(var(--p, 0) * 40deg), color-mix(in srgb, var(--accent) 16%, transparent) 0 26deg, transparent 26deg 30deg);
  -webkit-mask: radial-gradient(circle, transparent 0 8%, #000 8% 88%, transparent 88%), linear-gradient(#000 0 0);
  pointer-events: none;
}
[data-kit="peel"] .voice { border-radius: 22px 22px 22px 6px; }
[data-kit="peel"] .voice:nth-child(even) { border-radius: 22px 22px 6px 22px; }
/* скругление угла не больше поля плашки: форма не режет текст (владелец 15.10: в мифах начало строк срезалось) */
[data-kit="peel"] .myth { border-radius: 56px var(--r-panel) var(--r-panel) var(--r-panel); }
[data-kit="peel"] .myth__side--myth { background: var(--dark); }
[data-kit="peel"] .step__num { font-family: var(--serif); font-style: italic; }
[data-kit="peel"] .cta { border-radius: var(--r-panel) var(--r-panel) var(--r-panel) 72px; }

/* ===== «Сад» (grove): солнечная страница товара. Россыпь семечек, мягкие карточки, волны ===== */
[data-kit="grove"] [data-surface="sand"], [data-kit="grove"] [data-surface="warm"] {
  background-image: radial-gradient(color-mix(in srgb, var(--second) 22%, transparent) 1.4px, transparent 1.6px);
  background-size: 22px 22px;
}
[data-kit="grove"] .eyebrow::before { width: 14px; height: 14px; border-radius: 50% 0; background: var(--second); }
/* у изогнутой картинки первого экрана нет цветной подложки: её угол торчал пятном (владелец 15.10) */
[data-kit="grove"] .phero__media { border-radius: 48% 52% var(--r-panel) var(--r-panel) / 30% 30% var(--r-panel) var(--r-panel); box-shadow: none !important; }
[data-kit="grove"] .psec__media:not(.media--spin) { border-radius: var(--r-panel) var(--r-panel) 999px var(--r-panel); }

/* ===== «Зенит» (zenith): белый минимализм с солнцем (витамин D, владелец 19.10: «минимализм, стильно, светлое, на белом, солнечное»).
   Чистый белый лист, тонкие линии, лёгкие крупные заголовки, номера глав моноширинным, картинки с малым скруглением.
   Солнце встаёт за первым экраном; на светлых листах мягкий солнечный круг переходит через стык и связывает блоки. ===== */
[data-kit="zenith"] { --r-panel: 6px; --r-card: 6px; --sun: var(--accent); }
/* солнце всегда тёплое: у «Полдня» акцент — небо, солнце — второй цвет */
[data-kit="zenith"][data-look="noon"] { --sun: var(--second); }
[data-kit="zenith"] h1, [data-kit="zenith"] h2 { font-weight: 300; letter-spacing: -.045em; line-height: 1.02; }
[data-kit="zenith"] h1 b, [data-kit="zenith"] h2 b, [data-kit="zenith"] h1 strong, [data-kit="zenith"] h2 strong { font-weight: 600; }
[data-kit="zenith"] h3 { font-weight: 500; letter-spacing: -.02em; }
[data-kit="zenith"] .eyebrow { font-family: var(--mono); font-weight: 500; letter-spacing: .08em; color: var(--ink-muted); }
[data-kit="zenith"] .eyebrow__num { font-family: var(--mono); color: var(--accent-ink); }
[data-kit="zenith"] .eyebrow__num::after { content: " /"; color: var(--line); }
/* метка главы — маленькое солнце: круг с лучами */
[data-kit="zenith"] .eyebrow::before {
  width: 13px; height: 13px; border-radius: 50%;
  background: radial-gradient(circle, var(--sun) 0 38%, transparent 40%),
              repeating-conic-gradient(var(--sun) 0 8deg, transparent 8deg 30deg);
  -webkit-mask: radial-gradient(circle, #000 0 38%, transparent 40% 52%, #000 54% 100%);
          mask: radial-gradient(circle, #000 0 38%, transparent 40% 52%, #000 54% 100%);
}
[data-kit="zenith"] .block--register .eyebrow::before { background: currentColor; }
/* листы почти не отличаются: белый и белый с тёплым светом; стык — пологая дуга с едва заметной тенью */
[data-kit="zenith"] [data-seam] { box-shadow: 0 -30px 50px -44px color-mix(in srgb, var(--ink) 30%, transparent); }
[data-kit="zenith"] [data-surface="sand"], [data-kit="zenith"] [data-surface="warm"] {
  background-image: radial-gradient(120% 60% at 50% 0%, color-mix(in srgb, var(--sun) 9%, transparent), transparent 70%);
}
/* солнечный круг: стоит на стыке — половина над предыдущим листом, половина на этом; медленно дышит */
[data-kit="zenith"] [data-surface="sand"]::after, [data-kit="zenith"] [data-surface="warm"]::after {
  content: "";
  position: absolute;
  z-index: -1;
  top: calc(var(--lap) * -1 - min(18vw, 120px));
  right: max(-10vw, -80px);
  width: min(52vw, 340px);
  aspect-ratio: 1;
  border-radius: 50%;
  background: radial-gradient(circle, color-mix(in srgb, var(--sun) 34%, transparent) 0 30%, color-mix(in srgb, var(--sun) 12%, transparent) 46%, transparent 70%);
  pointer-events: none;
}
[data-kit="zenith"] [data-surface="warm"]::after { right: auto; left: max(-10vw, -80px); }
.js-motion [data-kit="zenith"] [data-surface]::after { animation: zenith-breathe 9s ease-in-out infinite alternate; }
@keyframes zenith-breathe { from { scale: .92; opacity: .8; } to { scale: 1.06; opacity: 1; } }
/* первый экран: солнце встаёт из-за заголовка */
[data-kit="zenith"] .hero, [data-kit="zenith"] .phero { position: relative; isolation: isolate; overflow: clip; }
[data-kit="zenith"] .hero::before, [data-kit="zenith"] .phero::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: clamp(-120px, -9vh, -40px);
  right: clamp(-140px, -16vw, -50px);
  width: clamp(240px, 62vw, 620px);
  aspect-ratio: 1;
  border-radius: 50%;
  background:
    radial-gradient(circle, color-mix(in srgb, var(--sun) 72%, #fff) 0 22%, color-mix(in srgb, var(--sun) 30%, transparent) 23% 34%, color-mix(in srgb, var(--sun) 14%, transparent) 50%, transparent 70%);
  pointer-events: none;
}
.js-motion [data-kit="zenith"] .hero::before, .js-motion [data-kit="zenith"] .phero::before { animation: zenith-rise 2.4s var(--ease) both, zenith-breathe 9s ease-in-out 2.4s infinite alternate; }
@keyframes zenith-rise { from { translate: 0 38%; opacity: .15; } to { translate: 0 0; opacity: 1; } }
/* у картинок ни подложек, ни рамок; только малое скругление и воздух */
[data-kit="zenith"] .hero__media, [data-kit="zenith"] .block__banner, [data-kit="zenith"] .psec__media:not(.media--spin) { border-radius: var(--r-panel); }
[data-kit="zenith"] .phero__media { box-shadow: none !important; }
/* карточки и плашки — белые с волосяной линией вместо заливки */
[data-kit="zenith"] .cta { box-shadow: 0 24px 50px -36px color-mix(in srgb, var(--ink) 45%, transparent), 0 0 0 1px var(--line); }
[data-kit="zenith"] .voice { background: var(--paper); color: var(--ink); box-shadow: 0 0 0 1px var(--line); border-radius: 4px 18px 18px 18px; }
[data-kit="zenith"] .voice:nth-child(even) { background: var(--sand); border-radius: 18px 4px 18px 18px; }
[data-kit="zenith"] .step__num { font-family: var(--mono); font-weight: 500; background: none; box-shadow: none; border: 1px solid var(--accent); color: var(--accent-ink); }
[data-kit="zenith"] .myth { border-radius: var(--r-panel); box-shadow: 0 0 0 1px var(--line); }
[data-kit="zenith"] .btn--dark { border-radius: 999px; }

/* ===== Шрифт для чтения (владелец 19.10.2026): текст статей и страниц товаров — книжный PT Serif
   (ParaType, лицензия OFL, файлы лежат рядом в fonts/; со сторонних серверов ничего не грузится).
   Заголовки, кнопки, меню, надписи и реплики людей — прежним шрифтом облика. ===== */
@font-face { font-family: "PT Serif Read"; font-style: normal; font-weight: 400; font-display: swap;
  src: url("fonts/pt-serif-cyrillic-400-normal.woff2") format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "PT Serif Read"; font-style: normal; font-weight: 400; font-display: swap;
  src: url("fonts/pt-serif-cyrillic-ext-400-normal.woff2") format("woff2"); unicode-range: U+0460-048F, U+0492-04AF, U+04B2-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }
@font-face { font-family: "PT Serif Read"; font-style: normal; font-weight: 400; font-display: swap;
  src: url("fonts/pt-serif-latin-400-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "PT Serif Read"; font-style: normal; font-weight: 700; font-display: swap;
  src: url("fonts/pt-serif-cyrillic-700-normal.woff2") format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "PT Serif Read"; font-style: normal; font-weight: 700; font-display: swap;
  src: url("fonts/pt-serif-cyrillic-ext-700-normal.woff2") format("woff2"); unicode-range: U+0460-048F, U+0492-04AF, U+04B2-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }
@font-face { font-family: "PT Serif Read"; font-style: normal; font-weight: 700; font-display: swap;
  src: url("fonts/pt-serif-latin-700-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "PT Serif Read"; font-style: italic; font-weight: 400; font-display: swap;
  src: url("fonts/pt-serif-cyrillic-400-italic.woff2") format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "PT Serif Read"; font-style: italic; font-weight: 400; font-display: swap;
  src: url("fonts/pt-serif-cyrillic-ext-400-italic.woff2") format("woff2"); unicode-range: U+0460-048F, U+0492-04AF, U+04B2-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }
@font-face { font-family: "PT Serif Read"; font-style: italic; font-weight: 400; font-display: swap;
  src: url("fonts/pt-serif-latin-400-italic.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
.page { --read: "PT Serif Read", "PT Serif", Georgia, "Times New Roman", serif; }
.prose p, .prose li, .hero .lead, .stage__step, .myth__side p, .step__body, .step__body p,
.caveats li, .cta__text, .product__text, .source__claim, .phero__text, .psec__body, .psec__body p,
.psec__body li, .pick__body, .pick__body p {
  font-family: var(--read);
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.6;
}
.prose .lead, .hero .lead, .phero__text { font-weight: 400; line-height: 1.5; color: var(--ink); }
.prose strong, .psec__body strong, .step__body strong { font-weight: 700; }

/* ===== «Аурум» (aurum): премиальный облик (владелец 19.10.2026: «дорого, стильно, современно, уверенно, комфортно»,
   образцы — сохранённые пины: коллаж с товаром в пузырях, огромные буквы, слои и глубина).
   Ночной лист и сливочный лист по очереди, золото солнца, крупные заголовки Cormorant Garamond с золотыми наклонными числами,
   текст книжным PT Serif. Первый экран — клип во весь экран под тёмной вуалью, солнечный ореол и парящие капсулы;
   огромные контурные номера глав плывут при прокрутке; картинки раскрываются из рамки; вставки к товару — стекло
   с вырезанной бутылкой в светящемся пузыре; золотая кнопка с бликом; лента глав; зерно плёнки поверх всего. ===== */
@font-face { font-family: "Cormorant Au"; font-style: normal; font-weight: 300; font-display: swap;
  src: url("fonts/cormorant-garamond-cyrillic-300-normal.woff2") format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "Cormorant Au"; font-style: normal; font-weight: 300; font-display: swap;
  src: url("fonts/cormorant-garamond-cyrillic-ext-300-normal.woff2") format("woff2"); unicode-range: U+0460-048F, U+0492-04AF, U+04B2-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }
@font-face { font-family: "Cormorant Au"; font-style: normal; font-weight: 300; font-display: swap;
  src: url("fonts/cormorant-garamond-latin-300-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Cormorant Au"; font-style: normal; font-weight: 500; font-display: swap;
  src: url("fonts/cormorant-garamond-cyrillic-500-normal.woff2") format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "Cormorant Au"; font-style: normal; font-weight: 500; font-display: swap;
  src: url("fonts/cormorant-garamond-cyrillic-ext-500-normal.woff2") format("woff2"); unicode-range: U+0460-048F, U+0492-04AF, U+04B2-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }
@font-face { font-family: "Cormorant Au"; font-style: normal; font-weight: 500; font-display: swap;
  src: url("fonts/cormorant-garamond-latin-500-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Cormorant Au"; font-style: italic; font-weight: 400; font-display: swap;
  src: url("fonts/cormorant-garamond-cyrillic-400-italic.woff2") format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "Cormorant Au"; font-style: italic; font-weight: 400; font-display: swap;
  src: url("fonts/cormorant-garamond-cyrillic-ext-400-italic.woff2") format("woff2"); unicode-range: U+0460-048F, U+0492-04AF, U+04B2-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }
@font-face { font-family: "Cormorant Au"; font-style: italic; font-weight: 400; font-display: swap;
  src: url("fonts/cormorant-garamond-latin-400-italic.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

body:has(.page[data-kit="aurum"]) { background: #100D0A; }
[data-kit="aurum"] {
  --display: "Cormorant Au", "Cormorant Garamond", "Playfair Display", Georgia, serif;
  --gold: var(--accent);
  --gold-hi: color-mix(in srgb, var(--accent) 55%, #FFF6DF);
  --gold-lo: color-mix(in srgb, var(--accent) 70%, #5A3510);
  --gold-grad: linear-gradient(100deg, var(--gold-lo) 0%, var(--gold) 28%, var(--gold-hi) 50%, var(--gold) 72%, var(--gold-lo) 100%);
  --cream: var(--paper);
  --night: var(--dark);
  --r-panel: 28px;
  --r-card: 22px;
  --section: clamp(88px, 15vh, 200px);
  position: relative;
}
/* зерно плёнки: лёгкий шум поверх всей страницы убирает «пластиковую» гладкость заливок */
[data-kit="aurum"]::after {
  content: "";
  position: fixed;
  z-index: 60;
  inset: 0;
  pointer-events: none;
  opacity: .085;
  mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .9 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
}

/* --- шрифты: заголовки Cormorant, тонкие и крупные; числа в них золотым наклоном --- */
[data-kit="aurum"] :is(h1, h2, h3) { font-family: var(--display); font-weight: 300; letter-spacing: -.012em; text-wrap: balance; }
[data-kit="aurum"] h1 { font-size: clamp(2.6rem, 10.5vw, 7.4rem); line-height: .96; }
[data-kit="aurum"] h2 { font-size: clamp(2.3rem, 8.4vw, 5.6rem); line-height: 1; }
[data-kit="aurum"] h3 { font-weight: 500; font-size: clamp(1.5rem, 5.6vw, 2.3rem); line-height: 1.08; }
[data-kit="aurum"] .au-num {
  font-style: italic; font-weight: 400;
  background: var(--gold-grad); background-size: 220% 100%;
  -webkit-background-clip: text; background-clip: text; color: transparent;
  padding-inline: .04em .08em;
}
.js-motion [data-kit="aurum"] .au-num { animation: au-sheen 7s ease-in-out infinite; }
@keyframes au-sheen { 0%, 100% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } }
[data-kit="aurum"] .eyebrow {
  font-family: var(--font); font-size: .74rem; font-weight: 600; letter-spacing: .26em; text-transform: uppercase;
  color: var(--gold);
}
[data-kit="aurum"] [data-surface="paper"] .eyebrow { color: var(--accent-ink); }
[data-kit="aurum"] .eyebrow::before { width: 34px; height: 1px; border-radius: 0; background: currentColor; }
[data-kit="aurum"] .eyebrow__num { font-family: var(--display); font-style: italic; font-size: 1.5em; font-weight: 400; letter-spacing: 0; color: inherit; }
[data-kit="aurum"] .eyebrow__num::after { content: "  ·  "; white-space: pre; opacity: .5; }

/* --- меню и полоса прочтения --- */
[data-kit="aurum"] .snav, [data-kit="aurum"] .top { background: var(--night); color: var(--cream); border-color: color-mix(in srgb, var(--cream) 12%, transparent); }
[data-kit="aurum"] .snav a { color: inherit; }
[data-kit="aurum"] .top__dot { background: var(--gold-grad); box-shadow: 0 0 18px var(--gold); }
[data-kit="aurum"] .top__title { color: color-mix(in srgb, var(--cream) 82%, transparent); }
[data-kit="aurum"] .progress { height: 2px; background: var(--gold-grad); box-shadow: 0 0 12px var(--gold); }

/* --- первый экран: клип во весь экран, вуаль, солнце, капсулы --- */
[data-kit="aurum"] .hero {
  position: relative; isolation: isolate; overflow: clip;
  display: grid; align-content: end;
  min-height: min(100svh, 1100px);
  padding: 0;
  background: var(--night); color: var(--cream);
  --ink: var(--cream); --ink-muted: color-mix(in srgb, var(--cream) 70%, transparent);
}
[data-kit="aurum"] .hero__media {
  position: absolute; z-index: -2; inset: 0;
  margin: 0; width: 100%; height: 100%; max-height: none; aspect-ratio: auto;
  border-radius: 0;
  transform: scale(calc(1.12 - .12 * var(--g, 1)));
  transform-origin: 50% 40%;
}
[data-kit="aurum"] .hero__media::after {
  content: ""; position: absolute; inset: 0;
  background:
    radial-gradient(120% 70% at 70% 20%, transparent 0, color-mix(in srgb, var(--night) 35%, transparent) 55%),
    linear-gradient(180deg, color-mix(in srgb, var(--night) 55%, transparent) 0%, transparent 28%, color-mix(in srgb, var(--night) 72%, transparent) 62%, var(--night) 100%);
}
[data-kit="aurum"] .hero__text {
  position: relative; z-index: 2;
  padding-top: clamp(140px, 30vh, 320px);
  padding-bottom: clamp(48px, 9vh, 110px);
  gap: clamp(18px, 3vh, 34px);
}
[data-kit="aurum"] .hero h1 { max-width: 14ch; text-shadow: 0 2px 40px color-mix(in srgb, var(--night) 60%, transparent); }
[data-kit="aurum"] .hero .lead {
  max-width: 40em; font-size: clamp(1.02rem, 3.9vw, 1.2rem); line-height: 1.6;
  color: color-mix(in srgb, var(--cream) 84%, transparent);
}
.au-sky { position: absolute; z-index: -1; inset: 0; pointer-events: none; }
.au-orb {
  position: absolute; top: clamp(-160px, -12vh, -40px); right: clamp(-220px, -18vw, -60px);
  width: clamp(320px, 80vw, 860px); aspect-ratio: 1; border-radius: 50%;
  background:
    radial-gradient(circle, color-mix(in srgb, var(--gold-hi) 85%, #fff) 0 7%, color-mix(in srgb, var(--gold) 55%, transparent) 16%, color-mix(in srgb, var(--gold) 18%, transparent) 36%, transparent 66%);
  mix-blend-mode: screen; filter: blur(2px);
  translate: calc(var(--mx, 0) * -18px) calc(var(--my, 0) * -14px + var(--sy, 0) * .25px);
}
.js-motion .au-orb { animation: au-breathe 10s ease-in-out infinite alternate; }
@keyframes au-breathe { from { scale: .94; opacity: .85; } to { scale: 1.06; opacity: 1; } }
/* капсула нарисована: мягкий желатин с бликом и тёплым свечением; глубина задана размером и размытием */
.au-cap {
  position: absolute; left: var(--x); top: var(--y);
  width: calc(64px * var(--s)); aspect-ratio: 2.15 / 1; border-radius: 999px;
  background:
    radial-gradient(60% 46% at 32% 28%, rgba(255, 252, 235, .95) 0 14%, rgba(255, 240, 190, .35) 30%, transparent 46%),
    radial-gradient(120% 140% at 60% 70%, #F7C65A 0%, #E39A1E 42%, #A85F0B 78%, #6E3A06 100%);
  box-shadow: 0 0 calc(28px * var(--s)) color-mix(in srgb, var(--gold) 55%, transparent), inset -4px -6px 10px rgba(80, 40, 0, .45);
  rotate: var(--r);
  filter: blur(calc(var(--d) * 1.6px)) saturate(1.1);
  opacity: calc(1 - var(--d) * .18);
  translate: calc(var(--mx, 0) * var(--s) * 22px) calc(var(--sy, 0) * var(--s) * -.3px + var(--my, 0) * var(--s) * 14px);
}
.js-motion .au-cap { animation: au-float calc(7s + var(--i) * 1.3s) ease-in-out calc(var(--i) * -1.7s) infinite alternate; }
@keyframes au-float { from { transform: translateY(-10px) rotate(-6deg); } to { transform: translateY(14px) rotate(7deg); } }

/* лента глав под первым экраном */
.au-band {
  position: relative; z-index: 3; overflow: hidden;
  padding-block: 16px; background: var(--night); color: var(--gold);
  border-block: 1px solid color-mix(in srgb, var(--gold) 26%, transparent);
  font-family: var(--display); font-style: italic; font-size: clamp(1.15rem, 4vw, 1.6rem); white-space: nowrap;
}
.au-band__track { display: inline-flex; gap: 2.4em; padding-left: 2.4em; }
.au-band__track span::after { content: "✦"; margin-left: 2.4em; font-style: normal; font-size: .6em; vertical-align: middle; opacity: .7; }
.js-motion .au-band__track { animation: au-marquee 60s linear infinite; }
@keyframes au-marquee { to { transform: translateX(-50%); } }

/* --- листы: ночь и сливки; огромный контурный номер главы плывёт за текстом --- */
[data-kit="aurum"] .block { position: relative; isolation: isolate; overflow-x: clip; }
[data-kit="aurum"] [data-seam] { box-shadow: 0 -40px 60px -40px rgba(0, 0, 0, .55); }
[data-kit="aurum"] [data-surface="deep"] {
  background-image:
    radial-gradient(70% 50% at 85% 0%, color-mix(in srgb, var(--gold) 16%, transparent), transparent 70%),
    radial-gradient(60% 40% at 0% 100%, color-mix(in srgb, var(--gold) 9%, transparent), transparent 70%);
}
[data-kit="aurum"] .block[data-num]::before {
  content: attr(data-num);
  position: absolute; z-index: -1; top: clamp(10px, 4vh, 60px); right: -.06em;
  font-family: var(--display); font-weight: 300; font-style: italic;
  font-size: clamp(11rem, 46vw, 34rem); line-height: .8; letter-spacing: -.04em;
  color: transparent;
  -webkit-text-stroke: 1px color-mix(in srgb, var(--gold) 38%, transparent);
  translate: 0 calc(var(--sp, 0) * -90px);
  pointer-events: none;
}
[data-kit="aurum"] [data-surface="paper"][data-num]::before { -webkit-text-stroke-color: color-mix(in srgb, var(--gold-lo) 30%, transparent); }
[data-kit="aurum"] .block--register[data-num]::before, [data-kit="aurum"] .block--products[data-num]::before { content: none; }

/* --- картинки и клипы: большое скругление, раскрытие из рамки, тонкий золотой кант --- */
[data-kit="aurum"] .media { border-radius: var(--r-panel); }
[data-kit="aurum"] .block__banner, [data-kit="aurum"] .stage__media {
  clip-path: inset(calc((1 - var(--g, 1)) * 12%) calc((1 - var(--g, 1)) * 8%) round var(--r-panel));
  transform: none;
  box-shadow: 0 40px 80px -50px rgba(0, 0, 0, .7);
}
[data-kit="aurum"] .media::after {
  content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none;
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--gold) 28%, transparent);
}

/* --- кнопки: золотая капсула с бегущим бликом --- */
[data-kit="aurum"] .btn--dark, [data-kit="aurum"] .btn--accent {
  position: relative; overflow: hidden; border: 0; border-radius: 999px;
  background: var(--gold-grad); background-size: 200% 100%;
  color: #1B1207; font-weight: 700; letter-spacing: .01em;
  box-shadow: 0 14px 34px -14px color-mix(in srgb, var(--gold) 80%, transparent), inset 0 1px 0 rgba(255, 255, 255, .5);
}
[data-kit="aurum"] .btn--dark::after, [data-kit="aurum"] .btn--accent::after {
  content: ""; position: absolute; inset: -20% auto -20% -40%; width: 30%;
  background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .65), transparent);
  transform: skewX(-18deg) translateX(-120%);
}
.js-motion [data-kit="aurum"] .btn--dark::after, .js-motion [data-kit="aurum"] .btn--accent::after { animation: au-shine 4.8s ease-in-out infinite; }
@keyframes au-shine { 0%, 62% { transform: skewX(-18deg) translateX(-120%); } 100% { transform: skewX(-18deg) translateX(520%); } }
[data-kit="aurum"] .btn--pulse { animation: none; }
[data-kit="aurum"] .btn:hover { transform: translateY(-2px); box-shadow: 0 20px 44px -16px var(--gold); background-position: 100% 0; }

/* --- вставка к товару: стекло, бутылка в светящемся пузыре --- */
[data-kit="aurum"] .cta {
  position: relative; overflow: hidden;
  padding: clamp(22px, 5vw, 40px);
  border: 1px solid color-mix(in srgb, var(--gold) 34%, transparent);
  border-radius: 32px;
  background:
    radial-gradient(80% 120% at 0% 0%, color-mix(in srgb, var(--gold) 22%, transparent), transparent 60%),
    linear-gradient(160deg, #241B12, #120E0A 70%);
  color: var(--cream);
  box-shadow: 0 50px 90px -40px rgba(0, 0, 0, .75), inset 0 1px 0 rgba(255, 255, 255, .08);
}
[data-kit="aurum"] .cta--photo { grid-template-columns: 112px minmax(0, 1fr); gap: 18px 22px; }
[data-kit="aurum"] .cta__photo {
  position: relative; width: 112px; height: 112px; padding: 10px; overflow: visible;
  border-radius: 50%;
  background:
    radial-gradient(circle at 34% 28%, rgba(255, 255, 255, .55) 0 6%, transparent 18%),
    radial-gradient(circle, color-mix(in srgb, var(--gold) 30%, transparent) 0 40%, color-mix(in srgb, var(--gold) 8%, transparent) 64%, transparent 70%);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .22), inset -8px -10px 24px rgba(255, 210, 140, .18), 0 0 40px color-mix(in srgb, var(--gold) 30%, transparent);
}
[data-kit="aurum"] .cta__photo img { object-fit: contain; border-radius: 0; filter: drop-shadow(0 14px 18px rgba(0, 0, 0, .5)); }
.js-motion [data-kit="aurum"] .cta__photo img { animation: au-bob 5.5s ease-in-out infinite alternate; }
@keyframes au-bob { from { transform: translateY(-5px) rotate(-3deg); } to { transform: translateY(6px) rotate(3deg); } }
[data-kit="aurum"] .cta__text { font-weight: 400; font-size: clamp(1.02rem, 3.8vw, 1.22rem); line-height: 1.55; color: color-mix(in srgb, var(--cream) 88%, transparent); }

/* --- реплики людей --- */
[data-kit="aurum"] .voice, [data-kit="aurum"] .voice:nth-child(even), [data-kit="aurum"] .voice:nth-child(4n+3) {
  background: color-mix(in srgb, var(--surf, var(--cream)) 86%, var(--gold) 14%);
  color: var(--ink);
  border: 1px solid color-mix(in srgb, var(--gold) 26%, transparent);
  border-radius: 22px 22px 22px 6px;
  font-family: var(--display); font-style: italic; font-weight: 500; font-size: clamp(1.25rem, 4.6vw, 1.6rem); line-height: 1.2;
  box-shadow: 0 18px 40px -30px rgba(0, 0, 0, .6);
}
[data-kit="aurum"] .voice:nth-child(even) { border-radius: 22px 22px 6px 22px; }

/* --- сцена с шагами: плашки-стёкла --- */
[data-kit="aurum"] .stage__step {
  border: 1px solid color-mix(in srgb, var(--gold) 22%, transparent);
  border-radius: 22px;
  box-shadow: 0 30px 60px -40px rgba(0, 0, 0, .6);
}
[data-kit="aurum"] [data-surface="deep"] .stage__step { background: color-mix(in srgb, #fff 7%, var(--surf)); }

/* --- мифы: тёмная сторона с золотым зачёркиванием --- */
[data-kit="aurum"] .myth { border-radius: 26px; border: 1px solid color-mix(in srgb, var(--gold) 24%, transparent); }
[data-kit="aurum"] .myth__side--myth { background: linear-gradient(160deg, #221A12, #0F0C09); color: var(--cream); }
[data-kit="aurum"] .myth__side--myth p { font-family: var(--display); font-weight: 400; font-size: clamp(1.5rem, 5.4vw, 2.1rem); line-height: 1.08; text-decoration-color: var(--gold); }
[data-kit="aurum"] .myth__side--fact { background: color-mix(in srgb, var(--surf, var(--cream)) 92%, var(--gold) 8%); }
[data-kit="aurum"] .label { letter-spacing: .22em; }

/* --- шаги «что делать» --- */
[data-kit="aurum"] .step { border-color: color-mix(in srgb, var(--gold) 24%, transparent); }
[data-kit="aurum"] .step__num {
  background: none; color: var(--gold); border: 1px solid color-mix(in srgb, var(--gold) 55%, transparent);
  font-family: var(--display); font-style: italic; font-weight: 400; font-size: 1.5rem;
}
[data-kit="aurum"] .caveats { border-radius: 24px; border-color: color-mix(in srgb, var(--gold) 40%, transparent); }

/* --- источники, товары, регистрация --- */
[data-kit="aurum"] .sources { border-top: 1px solid color-mix(in srgb, var(--gold) 45%, transparent); }
[data-kit="aurum"] .source__num { font-family: var(--display); font-style: italic; color: var(--gold); }
[data-kit="aurum"] .block--products { background: var(--night); color: var(--cream); --ink: var(--cream); --ink-muted: color-mix(in srgb, var(--cream) 70%, transparent); }
[data-kit="aurum"] .product {
  border: 1px solid color-mix(in srgb, var(--gold) 26%, transparent); border-radius: 30px;
  background: linear-gradient(170deg, #211913, #110D09); color: var(--cream);
}
[data-kit="aurum"] .product__photo {
  background: radial-gradient(60% 55% at 50% 55%, color-mix(in srgb, var(--gold) 34%, transparent), transparent 70%);
}
[data-kit="aurum"] .product__photo img { object-fit: contain; padding: 12%; filter: drop-shadow(0 30px 30px rgba(0, 0, 0, .55)); transition: transform .8s var(--ease); }
[data-kit="aurum"] .product:hover .product__photo img { transform: translateY(-8px) scale(1.03); }
[data-kit="aurum"] .block--register {
  background: radial-gradient(90% 70% at 50% 0%, color-mix(in srgb, var(--gold) 28%, transparent), transparent 70%), var(--night);
  color: var(--cream); --ink: var(--cream); --ink-muted: color-mix(in srgb, var(--cream) 70%, transparent);
}
[data-kit="aurum"] .foot { background: #0A0806; }

/* прожектор на компьютере: мягкое золотое пятно света за указателем мыши */
.au-light {
  position: fixed; z-index: 55; left: 0; top: 0; width: 520px; height: 520px; margin: -260px 0 0 -260px;
  border-radius: 50%; pointer-events: none;
  background: radial-gradient(circle, rgba(233, 180, 92, .18), transparent 62%);
  mix-blend-mode: soft-light;
  transform: translate3d(var(--cx, -999px), var(--cy, -999px), 0);
}
@media (hover: none), (pointer: coarse) { .js-motion .au-light { display: none; } }

@media (min-width: 900px) {
  [data-kit="aurum"] .hero__text { padding-bottom: clamp(70px, 12vh, 150px); }
  [data-kit="aurum"] .cta--photo { grid-template-columns: 170px minmax(0, 1fr) auto; align-items: center; }
  [data-kit="aurum"] .cta--photo .cta__btn { grid-column: auto; width: auto; }
  [data-kit="aurum"] .cta__photo { width: 170px; height: 170px; }
}
/* «Аурум», правки после просмотра 19.10: числа заголовка — сплошное золото (градиент по тексту гас под обёртками слов),
   клип первого экрана без скругления и под плотной вуалью, золотая полоса прочтения, просторные плашки сцены */
[data-kit="aurum"] .au-num, .js-motion [data-kit="aurum"] .au-num {
  background: none; color: var(--gold-hi); animation: none;
  text-shadow: 0 0 28px color-mix(in srgb, var(--gold) 55%, transparent);
}
[data-kit="aurum"] [data-surface="paper"] .au-num { color: var(--accent-ink); text-shadow: none; }
[data-kit="aurum"] .hero .media.hero__media { border-radius: 0; }
[data-kit="aurum"] .hero .media.hero__media::after {
  box-shadow: none;
  background:
    radial-gradient(130% 80% at 75% 15%, transparent 0, color-mix(in srgb, var(--night) 45%, transparent) 60%),
    linear-gradient(180deg, color-mix(in srgb, var(--night) 70%, transparent) 0%, color-mix(in srgb, var(--night) 25%, transparent) 30%, color-mix(in srgb, var(--night) 80%, transparent) 60%, var(--night) 100%);
}
[data-kit="aurum"] .hero h1 { font-size: clamp(2.5rem, 7.4vw, 6.2rem); max-width: 17ch; }
body:has(.page[data-kit="aurum"]) .progress { height: 2px; background: linear-gradient(90deg, #8A5B1C, #D9A658 40%, #F6E2B8 70%, #D9A658); box-shadow: 0 0 12px rgba(217, 166, 88, .8); }
.js-motion [data-kit="aurum"] .stage__step {
  padding: clamp(22px, 4vw, 30px) clamp(22px, 4vw, 32px);
  font-size: clamp(1.02rem, 3.8vw, 1.16rem); font-weight: 400; line-height: 1.62;
  backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
}
.js-motion [data-kit="aurum"] .stage__step:first-of-type { font-size: clamp(1.12rem, 4.2vw, 1.32rem); line-height: 1.5; }
.js-motion [data-kit="aurum"] .stage__hint {
  font-family: var(--font); font-size: .68rem; letter-spacing: .24em; text-transform: uppercase;
  color: var(--gold); text-shadow: none; opacity: .85;
}
.js-motion [data-kit="aurum"] .stage__ticks i { background: color-mix(in srgb, var(--gold) 40%, transparent); box-shadow: none; }
.js-motion [data-kit="aurum"] .stage__ticks i.is-on { background: var(--gold); box-shadow: 0 0 8px var(--gold); }
[data-kit="aurum"] .hero .media.hero__media, .js-motion [data-kit="aurum"] .hero .media.hero__media { clip-path: none; }
/* телефон: в вставке к товару бутылка над текстом, текст во всю ширину */
@media (max-width: 899px) {
  [data-kit="aurum"] .cta--photo { grid-template-columns: minmax(0, 1fr); justify-items: start; }
  [data-kit="aurum"] .cta__photo { width: 128px; height: 128px; }
}
.js-motion [data-kit="aurum"] .hero .media.hero__media { animation: au-hero-in 1.8s var(--ease) both; }
@keyframes au-hero-in { from { opacity: .05; filter: blur(12px) brightness(.6); } to { opacity: 1; filter: none; } }
/* «Аурум»: плитки, состав и меню стран на ночном листе — тёмное стекло (светлая плашка с текстом листа пропадала) */
[data-kit="aurum"] [data-surface="deep"] :is(.tile, .inci, .buy__menu) {
  background: color-mix(in srgb, #fff 7%, var(--surf));
  color: var(--ink);
  border: 1px solid color-mix(in srgb, var(--gold) 22%, transparent);
}
[data-kit="aurum"] :is(.tile, .inci, .buy__menu) { border-radius: 22px; }
[data-kit="aurum"] .buy__menu { box-shadow: 0 30px 60px -30px rgba(0, 0, 0, .6); }

/* ===== «Соларис» (solaris): страница витамина D3 (владелец 19.10.2026: у каждой страницы свой облик, премиально).
   Слоновая кость и мёд; живой солнечный градиент за первым экраном; огромные контурные буквы за товаром;
   вырезка бутылки в кольце летающих капсул; заголовки — плотный гротеск, акцент — книжный наклон; карточки-«бенто». ===== */
body:has(.page[data-kit="solaris"]) { background: #FBF6EC; }
[data-kit="solaris"] {
  --honey: var(--accent);
  --tang: var(--second);
  --r-panel: 36px; --r-card: 26px;
  --section: clamp(80px, 13vh, 170px);
}
[data-kit="solaris"]::after {
  content: ""; position: fixed; z-index: 60; inset: 0; pointer-events: none; opacity: .05; mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
}
[data-kit="solaris"] :is(h1, h2) { font-family: var(--font); font-weight: 800; letter-spacing: -.045em; line-height: .95; }
[data-kit="solaris"] h1 { font-size: clamp(2.8rem, 12vw, 7.6rem); }
[data-kit="solaris"] h2 { font-size: clamp(2.1rem, 8vw, 4.6rem); }
[data-kit="solaris"] h3 { font-family: var(--read); font-style: italic; font-weight: 400; letter-spacing: 0; }
[data-kit="solaris"] .eyebrow { font-weight: 700; letter-spacing: .18em; text-transform: uppercase; font-size: .72rem; color: var(--accent-ink); }
[data-kit="solaris"] .eyebrow::before { width: 10px; height: 10px; border-radius: 50%; background: var(--honey); box-shadow: 0 0 0 5px color-mix(in srgb, var(--honey) 25%, transparent); }
[data-kit="solaris"] [data-surface="deep"] .eyebrow { color: var(--honey); }
/* первый экран: дышащий градиент солнца, огромные буквы, бутылка в кольце капсул */
[data-kit="solaris"] .phero, [data-kit="solaris"] .hero { position: relative; isolation: isolate; overflow: clip; }
[data-kit="solaris"] .phero::before, [data-kit="solaris"] .hero::before {
  content: ""; position: absolute; z-index: -3; inset: -20%;
  background:
    radial-gradient(38% 34% at 72% 34%, color-mix(in srgb, var(--honey) 62%, transparent), transparent 70%),
    radial-gradient(30% 30% at 88% 70%, color-mix(in srgb, var(--tang) 40%, transparent), transparent 70%),
    radial-gradient(40% 40% at 15% 85%, color-mix(in srgb, var(--honey) 22%, transparent), transparent 70%);
  filter: blur(30px);
}
.js-motion [data-kit="solaris"] .phero::before, .js-motion [data-kit="solaris"] .hero::before { animation: so-mesh 16s ease-in-out infinite alternate; }
@keyframes so-mesh { from { transform: translate(0, 0) scale(1); } to { transform: translate(-4%, 3%) scale(1.08); } }
.so-giant {
  position: absolute; z-index: -2; right: -2vw; top: 50%; translate: 0 -50%;
  font-family: var(--font); font-weight: 900; font-size: clamp(14rem, 52vw, 44rem); line-height: .8; letter-spacing: -.08em;
  color: transparent; -webkit-text-stroke: 2px color-mix(in srgb, var(--honey) 55%, transparent);
  pointer-events: none; user-select: none;
  transform: translateY(calc(var(--sy, 0) * -.12px));
}
[data-kit="solaris"] .phero__media, [data-kit="solaris"] .phero__media.media { background: none; box-shadow: none !important; overflow: visible; border-radius: 0; }
[data-kit="solaris"] .phero__media .media__img { object-fit: contain; filter: drop-shadow(0 40px 40px rgba(110, 60, 0, .35)); }
.js-motion [data-kit="solaris"] .phero__media .media__img { animation: so-bob 6s ease-in-out infinite alternate; }
@keyframes so-bob { from { transform: translateY(-8px) rotate(-1.5deg); } to { transform: translateY(10px) rotate(1.5deg); } }
.so-orbit {
  position: absolute; z-index: 1; left: 50%; top: 50%; width: 112%; aspect-ratio: 1; translate: -50% -50%;
  border-radius: 50%; border: 1px dashed color-mix(in srgb, var(--honey) 55%, transparent);
  pointer-events: none; transform: rotateX(68deg);
}
.so-orbit i {
  position: absolute; left: 50%; top: 50%; width: 46px; aspect-ratio: 2.1 / 1; margin: -11px 0 0 -23px; border-radius: 999px;
  background: radial-gradient(60% 46% at 32% 28%, rgba(255, 252, 235, .95) 0 14%, transparent 46%), radial-gradient(120% 140% at 60% 70%, #FFD36B 0%, #F2A516 45%, #B86A04 100%);
  box-shadow: 0 0 18px color-mix(in srgb, var(--honey) 70%, transparent);
  transform: rotate(calc(var(--k) * 60deg)) translateX(calc(56vmin * .5)) rotate(calc(var(--k) * -60deg)) rotateX(-68deg);
}
.js-motion .so-orbit { animation: so-spin 26s linear infinite; }
@keyframes so-spin { to { rotate: 0 0 1 360deg; } }
/* карточки-бенто: каждая секция — большая скруглённая карточка с мягкой тенью */
[data-kit="solaris"] .psec > .wrap {
  position: relative;
  padding: clamp(24px, 5vw, 56px);
  border-radius: 40px;
  background: color-mix(in srgb, var(--surf) 70%, #fff 30%);
  box-shadow: 0 40px 80px -60px rgba(90, 50, 0, .45), inset 0 0 0 1px color-mix(in srgb, var(--honey) 22%, transparent);
}
[data-kit="solaris"] [data-surface="deep"] > .wrap { background: linear-gradient(160deg, color-mix(in srgb, var(--dark) 92%, var(--honey)), var(--dark)); box-shadow: 0 40px 80px -50px rgba(0, 0, 0, .6); }
[data-kit="solaris"] [data-seam] { box-shadow: none; }
[data-kit="solaris"] .media { border-radius: var(--r-card); }
[data-kit="solaris"] .psec__media { box-shadow: 0 30px 60px -40px rgba(90, 50, 0, .5); }
[data-kit="solaris"] .ticks li::before, [data-kit="solaris"] .caveats li::before { background: var(--honey); }
[data-kit="solaris"] :is(.tile, .inci) { border-radius: 24px; background: color-mix(in srgb, var(--surf) 60%, #fff); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--honey) 25%, transparent); }
[data-kit="solaris"] [data-surface="deep"] :is(.tile, .inci, .buy__menu) { background: color-mix(in srgb, #fff 8%, var(--dark)); color: var(--ink); }
/* кнопки: тёмная капсула с медовым кругом-стрелкой; под пальцем заливается мёдом */
[data-kit="solaris"] .btn--dark {
  border: 0; border-radius: 999px; background: var(--dark); color: #FFF7E6; font-weight: 700;
  box-shadow: 0 18px 36px -18px rgba(60, 30, 0, .7);
  transition: background-color .35s var(--ease), color .35s var(--ease), transform .35s var(--ease);
}
[data-kit="solaris"] .btn--dark:hover { background: var(--honey); color: var(--dark); }
[data-kit="solaris"] [data-surface="deep"] .btn--dark { background: var(--honey); color: var(--dark); }
[data-kit="solaris"] .buy__chev, [data-kit="solaris"] .btn__arrow { color: var(--honey); }
[data-kit="solaris"] .btn--pulse { animation: none; }
[data-kit="solaris"] .foot { background: var(--dark); }

/* ===== «Ноктюрн» (nocturne): страница магния — полночь и северное сияние (магний ассоциируют с вечером и спокойствием).
   Кобальт, лёд и сирень на тёмно-синем; живое сияние за первым экраном и на тёмных листах; мерцающие звёзды;
   лунный ореол за бутылкой и огромные контурные буквы Mg; стеклянные карточки; тонкий широкий гротеск. ===== */
body:has(.page[data-kit="nocturne"]) { background: #0A1020; }
[data-kit="nocturne"] {
  --ice: var(--accent);
  --lilac: var(--second);
  --r-panel: 30px; --r-card: 22px;
  --section: clamp(84px, 14vh, 180px);
}
[data-kit="nocturne"] :is(h1, h2) { font-family: var(--font); font-weight: 200; letter-spacing: -.02em; line-height: 1.02; }
[data-kit="nocturne"] h1 { font-size: clamp(2.8rem, 11vw, 7rem); }
[data-kit="nocturne"] h2 { font-size: clamp(2rem, 7.4vw, 4.4rem); }
[data-kit="nocturne"] h3 { font-weight: 500; letter-spacing: -.01em; }
[data-kit="nocturne"] .eyebrow { font-weight: 500; letter-spacing: .2em; text-transform: uppercase; font-size: .78rem; color: var(--ice); }
[data-kit="nocturne"] [data-surface="paper"] .eyebrow { color: var(--accent-ink); }
[data-kit="nocturne"] .eyebrow::before { width: 6px; height: 6px; border-radius: 50%; background: currentColor; box-shadow: 0 0 10px currentColor; }
[data-kit="nocturne"] .snav, [data-kit="nocturne"] .top { background: var(--dark); color: #E8EEF9; border-color: rgba(255, 255, 255, .08); }
[data-kit="nocturne"] .snav a { color: inherit; }
/* первый экран: сияние, звёзды, луна */
[data-kit="nocturne"] .phero, [data-kit="nocturne"] .hero {
  position: relative; isolation: isolate; overflow: clip;
  background: var(--dark); color: #EEF3FB;
  --ink: #EEF3FB; --ink-muted: rgba(226, 234, 248, .72); --line: rgba(255, 255, 255, .14);
}
[data-kit="nocturne"] .phero::before, [data-kit="nocturne"] .hero::before, [data-kit="nocturne"] [data-surface="deep"]::before {
  content: ""; position: absolute; z-index: -3; inset: -10% -20%;
  background:
    radial-gradient(34% 28% at 22% 18%, color-mix(in srgb, var(--ice) 45%, transparent), transparent 70%),
    radial-gradient(30% 26% at 70% 30%, color-mix(in srgb, var(--lilac) 38%, transparent), transparent 70%),
    radial-gradient(36% 30% at 50% 95%, color-mix(in srgb, #2E5BFF 40%, transparent), transparent 70%);
  filter: blur(40px); opacity: .9; pointer-events: none;
}
.js-motion [data-kit="nocturne"] .phero::before, .js-motion [data-kit="nocturne"] .hero::before, .js-motion [data-kit="nocturne"] [data-surface="deep"]::before { animation: no-aurora 18s ease-in-out infinite alternate; }
@keyframes no-aurora { 0% { transform: translate(0, 0) rotate(0deg); } 50% { transform: translate(5%, -3%) rotate(6deg); } 100% { transform: translate(-4%, 4%) rotate(-5deg); } }
[data-kit="nocturne"] [data-surface="deep"] { position: relative; isolation: isolate; overflow: clip; }
[data-kit="nocturne"] [data-surface="deep"]::before { opacity: .45; }
.no-stars { position: absolute; z-index: -2; inset: 0; pointer-events: none; }
.no-stars i { position: absolute; left: var(--x); top: var(--y); width: var(--s); height: var(--s); border-radius: 50%; background: #fff; box-shadow: 0 0 6px #fff; opacity: .7; }
.js-motion .no-stars i { animation: no-twinkle calc(2.5s + var(--k) * .37s) ease-in-out calc(var(--k) * -.53s) infinite alternate; }
@keyframes no-twinkle { from { opacity: .15; } to { opacity: .95; } }
.no-giant {
  position: absolute; z-index: -1; left: 50%; top: 50%; translate: -50% -50%;
  font-family: var(--font); font-weight: 100; font-size: clamp(16rem, 60vw, 48rem); line-height: .8; letter-spacing: -.06em;
  color: transparent; -webkit-text-stroke: 1px rgba(170, 200, 255, .35);
  pointer-events: none; user-select: none;
  transform: translateY(calc(var(--sy, 0) * -.15px));
}
[data-kit="nocturne"] .phero__media, [data-kit="nocturne"] .phero__media.media { background: none; box-shadow: none !important; overflow: visible; border-radius: 0; }
[data-kit="nocturne"] .phero__media::before {
  content: ""; position: absolute; z-index: -1; left: 50%; top: 50%; width: 92%; aspect-ratio: 1; translate: -50% -50%; border-radius: 50%;
  background: radial-gradient(circle, rgba(235, 243, 255, .9) 0 18%, rgba(140, 180, 255, .45) 34%, rgba(110, 140, 255, .12) 55%, transparent 70%);
  filter: blur(6px);
}
[data-kit="nocturne"] .phero__media .media__img { object-fit: contain; filter: drop-shadow(0 40px 50px rgba(0, 10, 40, .7)); }
.js-motion [data-kit="nocturne"] .phero__media .media__img { animation: no-float 7s ease-in-out infinite alternate; }
@keyframes no-float { from { transform: translateY(-10px); } to { transform: translateY(12px); } }
/* стеклянные карточки и плитки */
[data-kit="nocturne"] [data-surface="deep"] :is(.tile, .inci, .buy__menu, .pick, .stage__step),
[data-kit="nocturne"] .phero .buy__menu {
  background: rgba(255, 255, 255, .06); color: #EEF3FB;
  border: 1px solid rgba(190, 215, 255, .18); border-radius: 22px;
  backdrop-filter: blur(16px) saturate(1.2); -webkit-backdrop-filter: blur(16px) saturate(1.2);
}
[data-kit="nocturne"] :is(.tile, .inci) { border-radius: 22px; }
[data-kit="nocturne"] .media { border-radius: var(--r-panel); }
[data-kit="nocturne"] .psec__media { box-shadow: 0 40px 90px -50px rgba(40, 90, 255, .55), 0 0 0 1px rgba(190, 215, 255, .14); }
[data-kit="nocturne"] [data-seam] { box-shadow: 0 -40px 60px -40px rgba(0, 0, 0, .6); }
[data-kit="nocturne"] .ticks li::before, [data-kit="nocturne"] .caveats li::before { background: var(--ice); box-shadow: 0 0 10px var(--ice); }
/* кнопки: ледяная капсула со свечением */
[data-kit="nocturne"] .btn--dark {
  border: 0; border-radius: 999px; color: #08122A; font-weight: 700;
  background: linear-gradient(100deg, #CFE2FF, var(--ice) 45%, var(--lilac));
  box-shadow: 0 0 0 1px rgba(255, 255, 255, .35) inset, 0 18px 40px -16px color-mix(in srgb, var(--ice) 85%, transparent);
}
[data-kit="nocturne"] [data-surface="paper"] .btn--dark { background: var(--dark); color: #EEF3FB; }
[data-kit="nocturne"] .btn--pulse { animation: none; }
[data-kit="nocturne"] .btn:hover { transform: translateY(-2px); box-shadow: 0 0 0 1px rgba(255, 255, 255, .5) inset, 0 22px 50px -16px var(--ice); }
[data-kit="nocturne"] .foot { background: #060A14; }
@media (min-width: 900px) {
  .so-orbit i { transform: rotate(calc(var(--k) * 60deg)) translateX(250px) rotate(calc(var(--k) * -60deg)) rotateX(-68deg); }
}
/* «Ноктюрн»: тёмные листы — полночная синева, а не серо-чёрный общий тёмный */
[data-kit="nocturne"] [data-surface="deep"] { --surf: #0B1430; --dark: #081026; background: linear-gradient(180deg, #0B1430, #0A1020 60%, #0E1838); }
/* огромные буквы на телефоне — за товаром в верхней части первого экрана, а не под заголовком */
@media (max-width: 899px) {
  .so-giant { top: 4%; translate: 0 0; right: -6vw; font-size: 62vw; }
  .no-giant { top: 4%; translate: -50% 0; font-size: 70vw; }
}

/* ===== «Минерал» (mineral): статья про магний (владелец 19.10.2026: у каждой страницы свой облик).
   Тёплый камень и графит, шалфей и мята; тонкие жилы по фону; грани кристалла вместо скруглений:
   срезанные углы у карточек и кнопок, клип первого экрана в огранке, вращающиеся осколки; номер главы — гранёный знак. ===== */
body:has(.page[data-kit="mineral"]) { background: #EEEBE4; }
[data-kit="mineral"] {
  --mint: var(--accent);
  --cut: 18px;
  --r-panel: 0; --r-card: 0;
  --section: clamp(84px, 13vh, 168px);
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='900' height='900' fill='none' stroke='%23161A18' stroke-opacity='.06'><path d='M-20 140C180 90 260 260 470 210S760 40 940 120'/><path d='M-20 520C120 470 300 610 520 560S800 430 940 500'/><path d='M-20 800C200 760 380 880 600 820S820 700 940 760'/></svg>");
  background-size: 900px 900px;
}
[data-kit="mineral"] :is(h1, h2) { font-family: var(--font); font-weight: 650; letter-spacing: -.035em; line-height: 1.02; }
[data-kit="mineral"] h1 { font-size: clamp(2.5rem, 10.5vw, 6.2rem); }
[data-kit="mineral"] h2 { font-size: clamp(1.9rem, 6.6vw, 3.6rem); }
[data-kit="mineral"] h2::after {
  content: ""; display: block; width: 72px; height: 4px; margin-top: .45em;
  background: linear-gradient(90deg, var(--mint), color-mix(in srgb, var(--mint) 20%, transparent));
  clip-path: polygon(0 0, 100% 0, calc(100% - 4px) 100%, 0 100%);
}
[data-kit="mineral"] .eyebrow { font-weight: 650; letter-spacing: .16em; text-transform: uppercase; font-size: .72rem; color: var(--accent-ink); }
[data-kit="mineral"] [data-surface="deep"] .eyebrow { color: var(--mint); }
[data-kit="mineral"] .eyebrow::before { width: 12px; height: 12px; border-radius: 0; background: var(--mint); clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%); }
[data-kit="mineral"] .eyebrow__num {
  display: inline-grid; place-items: center; min-width: 2.4em; height: 2.4em; padding: 0 .4em; margin-right: .6em;
  background: var(--ink); color: var(--paper); letter-spacing: 0;
  clip-path: polygon(25% 0, 75% 0, 100% 50%, 75% 100%, 25% 100%, 0 50%);
}
[data-kit="mineral"] [data-surface="deep"] .eyebrow__num { background: var(--mint); color: #0E1512; }
[data-kit="mineral"] .eyebrow__num::after { content: none; }
/* первый экран: клип в огранке, за ним медленно вращается грань, вокруг — осколки */
[data-kit="mineral"] .hero { position: relative; isolation: isolate; overflow: clip; }
[data-kit="mineral"] .hero .media.hero__media {
  border-radius: 0; box-shadow: none;
  clip-path: polygon(14% 0, 86% 0, 100% 22%, 100% 78%, 86% 100%, 14% 100%, 0 78%, 0 22%);
}
[data-kit="mineral"] .hero .media.hero__media::after { content: none; }
.mi-facet {
  position: absolute; z-index: -1; pointer-events: none; border-radius: 50%;
  width: min(120vw, 980px); aspect-ratio: 1; right: -30%; top: -20%;
  background: conic-gradient(from 0deg, transparent 0 12%, color-mix(in srgb, var(--mint) 30%, transparent) 12% 13%, transparent 13% 37%,
    color-mix(in srgb, var(--second) 60%, transparent) 37% 38%, transparent 38% 62%, color-mix(in srgb, var(--mint) 22%, transparent) 62% 63%, transparent 63% 87%,
    color-mix(in srgb, var(--second) 50%, transparent) 87% 88%, transparent 88%);
  -webkit-mask: radial-gradient(circle, transparent 30%, #000 31%, #000 70%, transparent 71%);
          mask: radial-gradient(circle, transparent 30%, #000 31%, #000 70%, transparent 71%);
}
.js-motion .mi-facet { animation: mi-turn 60s linear infinite; }
@keyframes mi-turn { to { rotate: 360deg; } }
.mi-shard {
  position: absolute; z-index: 2; left: var(--x); top: var(--y); width: calc(var(--s) * 34px); aspect-ratio: .62; pointer-events: none;
  background: linear-gradient(135deg, rgba(255, 255, 255, .95), color-mix(in srgb, var(--mint) 70%, #fff) 45%, color-mix(in srgb, var(--mint) 80%, #0E1512));
  clip-path: polygon(50% 0, 100% 28%, 82% 100%, 18% 100%, 0 28%);
  filter: drop-shadow(0 10px 14px rgba(20, 50, 40, .25)); rotate: var(--r);
  transform: translateY(calc(var(--sy, 0) * var(--d) * -.18px));
}
.js-motion .mi-shard { animation: mi-drift calc(7s + var(--i) * 1.3s) ease-in-out calc(var(--i) * -.9s) infinite alternate; }
@keyframes mi-drift { from { translate: 0 -8px; } to { translate: 0 10px; } }
/* карточки, плашки, шаги — со срезанными углами */
[data-kit="mineral"] :is(.tile, .inci, .stage__step, .step, .myth__side, .product, .voice, .cta, .source) {
  border-radius: 0;
  clip-path: polygon(var(--cut) 0, 100% 0, 100% calc(100% - var(--cut)), calc(100% - var(--cut)) 100%, 0 100%, 0 var(--cut));
}
[data-kit="mineral"] .media { border-radius: 0; clip-path: polygon(0 0, calc(100% - 28px) 0, 100% 28px, 100% 100%, 28px 100%, 0 calc(100% - 28px)); }
[data-kit="mineral"] .media::after { content: none; }
[data-kit="mineral"] .myth__side--fact { background: color-mix(in srgb, var(--mint) 16%, var(--surf)); }
[data-kit="mineral"] .voice { background: color-mix(in srgb, #fff 55%, var(--surf)); border: 0; }
[data-kit="mineral"] .step__num { border-radius: 0; background: var(--ink); color: var(--paper); clip-path: polygon(25% 0, 75% 0, 100% 50%, 75% 100%, 25% 100%, 0 50%); }
[data-kit="mineral"] .ticks li::before, [data-kit="mineral"] .caveats li::before { border-radius: 0; background: var(--mint); clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%); }
/* тёмный лист — графит с зелёным свечением снизу */
[data-kit="mineral"] [data-surface="deep"] {
  --surf: #141917; --dark: #0E1210;
  background: radial-gradient(80% 60% at 80% 110%, color-mix(in srgb, var(--mint) 24%, transparent), transparent 70%), #141917;
}
[data-kit="mineral"] [data-surface="deep"] :is(.tile, .inci, .stage__step, .product, .myth__side, .buy__menu, .voice) { background: rgba(255, 255, 255, .06); color: var(--ink); }
[data-kit="mineral"] [data-seam] { box-shadow: none; }
/* плашка-призыв: графитовая огранка с мятной кромкой */
[data-kit="mineral"] .cta { background: #141917; color: #EEF2EE; --ink: #EEF2EE; --ink-muted: rgba(230, 238, 232, .75); border-left: 4px solid var(--mint); }
[data-kit="mineral"] .cta__text { color: #EEF2EE; }
/* кнопки: огранённая плитка; мятная стрелка; под пальцем заливается мятой */
[data-kit="mineral"] .btn--dark, [data-kit="mineral"] .btn--accent {
  border: 0; border-radius: 0; font-weight: 700;
  clip-path: polygon(12px 0, 100% 0, 100% calc(100% - 12px), calc(100% - 12px) 100%, 0 100%, 0 12px);
  transition: background-color .3s var(--ease), color .3s var(--ease);
}
[data-kit="mineral"] .btn--dark { background: #161A18; color: #F2F5F1; }
[data-kit="mineral"] .btn--accent, [data-kit="mineral"] [data-surface="deep"] .btn--dark, [data-kit="mineral"] .cta .btn--dark { background: var(--mint); color: #0E1512; }
[data-kit="mineral"] .btn:hover { background: var(--mint); color: #0E1512; }
[data-kit="mineral"] .btn--pulse { animation: none; }
[data-kit="mineral"] .btn--dark::after, [data-kit="mineral"] .btn--accent::after { content: none; }
[data-kit="mineral"] .progress { background: var(--mint); }
[data-kit="mineral"] .foot { background: #0E1210; }
/* компьютер: заголовок главы в узкой левой колонке — мельче, чтобы не залезал в текст справа (20.10: наезжал) */
@media (min-width: 900px) {
  [data-kit="mineral"] h1 { font-size: clamp(2.6rem, 4.6vw, 4.4rem); }
  [data-kit="mineral"] .block__head h2 { font-size: clamp(1.8rem, 2.6vw, 2.6rem); overflow-wrap: anywhere; hyphens: auto; }
}
/* «Минерал»: осколки — позади текста; на телефоне только два, у краёв (19.10: наезжали на заголовок) */
.mi-shard { z-index: -1; opacity: .85; }
@media (max-width: 899px) {
  .mi-shard { width: calc(var(--s) * 22px); left: auto; right: calc(100% - var(--x) - 10px); }
  .mi-shard:nth-of-type(2) { left: auto; right: 2%; top: 1%; }
  .mi-shard:nth-of-type(3) { left: 2%; right: auto; top: 2%; }

}
/* «Минерал»: плашка шага поверх клипа на тёмном листе — плотный графит, иначе светлый текст тонет в светлом кадре */
[data-kit="mineral"] [data-surface="deep"] .stage__step { background: rgba(18, 23, 21, .92); }
[data-kit="mineral"] [data-surface="paper"] .stage__step, [data-kit="mineral"] [data-surface="sand"] .stage__step { background: rgba(246, 244, 239, .95); }
/* «Минерал»: реплики людей — все на светлом камне тёмным текстом; общий вид через одну красил их светлым по светлому */
[data-kit="mineral"] .voice, [data-kit="mineral"] .voice:nth-child(even), [data-kit="mineral"] .voice:nth-child(4n+3) {
  background: color-mix(in srgb, #fff 60%, var(--surf)); color: var(--ink);
}
[data-kit="mineral"] .voice:nth-child(even) { background: color-mix(in srgb, var(--mint) 18%, var(--surf)); }
[data-kit="mineral"] [data-surface="deep"] .voice { background: rgba(255, 255, 255, .07); color: var(--ink); }
[data-kit="mineral"] [data-surface="accent"] .eyebrow { color: #0E1512; }

/* ===== Своё движение у каждого блока (владелец 20.10.2026: «механика блоков одна и та же»).
   --in от 0 до 1 — насколько картинка блока вошла в экран (ставит site.js). Без скрипта и при «меньше движения»
   всё стоит на месте: правила только под .js-motion. ===== */
/* панорама: широкий кадр проезжает от левого края к середине — на телефоне видна вся сцена, остановка на главном предмете в центре */
.js-motion [data-move="pan"] .media :is(.media__video, .media__img) { object-position: calc(var(--in, 1) * 50%) 50%; }
/* диафрагма: картинка открывается из круга */
.js-motion [data-move="iris"] .media :is(.media__video, .media__img) { clip-path: circle(calc(18% + var(--in, 1) * 72%) at 50% 50%); }
/* наезд: кадр начинается крупно и отъезжает */
.js-motion [data-move="zoom"] .media :is(.media__video, .media__img) { transform: scale(calc(1.45 - var(--in, 1) * .45)); }
/* шторка: картинка открывается слева направо, косым срезом */
.js-motion [data-move="wipe"] .media :is(.media__video, .media__img) {
  clip-path: polygon(0 0, calc(var(--in, 1) * 130%) 0, calc(var(--in, 1) * 130% - 30%) 100%, 0 100%);
}
/* подъём: картинка выезжает снизу с лёгким наклоном назад */
.js-motion [data-move="rise"] .media { perspective: 1200px; }
.js-motion [data-move="rise"] .media :is(.media__video, .media__img) {
  transform: translateY(calc((1 - var(--in, 1)) * 60px)) rotateX(calc((1 - var(--in, 1)) * 14deg)) scale(calc(1.08 - var(--in, 1) * .08));
  transform-origin: 50% 100%;
}
/* увеличенный кадр («наезд», «подъём») не вылезает за рамку картинки на текст */
.js-motion [data-move] .media { overflow: hidden; }

/* ===== Мини-кнопка к товару внутри мифов и источников (владелец 20.10.2026: «аккуратные вставочки» в длинных списках).
   Небольшая капсула: вырезка товара, текст подводки, стрелка. Цвета — от облика: тёмная капсула, светлый текст. ===== */
.minibuy { list-style: none; display: flex; justify-content: center; margin: clamp(10px, 2vw, 18px) 0; grid-column: 1 / -1; }
.minibuy__link {
  display: inline-flex; align-items: center; gap: .7em; min-height: 48px;
  padding: .45em 1.2em .45em .5em; border-radius: 999px;
  background: var(--ink); color: var(--paper); text-decoration: none;
  font-family: var(--font); font-weight: 600; font-size: .95rem; letter-spacing: -.005em;
  box-shadow: 0 14px 30px -18px rgba(0, 0, 0, .55);
  transition: transform .3s var(--ease), box-shadow .3s var(--ease);
}
.minibuy__link:hover { transform: translateY(-2px); box-shadow: 0 20px 36px -18px rgba(0, 0, 0, .6); }
.minibuy__img { width: 40px; height: 40px; object-fit: contain; border-radius: 50%; background: rgba(255, 255, 255, .9); padding: 3px; }
.minibuy .btn__arrow { color: var(--accent); }
[data-surface="deep"] .minibuy__link { background: var(--accent); color: #14100A; }
[data-surface="deep"] .minibuy .btn__arrow { color: inherit; }
/* у мифов на ночном листе «Минерала» и «Аурума» — светлая кромка, чтобы капсула не терялась */
[data-kit="mineral"] .minibuy__link { border-radius: 0; clip-path: polygon(12px 0, 100% 0, 100% calc(100% - 12px), calc(100% - 12px) 100%, 0 100%, 0 12px); }

/* «Аурум», правка владельца 20.10.2026 (первый экран на телефоне): «никакой берёзы не увидел», «текст плохо читается,
   какие-то капсулы». Клип с берёзой — верхние две трети экрана без плотной вуали, текст ниже; под абзацем — тёмное стекло;
   капсулы только у верхнего края, над текстом их нет. */
/* вторая и третья правки 20.10: «текст съехал вниз», затем «слишком высоко» — заголовок с четверти экрана; берёза снова фон
   во весь первый экран под лёгким тоном, заголовок сразу под шапкой, абзац на тонированной подложке */
@media (max-width: 899px) {
  [data-kit="aurum"] .hero { align-content: start; }
  [data-kit="aurum"] .hero__media { transform: none; bottom: auto; height: 100svh; }
  [data-kit="aurum"] .hero .media.hero__media::after {
    background: linear-gradient(180deg, color-mix(in srgb, var(--night) 66%, transparent) 0%,
      color-mix(in srgb, var(--night) 58%, transparent) 45%, color-mix(in srgb, var(--night) 72%, transparent) 75%, var(--night) 100%);
  }
  [data-kit="aurum"] .hero .au-num { text-shadow: 0 1px 2px var(--night), 0 0 22px var(--night); }
  [data-kit="aurum"] .hero__text { padding-top: 26svh; }
  [data-kit="aurum"] .hero h1 { text-shadow: 0 2px 18px color-mix(in srgb, var(--night) 85%, transparent); }
  [data-kit="aurum"] .au-orb { opacity: .3; }
}
[data-kit="aurum"] .hero .lead {
  padding: clamp(16px, 3vw, 22px) clamp(18px, 3.4vw, 26px);
  background: color-mix(in srgb, var(--night) 72%, transparent);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  border: 1px solid color-mix(in srgb, var(--gold) 18%, transparent);
  border-radius: 18px;
  color: var(--cream);
}
/* клип первого экрана — ровно один экран и на компьютере: блок с текстом выше окна, и клип во всю его высоту увеличивался вдвое */
[data-kit="aurum"] .hero__media { bottom: auto; height: 100svh; }

/* ===== «Гербарий» (herbarium): страница ХемоХИМ R00001 (23.10.2026, по правилу «Дизайн новой страницы товара»).
   Цвета упаковки: белая коробка, кирпично-терракотовый акцент, графитовые рисунки трав; тёмный лист — цвет самого экстракта.
   Первый экран — тёмный экстракт, от капли расходятся круги; травы рисуются пером, когда блок входит в экран;
   вертикальная надпись на полях; книжные заголовки, последнее слово — наклонное терракотовое. ===== */
body:has(.page[data-kit="herbarium"]) { background: #FAF6F1; }
[data-kit="herbarium"] {
  --terra: var(--accent);
  --amber: var(--second);
  --r-panel: 6px; --r-card: 4px;
  --section: clamp(84px, 13vh, 170px);
}
[data-kit="herbarium"] :is(h1, h2) { font-weight: 500; letter-spacing: -.02em; line-height: 1.02; }
[data-kit="herbarium"] h1 { font-size: clamp(2.4rem, 8vw, 4.6rem); }
[data-kit="herbarium"] h2 { font-size: clamp(2rem, 7vw, 4.2rem); }
[data-kit="herbarium"] :is(h1, h2) .w:last-child { font-style: italic; color: var(--accent-ink); }
[data-kit="herbarium"] .eyebrow { font-weight: 600; letter-spacing: .24em; text-transform: uppercase; font-size: .72rem; color: var(--accent-ink); }
[data-kit="herbarium"] .eyebrow::before { width: 22px; height: 1px; border-radius: 0; background: currentColor; }
/* первый экран: тёмный экстракт и круги от капли */
[data-kit="herbarium"] .phero {
  position: relative; isolation: isolate; overflow: clip;
  background: radial-gradient(120% 90% at 70% 40%, #4A2A17 0%, var(--dark) 62%); color: #F6EDE4;
  --ink: #F6EDE4; --ink-muted: rgba(246, 237, 228, .74); --line: rgba(246, 237, 228, .16); --accent-ink: #F2A08E;
}
.hb-drop { position: absolute; z-index: -1; left: 70%; top: 46%; width: 0; height: 0; pointer-events: none; }
.hb-drop i {
  position: absolute; left: 0; top: 0; width: 120vmin; aspect-ratio: 1; translate: -50% -50%; border-radius: 50%;
  border: 1px solid color-mix(in srgb, var(--amber) 60%, transparent); opacity: .25; scale: .5;
}
.js-motion .hb-drop i { opacity: 0; animation: hb-ripple 9s cubic-bezier(.2, .6, .3, 1) calc(var(--k) * -2.25s) infinite; }
@keyframes hb-ripple { 0% { scale: .08; opacity: .9; } 100% { scale: 1; opacity: .01; } }
@media (max-width: 899px) { .hb-drop { left: 50%; top: 30%; } }
[data-kit="herbarium"] .phero__media, [data-kit="herbarium"] .phero__media.media { background: none; box-shadow: none !important; overflow: visible; }
[data-kit="herbarium"] .phero__media :is(.media__img, .media__video) { filter: drop-shadow(0 40px 50px rgba(0, 0, 0, .55)); }
[data-kit="herbarium"] .phero .buy__menu { background: #FAF6F1; color: #2A2320; }
/* травы пером: тонкая графитовая линия рисуется, когда блок входит в экран */
.hb-herb { position: absolute; z-index: 0; width: clamp(120px, 20vw, 250px); height: auto; pointer-events: none; color: color-mix(in srgb, var(--ink) 50%, transparent); }
.hb-herb--l { left: -1vw; bottom: 3%; }
.hb-herb--r { right: -1vw; top: 5%; transform: scaleX(-1); }
.hb-herb :is(path, circle) { fill: none; stroke: currentColor; stroke-width: 1.3; stroke-linecap: round; stroke-linejoin: round; }
.hb-herb circle { fill: color-mix(in srgb, var(--accent) 22%, transparent); }
.js-motion .hb-herb :is(path, circle) { stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 2.6s cubic-bezier(.4, .1, .2, 1) calc(var(--d, 0) * .15s); }
.js-motion .is-drawn .hb-herb :is(path, circle) { stroke-dashoffset: 0; }
[data-kit="herbarium"] .psec { position: relative; isolation: isolate; overflow: clip; }
[data-kit="herbarium"] .psec > .wrap { position: relative; z-index: 1; }
[data-kit="herbarium"] [data-surface="deep"] { background: linear-gradient(180deg, #2E1C12, var(--dark)); }
[data-kit="herbarium"] [data-surface="deep"] .hb-herb { color: rgba(246, 237, 228, .32); }
/* вертикальная надпись на полях: имя товара и травы, плывёт против прокрутки */
.hb-margin {
  position: fixed; z-index: 5; left: 12px; top: 50%; writing-mode: vertical-rl; rotate: 180deg;
  font-size: .68rem; letter-spacing: .42em; text-transform: uppercase; color: #A53E26; mix-blend-mode: multiply;
  pointer-events: none; white-space: nowrap; opacity: .75;
  transform: translateY(calc(-50% + var(--sy, 0) * .05px));
}
@media (max-width: 899px) { .hb-herb { width: 32vw; opacity: .55; } }
/* карточки — листы гербария: тонкая внутренняя рамка, тень бумаги */
[data-kit="herbarium"] :is(.tile, .inci) {
  border-radius: 2px; background: #FFFDFA; box-shadow: 0 1px 0 rgba(0, 0, 0, .04), 0 18px 30px -24px rgba(60, 30, 10, .4);
  outline: 1px solid color-mix(in srgb, var(--ink) 12%, transparent); outline-offset: -8px;
}
[data-kit="herbarium"] [data-surface="deep"] :is(.tile, .inci) { background: color-mix(in srgb, #fff 6%, var(--dark)); outline-color: rgba(246, 237, 228, .14); }
[data-kit="herbarium"] .media { border-radius: 2px; }
[data-kit="herbarium"] .psec__media { box-shadow: 0 30px 60px -40px rgba(60, 25, 5, .55); }
[data-kit="herbarium"] [data-seam] { box-shadow: none; }
[data-kit="herbarium"] .ticks li::before, [data-kit="herbarium"] .caveats li::before { background: var(--accent); border-radius: 0; }
/* кнопка: кирпичный прямоугольник (белый текст на #B4452D — контраст 5,3:1) */
[data-kit="herbarium"] .btn--dark {
  border: 0; border-radius: 2px; background: #B4452D; color: #fff; font-weight: 600; letter-spacing: .02em;
  box-shadow: 0 16px 34px -18px rgba(180, 69, 45, .9);
  transition: background-color .3s var(--ease), transform .3s var(--ease);
}
[data-kit="herbarium"] .btn--dark:hover { background: #8F3522; transform: translateY(-2px); }
[data-kit="herbarium"] .btn--pulse { animation: none; }
[data-kit="herbarium"] .foot { background: var(--dark); }

/* ===== «Позолота» (gilt): страница зубных щёток R00510 (23.10.2026, по правилу «Дизайн новой страницы товара»).
   Цвета упаковки: белая коробка, голубой atomy, золото щетины, прозрачные ручки четырёх цветов.
   Лупа над щетиной в первом экране; верх блоков — ряд тонких щетинок с золотыми кончиками, встают при прокрутке;
   стеклянные пятна цветов ручек; плотный гротеск. ===== */
body:has(.page[data-kit="gilt"]) { background: #FFFFFF; }
[data-kit="gilt"] {
  --sky: var(--accent);
  --gold: var(--second);
  --r-panel: 28px; --r-card: 20px;
  --section: clamp(84px, 13vh, 170px);
}
[data-kit="gilt"] :is(h1, h2) { font-family: var(--font); font-weight: 700; letter-spacing: -.035em; line-height: .98; }
[data-kit="gilt"] h1 { font-size: clamp(2.4rem, 8vw, 4.8rem); }
[data-kit="gilt"] h2 { font-size: clamp(2rem, 7.4vw, 4.4rem); }
[data-kit="gilt"] .eyebrow { font-weight: 700; letter-spacing: .16em; text-transform: uppercase; font-size: .72rem; color: var(--accent-ink); }
[data-kit="gilt"] .eyebrow::before { width: 4px; height: 14px; border-radius: 2px; background: linear-gradient(180deg, var(--gold) 0 40%, var(--sky) 40%); }
/* первый экран: стеклянные пятна цветов ручек и лупа над щетиной */
[data-kit="gilt"] .phero { position: relative; isolation: isolate; overflow: clip; }
.gi-glass { position: absolute; z-index: -2; inset: 0; pointer-events: none; }
.gi-glass i {
  position: absolute; left: var(--x); top: var(--y); width: var(--s); aspect-ratio: 1; border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, rgba(255, 255, 255, .9), var(--c) 55%, transparent 72%); opacity: .5; filter: blur(16px);
}
.js-motion .gi-glass i { animation: gi-drift calc(9s + var(--k) * 2s) ease-in-out calc(var(--k) * -1.7s) infinite alternate; }
@keyframes gi-drift { from { transform: translate(0, 0); } to { transform: translate(18px, -22px); } }
[data-kit="gilt"] .phero__media { position: relative; }
.gi-lens {
  position: absolute; z-index: 3; left: calc(var(--lx, 50) * 1%); top: calc(var(--ly, 30) * 1%);
  width: clamp(110px, 15vw, 180px); aspect-ratio: 1; translate: -50% -50%; border-radius: 50%;
  background-color: #fff; background-repeat: no-repeat;
  box-shadow: 0 0 0 3px #fff, 0 0 0 5px var(--gold), 0 24px 40px -18px rgba(14, 36, 51, .55);
  pointer-events: none;
}
.js-motion .gi-lens { opacity: 0; transition: opacity .4s var(--ease); }
.js-motion .gi-lens.is-on { opacity: 1; }
/* ряд щетинок с золотыми кончиками — один раз, на стыке первого экрана и первого блока (владелец 23.10.2026:
   «нравится», но под каждым блоком — слишком много); встаёт, когда блок входит в экран, и медленно едет влево */
[data-kit="gilt"] .psec { position: relative; }
[data-kit="gilt"] .phero { padding-bottom: calc(var(--section, 80px) * .5 + 28px); }
[data-kit="gilt"] .phero + .psec::before {
  content: ""; position: absolute; z-index: 2; left: 0; right: 0; top: -20px; height: 20px; pointer-events: none;
  background: linear-gradient(180deg, var(--gold) 0 5px, color-mix(in srgb, var(--sky) 55%, #fff) 5px);
  -webkit-mask: repeating-linear-gradient(90deg, transparent 0 5px, #000 5px 7px); mask: repeating-linear-gradient(90deg, transparent 0 5px, #000 5px 7px);
  transform-origin: bottom;
}
.js-motion [data-kit="gilt"] .phero + .psec::before {
  transform: scaleY(.1); transition: transform 1.1s cubic-bezier(.3, 1.6, .5, 1);
  animation: gi-comb 14s linear infinite;
}
.js-motion [data-kit="gilt"] .phero + .psec.is-drawn::before { transform: scaleY(1); }
@keyframes gi-comb { to { -webkit-mask-position: -140px 0; mask-position: -140px 0; } }
[data-kit="gilt"] [data-seam] { box-shadow: none; }
[data-kit="gilt"] [data-surface="deep"] { background: linear-gradient(180deg, #10293A, var(--dark)); }
[data-kit="gilt"] .media { border-radius: var(--r-panel); }
[data-kit="gilt"] .psec__media { box-shadow: 0 30px 70px -45px rgba(5, 110, 170, .55); }
[data-kit="gilt"] :is(.tile, .inci) {
  border-radius: 20px; background: linear-gradient(160deg, #fff, color-mix(in srgb, var(--sky) 7%, #fff));
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--sky) 22%, transparent), 0 20px 40px -32px rgba(5, 110, 170, .5);
}
[data-kit="gilt"] [data-surface="deep"] :is(.tile, .inci) { background: rgba(255, 255, 255, .06); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .14); }
[data-kit="gilt"] .ticks li::before, [data-kit="gilt"] .caveats li::before { background: var(--gold); }
/* кнопка: тёмная капсула с золотой кромкой снизу, как кончики щетины */
[data-kit="gilt"] .btn--dark {
  border: 0; border-radius: 999px; background: var(--dark); color: #fff; font-weight: 700;
  box-shadow: inset 0 -3px 0 var(--gold), 0 18px 36px -18px rgba(14, 36, 51, .7);
  transition: background-color .3s var(--ease), transform .3s var(--ease);
}
[data-kit="gilt"] .btn--dark:hover { background: var(--accent-ink); transform: translateY(-2px); }
[data-kit="gilt"] [data-surface="deep"] .btn--dark { background: #fff; color: var(--dark); }
[data-kit="gilt"] .btn--pulse { animation: none; }
[data-kit="gilt"] .foot { background: var(--dark); }

/* «Гербарий», «Позолота», «Голубика», «Куркума», «Палитра», «Корни»: вращается сам товар — вырезка без фона, без подложки и рамки
   (владелец 23.10.2026: белый квадрат фото, крутящийся вместе с товаром, смотрится плохо) */
[data-kit="herbarium"] .media--spin, [data-kit="gilt"] .media--spin,
[data-kit="berry"] .media--spin, [data-kit="kurkuma"] .media--spin,
[data-kit="palette"] .media--spin, [data-kit="roots"] .media--spin {
  border-radius: 0; background: none; box-shadow: none !important; overflow: visible; outline: 0;
}
[data-kit="herbarium"] .media--spin .media__img, [data-kit="gilt"] .media--spin .media__img,
[data-kit="berry"] .media--spin .media__img, [data-kit="kurkuma"] .media--spin .media__img,
[data-kit="palette"] .media--spin .media__img, [data-kit="roots"] .media--spin .media__img {
  object-fit: contain; filter: drop-shadow(0 26px 30px rgba(40, 20, 5, .28));
}

/* ===== «Голубика» (berry): страница Атоми Железо R04015 (23.10.2026, по правилу «Дизайн новой страницы товара»).
   Цвета упаковки: белая коробка, сиреневый, розовый порошок. Первый экран — сиреневый лист, сверху сыплются
   крупинки порошка; за коробкой огромные контурные буквы Fe заливаются сиреневым по мере прокрутки (--fill ставит скрипт). ===== */
body:has(.page[data-kit="berry"]) { background: #FBF8FD; }
[data-kit="berry"] {
  --lilac: var(--accent);
  --powder: var(--second);
  --r-panel: 32px; --r-card: 24px;
  --section: clamp(84px, 13vh, 170px);
}
[data-kit="berry"] :is(h1, h2) { font-family: var(--font); font-weight: 800; letter-spacing: -.04em; line-height: .98; }
[data-kit="berry"] h1 { font-size: clamp(2.4rem, 8vw, 4.8rem); }
[data-kit="berry"] h2 { font-size: clamp(2rem, 7.2vw, 4.3rem); }
[data-kit="berry"] :is(h1, h2) .w:last-child { color: var(--accent-ink); }
[data-kit="berry"] .eyebrow { font-weight: 700; letter-spacing: .14em; text-transform: uppercase; font-size: .72rem; color: var(--accent-ink); }
[data-kit="berry"] .eyebrow::before { width: 10px; height: 10px; border-radius: 50%; background: var(--powder); box-shadow: 6px -4px 0 -2px var(--lilac); }
[data-kit="berry"] .phero {
  position: relative; isolation: isolate; overflow: clip;
  background: radial-gradient(90% 70% at 72% 30%, #EBDDF5 0%, #F6F0FA 55%, #FBF8FD 100%);
}
[data-kit="berry"] .phero__media, [data-kit="berry"] .phero__media.media { background: none; box-shadow: none !important; overflow: visible; }
/* в первом экране — вырезка товара без фона: за ней видны буквы Fe (клип с белым фоном закрывал их квадратом) */
[data-kit="berry"] .phero__media :is(.media__img, .media__video) { object-fit: contain; filter: drop-shadow(0 34px 40px rgba(80, 40, 110, .28)); }
/* вырезка в первом экране: без раскрытия по clip-path (срезало бы орбиту и буквы) и без блика (он шёл бы прямоугольником по прозрачному) */
[data-kit="berry"] .phero__media, [data-kit="kurkuma"] .phero__media { isolation: auto; }
.js-motion [data-kit="berry"] .phero__media, .js-motion [data-kit="kurkuma"] .phero__media { animation: none; clip-path: none; }
.js-motion [data-kit="berry"] .phero__media::after, .js-motion [data-kit="kurkuma"] .phero__media::after { content: none; }
/* огромные буквы Fe: контур сиреневый, заливка поднимается снизу (--fill от 0 до 1) */
.be-fe {
  position: absolute; z-index: -1; right: 1vw; top: 0;
  font-family: var(--font); font-weight: 900; font-size: clamp(14rem, 34vw, 30rem); line-height: .8; letter-spacing: -.06em;
  color: transparent; -webkit-text-stroke: 2px color-mix(in srgb, var(--lilac) 55%, transparent);
  background: linear-gradient(0deg, color-mix(in srgb, var(--lilac) 34%, transparent) calc(var(--fill, 1) * 100%), transparent calc(var(--fill, 1) * 100%));
  -webkit-background-clip: text; background-clip: text;
  pointer-events: none; user-select: none;
}
@media (max-width: 899px) { .be-fe { top: 2%; right: -4vw; font-size: 60vw; } }
/* крупинки порошка: падают сверху, розовые и сиреневые */
.be-grains { position: absolute; z-index: -1; inset: 0; pointer-events: none; overflow: hidden; }
.be-grains i {
  position: absolute; left: var(--x); top: var(--y); width: var(--s); aspect-ratio: 1; border-radius: 40% 60% 55% 45%;
  background: var(--c); opacity: .7;
}
.js-motion .be-grains i { top: -4%; animation: be-fall var(--t) linear var(--d) infinite; }
@keyframes be-fall { from { transform: translate(0, 0) rotate(0); } to { transform: translate(var(--dx), 110vh) rotate(260deg); } }
[data-kit="berry"] .psec { position: relative; }
[data-kit="berry"] [data-seam] { box-shadow: none; }
[data-kit="berry"] [data-surface="deep"] { background: linear-gradient(180deg, #3A2249, var(--dark)); }
[data-kit="berry"] .media { border-radius: var(--r-panel); }
[data-kit="berry"] .psec__media { box-shadow: 0 30px 70px -45px rgba(110, 63, 143, .55); }
[data-kit="berry"] :is(.tile, .inci) {
  border-radius: 24px; background: linear-gradient(160deg, #fff, color-mix(in srgb, var(--lilac) 8%, #fff));
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--lilac) 20%, transparent), 0 20px 40px -32px rgba(110, 63, 143, .5);
}
[data-kit="berry"] [data-surface="deep"] :is(.tile, .inci) { background: rgba(255, 255, 255, .06); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .14); }
[data-kit="berry"] .ticks li::before, [data-kit="berry"] .caveats li::before { background: var(--lilac); border-radius: 50%; }
/* кнопка: сливовая капсула (белый текст на #6E3F8F — контраст 7,6:1) */
[data-kit="berry"] .btn--dark {
  border: 0; border-radius: 999px; background: #6E3F8F; color: #fff; font-weight: 700;
  box-shadow: 0 18px 36px -18px rgba(110, 63, 143, .8);
  transition: background-color .3s var(--ease), transform .3s var(--ease);
}
[data-kit="berry"] .btn--dark:hover { background: #57306F; transform: translateY(-2px); }
[data-kit="berry"] [data-surface="deep"] .btn--dark { background: #fff; color: var(--dark); }
[data-kit="berry"] .btn--pulse { animation: none; }
[data-kit="berry"] .foot { background: var(--dark); }

/* ===== «Куркума» (kurkuma): страница Атоми Турмацин МСМ R00185 (23.10.2026, по правилу «Дизайн новой страницы товара»).
   Цвета упаковки: белая коробка, золото куркумы, бронза и шоколад таблетки TMC, белая таблетка MSM.
   Первый экран — тёплый камень с золотым светом, вокруг товара по орбите ходят две таблетки; на стыке первого экрана —
   бронзовая лента с бегущими названиями составляющих (ставит скрипт, один раз на страницу). ===== */
body:has(.page[data-kit="kurkuma"]) { background: #FAF8F4; }
[data-kit="kurkuma"] {
  --gold: var(--accent);
  --bronze: #7D5B2E;
  --r-panel: 14px; --r-card: 10px;
  --section: clamp(84px, 13vh, 170px);
}
[data-kit="kurkuma"] :is(h1, h2) { font-weight: 500; letter-spacing: -.02em; line-height: 1.02; }
[data-kit="kurkuma"] h1 { font-size: clamp(2.4rem, 8vw, 4.6rem); }
[data-kit="kurkuma"] h2 { font-size: clamp(2rem, 7vw, 4.2rem); }
[data-kit="kurkuma"] :is(h1, h2) .w:last-child { font-style: italic; color: var(--accent-ink); }
[data-kit="kurkuma"] .eyebrow { font-weight: 600; letter-spacing: .22em; text-transform: uppercase; font-size: .72rem; color: var(--accent-ink); }
[data-kit="kurkuma"] .eyebrow::before { width: 16px; height: 7px; border-radius: 4px; background: linear-gradient(90deg, var(--bronze) 50%, #E9E6E0 50%); }
[data-kit="kurkuma"] .phero {
  position: relative; isolation: isolate; overflow: clip;
  background: radial-gradient(80% 70% at 70% 40%, #F6E7C4 0%, #F4EEE3 50%, #FAF8F4 100%);
}
[data-kit="kurkuma"] .phero__media, [data-kit="kurkuma"] .phero__media.media { position: relative; background: none; box-shadow: none !important; overflow: visible; }
/* в первом экране — вырезка товара без фона, вокруг неё орбита таблеток */
[data-kit="kurkuma"] .phero__media :is(.media__img, .media__video) { position: relative; z-index: 1; object-fit: contain; filter: drop-shadow(0 34px 40px rgba(90, 60, 20, .28)); }
/* орбита двух таблеток вокруг товара: тёмная TMC и белая MSM */
.ku-orbit { position: absolute; z-index: 2; inset: 4%; pointer-events: none; }
.ku-orbit__ring { position: absolute; inset: 0; border-radius: 50%; border: 1px dashed color-mix(in srgb, var(--gold) 45%, transparent); }
.ku-pill {
  position: absolute; left: 50%; top: 0; width: clamp(54px, 7vw, 84px); aspect-ratio: 2.3; translate: -50% -50%; border-radius: 999px;
  display: grid; place-items: center; font: 700 clamp(.6rem, .9vw, .8rem)/1 var(--font); letter-spacing: .12em;
  box-shadow: inset 0 -5px 8px rgba(0, 0, 0, .18), 0 12px 20px -10px rgba(60, 35, 10, .5);
}
.ku-pill--tmc { background: radial-gradient(circle at 35% 30%, #9A7444, #4C3015 75%); color: rgba(255, 236, 200, .55); }
.ku-pill--msm { top: 100%; background: radial-gradient(circle at 35% 30%, #fff, #E4E2DE 80%); color: rgba(120, 110, 95, .55); }
.js-motion .ku-orbit { animation: ku-spin 22s linear infinite; }
.js-motion .ku-pill { animation: ku-spin 22s linear infinite reverse; }
@keyframes ku-spin { to { rotate: 360deg; } }
/* лента на стыке: бронза, золотые слова бегут влево */
.ku-ribbon {
  position: relative; z-index: 3; margin-top: -26px; rotate: -1.6deg; overflow: hidden;
  background: linear-gradient(90deg, #4C3015, #7D5B2E 50%, #4C3015); color: #F2D48C;
  padding: 12px 0; box-shadow: 0 18px 30px -20px rgba(60, 35, 10, .7);
}
.ku-ribbon__line { display: flex; width: max-content; white-space: nowrap; font: 600 clamp(.9rem, 1.6vw, 1.15rem)/1 var(--font); letter-spacing: .18em; text-transform: uppercase; }
.ku-ribbon__line span { padding-right: 2.2em; }
.js-motion .ku-ribbon__line { animation: ku-run 26s linear infinite; }
@keyframes ku-run { to { transform: translateX(-50%); } }
[data-kit="kurkuma"] .psec { position: relative; }
[data-kit="kurkuma"] [data-seam] { box-shadow: none; }
[data-kit="kurkuma"] [data-surface="deep"] { background: linear-gradient(180deg, #3A2814, var(--dark)); }
[data-kit="kurkuma"] .media { border-radius: var(--r-panel); }
[data-kit="kurkuma"] .psec__media { box-shadow: 0 30px 60px -40px rgba(90, 60, 20, .55); }
[data-kit="kurkuma"] :is(.tile, .inci) {
  border-radius: 10px; background: #FFFEFB;
  box-shadow: inset 0 3px 0 var(--gold), 0 20px 36px -30px rgba(90, 60, 20, .55);
}
[data-kit="kurkuma"] [data-surface="deep"] :is(.tile, .inci) { background: rgba(255, 255, 255, .06); box-shadow: inset 0 3px 0 var(--gold), inset 0 0 0 1px rgba(255, 255, 255, .12); }
[data-kit="kurkuma"] .ticks li::before, [data-kit="kurkuma"] .caveats li::before { background: var(--gold); border-radius: 2px; }
/* кнопка: шоколадная плашка с золотой кромкой (белый текст на #5E3A1A — контраст 10:1) */
[data-kit="kurkuma"] .btn--dark {
  border: 0; border-radius: 10px; background: #5E3A1A; color: #fff; font-weight: 600; letter-spacing: .02em;
  box-shadow: inset 0 -3px 0 var(--gold), 0 16px 34px -18px rgba(70, 40, 10, .85);
  transition: background-color .3s var(--ease), transform .3s var(--ease);
}
[data-kit="kurkuma"] .btn--dark:hover { background: #4C3015; transform: translateY(-2px); }
[data-kit="kurkuma"] [data-surface="deep"] .btn--dark { background: #fff; color: var(--dark); }
[data-kit="kurkuma"] .btn--pulse { animation: none; }
[data-kit="kurkuma"] .foot { background: var(--dark); }

/* ===== «Палитра» (palette): страница теней Аделика Mood-on R00376 (23.10.2026, по правилу «Дизайн новой страницы товара»).
   Цвета оттенков: нюд, роза, тауп, шоколад. Первый экран — тёплый нюдовый лист, за палитрой кистью проходят мазки
   оттенков (проявляются слева направо), на них мерцают искры шиммера; книжные заголовки, последнее слово наклонное. ===== */
body:has(.page[data-kit="palette"]) { background: #FBF6F3; }
[data-kit="palette"] {
  --nude: var(--accent);
  --blush: var(--second);
  --r-panel: 22px; --r-card: 18px;
  --section: clamp(84px, 13vh, 170px);
}
[data-kit="palette"] :is(h1, h2) { font-weight: 400; letter-spacing: -.015em; line-height: 1.02; }
[data-kit="palette"] h1 { font-size: clamp(2.4rem, 8vw, 4.8rem); }
[data-kit="palette"] h2 { font-size: clamp(2rem, 7vw, 4.2rem); }
[data-kit="palette"] :is(h1, h2) .w:last-child { font-style: italic; color: var(--accent-ink); }
[data-kit="palette"] .eyebrow { font-weight: 600; letter-spacing: .2em; text-transform: uppercase; font-size: .72rem; color: var(--accent-ink); }
[data-kit="palette"] .eyebrow::before { width: 18px; height: 8px; border-radius: 8px 2px 8px 2px; background: linear-gradient(90deg, #DBB4AC, #9B6D5E, #583E36); }
[data-kit="palette"] .phero {
  position: relative; isolation: isolate; overflow: clip;
  background: radial-gradient(80% 70% at 70% 40%, #F3DED6 0%, #F8EEEA 50%, #FBF6F3 100%);
}
[data-kit="palette"] .phero__media, [data-kit="palette"] .phero__media.media { background: none; box-shadow: none !important; overflow: visible; isolation: auto; }
[data-kit="palette"] .phero__media :is(.media__img, .media__video) { object-fit: contain; filter: drop-shadow(0 34px 40px rgba(90, 50, 35, .28)); }
/* мазки оттенков: мазок кисти — вытянутая форма с рваным краем, проявляется слева направо */
.pa-strokes { position: absolute; z-index: -1; right: -4vw; top: 12%; width: min(62vw, 820px); pointer-events: none; rotate: -16deg; }
.pa-strokes i {
  display: block; height: clamp(34px, 5vw, 64px); margin-bottom: clamp(10px, 1.6vw, 20px); width: var(--w);
  margin-left: var(--l); border-radius: 60% 40% 55% 45% / 70% 40% 60% 30%;
  background: linear-gradient(90deg, color-mix(in srgb, var(--c) 40%, transparent), var(--c) 22%, var(--c) 80%, color-mix(in srgb, var(--c) 60%, transparent));
  box-shadow: inset 0 -6px 10px rgba(0, 0, 0, .06); opacity: .85;
}
.js-motion .pa-strokes i { clip-path: inset(0 100% 0 0 round 30px); animation: pa-paint 1.4s cubic-bezier(.6, .1, .2, 1) calc(.3s + var(--k) * .22s) forwards; }
@keyframes pa-paint { to { clip-path: inset(0 0 0 0 round 30px); } }
@media (max-width: 899px) { .pa-strokes { top: 4%; right: -20vw; width: 110vw; } }
/* искры шиммера: четырёхлучевые звёздочки мерцают по очереди */
.pa-glints { position: absolute; z-index: 0; inset: 0; pointer-events: none; }
.pa-glints i {
  position: absolute; left: var(--x); top: var(--y); width: var(--s); aspect-ratio: 1;
  background: radial-gradient(circle, #fff 0 18%, #F6D9A8 40%, transparent 70%);
  clip-path: polygon(50% 0, 60% 40%, 100% 50%, 60% 60%, 50% 100%, 40% 60%, 0 50%, 40% 40%);
  opacity: .8;
}
.js-motion .pa-glints i { animation: pa-twinkle 2.8s ease-in-out calc(var(--k) * -.7s) infinite; }
@keyframes pa-twinkle { 0%, 100% { transform: scale(.2) rotate(0); opacity: .2; } 50% { transform: scale(1) rotate(45deg); opacity: 1; } }
[data-kit="palette"] .psec { position: relative; }
[data-kit="palette"] [data-seam] { box-shadow: none; }
[data-kit="palette"] [data-surface="deep"] { background: linear-gradient(180deg, #4A3129, var(--dark)); }
[data-kit="palette"] .media { border-radius: var(--r-panel); }
[data-kit="palette"] .psec__media { box-shadow: 0 30px 60px -40px rgba(90, 50, 35, .5); }
[data-kit="palette"] :is(.tile, .inci) {
  border-radius: 18px; background: linear-gradient(160deg, #fff, #FBF0EC);
  box-shadow: inset 0 0 0 1px rgba(155, 109, 94, .18), 0 20px 36px -30px rgba(90, 50, 35, .5);
}
[data-kit="palette"] [data-surface="deep"] :is(.tile, .inci) { background: rgba(255, 255, 255, .06); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .14); }
[data-kit="palette"] .ticks li::before, [data-kit="palette"] .caveats li::before { background: var(--nude); border-radius: 50% 20%; }
/* кнопка: какао-капсула (белый текст на #5A3B31 — контраст 10:1) */
[data-kit="palette"] .btn--dark {
  border: 0; border-radius: 999px; background: #5A3B31; color: #fff; font-weight: 600;
  box-shadow: 0 16px 34px -18px rgba(90, 50, 35, .8);
  transition: background-color .3s var(--ease), transform .3s var(--ease);
}
[data-kit="palette"] .btn--dark:hover { background: #462D25; transform: translateY(-2px); }
[data-kit="palette"] [data-surface="deep"] .btn--dark { background: #fff; color: var(--dark); }
[data-kit="palette"] .btn--pulse { animation: none; }
[data-kit="palette"] .foot { background: var(--dark); }

/* ===== «Корни» (roots): страница набора Атоми Рут Вайтал R00629 (23.10.2026, по правилу «Дизайн новой страницы товара»).
   Цвета упаковки: белые флаконы и глубокий лесной зелёный. Первый экран — тёмно-зелёный лист, вокруг набора медленно
   вращается кольцо надписи; числа в заголовках карточек набегают от нуля, когда блок входит в экран (скрипт). ===== */
body:has(.page[data-kit="roots"]) { background: #F7F8F6; }
[data-kit="roots"] {
  --forest: var(--dark);
  --sage: var(--second);
  --r-panel: 4px; --r-card: 4px;
  --section: clamp(84px, 13vh, 170px);
}
[data-kit="roots"] :is(h1, h2) { font-family: var(--font); font-weight: 300; letter-spacing: -.035em; line-height: 1; }
[data-kit="roots"] :is(h1, h2) .w:last-child { font-weight: 700; }
[data-kit="roots"] h1 { font-size: clamp(2.4rem, 8vw, 4.8rem); }
[data-kit="roots"] h2 { font-size: clamp(2rem, 7vw, 4.3rem); }
[data-kit="roots"] .eyebrow { font-weight: 600; letter-spacing: .26em; text-transform: uppercase; font-size: .7rem; color: var(--accent-ink); }
[data-kit="roots"] .eyebrow::before { width: 2px; height: 16px; border-radius: 0; background: currentColor; }
[data-kit="roots"] .phero {
  position: relative; isolation: isolate; overflow: clip;
  background: radial-gradient(90% 80% at 70% 45%, #1B4A3C 0%, #0C3027 60%, #08231C 100%); color: #EEF3F0;
  --ink: #EEF3F0; --ink-muted: rgba(238, 243, 240, .74); --line: rgba(238, 243, 240, .16); --accent-ink: #A9C7B8;
}
[data-kit="roots"] .phero .eyebrow { color: #A9C7B8; }
[data-kit="roots"] .phero__media, [data-kit="roots"] .phero__media.media { position: relative; background: none; box-shadow: none !important; overflow: visible; isolation: auto; }
[data-kit="roots"] .phero__media :is(.media__img, .media__video) { position: relative; z-index: 1; object-fit: contain; filter: drop-shadow(0 34px 40px rgba(0, 0, 0, .45)); }
[data-kit="roots"] .phero .buy__menu { background: #F7F8F6; color: #13201C; }
/* кольцо надписи вокруг набора */
.ro-ring { position: absolute; z-index: 0; inset: -2%; pointer-events: none; color: rgba(169, 199, 184, .55); }
.ro-ring svg { width: 100%; height: 100%; overflow: visible; }
.ro-ring text { font: 600 4.2px/1 var(--font); letter-spacing: 1.6px; text-transform: uppercase; fill: currentColor; }
.ro-ring circle { fill: none; stroke: rgba(169, 199, 184, .22); stroke-width: .25; }
.js-motion .ro-ring svg { animation: ro-turn 48s linear infinite; }
@keyframes ro-turn { to { rotate: 360deg; } }
[data-kit="roots"] .psec { position: relative; }
[data-kit="roots"] [data-seam] { box-shadow: none; }
[data-kit="roots"] [data-surface="deep"] { background: linear-gradient(180deg, #123A2F, var(--dark)); }
[data-kit="roots"] .media { border-radius: var(--r-panel); }
[data-kit="roots"] .psec__media { box-shadow: 0 30px 60px -40px rgba(12, 48, 39, .55); }
[data-kit="roots"] :is(.tile, .inci) {
  border-radius: 4px; background: #fff;
  box-shadow: inset 3px 0 0 #2E7A62, 0 18px 34px -28px rgba(12, 48, 39, .5);
}
[data-kit="roots"] [data-surface="deep"] :is(.tile, .inci) { background: rgba(255, 255, 255, .05); box-shadow: inset 3px 0 0 var(--sage), inset 0 0 0 1px rgba(255, 255, 255, .1); }
[data-kit="roots"] .ticks li::before, [data-kit="roots"] .caveats li::before { background: var(--accent); border-radius: 0; }
/* кнопка: лесной прямоугольник (белый текст на #0C3027 — контраст 13:1) */
[data-kit="roots"] .btn--dark {
  border: 0; border-radius: 2px; background: #0C3027; color: #fff; font-weight: 600; letter-spacing: .04em;
  box-shadow: 0 16px 34px -18px rgba(12, 48, 39, .8);
  transition: background-color .3s var(--ease), transform .3s var(--ease);
}
[data-kit="roots"] .btn--dark:hover { background: #1F5A48; transform: translateY(-2px); }
[data-kit="roots"] :is(.phero, [data-surface="deep"]) .btn--dark { background: #fff; color: #0C3027; }
[data-kit="roots"] .btn--pulse { animation: none; }
[data-kit="roots"] .foot { background: var(--dark); }

/* «Палитра», «Корни»: вырезка в первом экране — без раскрытия по clip-path и блика (срезали бы мазки и кольцо) */
.js-motion [data-kit="palette"] .phero__media, .js-motion [data-kit="roots"] .phero__media { animation: none; clip-path: none; }
.js-motion [data-kit="palette"] .phero__media::after, .js-motion [data-kit="roots"] .phero__media::after { content: none; }

/* ===== Виды разделов страницы товара (поле "design", владелец 23.10.2026: «блоки однотипные, нужно
   разнообразие»). Сначала телефон, потом широкий экран. Соседние разделы вид не повторяют (check.py). ===== */
/* постер: яркая сцена во весь экран телефона, заголовок крупно лежит на ней */
.psec[data-design="poster"] { padding-top: 0; }
.poster { position: relative; margin-inline: calc(-1 * var(--gutter)); overflow: clip; }
.poster__media { aspect-ratio: 4 / 5; width: 100%; border-radius: 0; }
.poster__media :is(.media__img, .media__video) { object-fit: cover; }
.poster::after {
  content: ""; position: absolute; inset: 45% 0 0 0; pointer-events: none;
  background: linear-gradient(180deg, transparent, color-mix(in srgb, var(--dark) 85%, transparent));
}
/* .page[data-vitrina] … h2.poster__title — сильнее размера заголовков облика (.page[data-kit=…][data-vitrina] .psec h2 — равный перевес, а облик ниже в файле):
   облик «Лагуна» раздувал надпись постера до 74 px, и «кожи каждый день» уходило за низ сцены (снимок 1440, 30.10.2026);
   --ink белый — движения, которые красят буквы через --ink (soak), на фото тоже белые */
.psec .poster__title, .page[data-vitrina] .psec[data-design="poster"] h2.poster__title {
  --ink: #fff; position: absolute; z-index: 1; left: var(--gutter); right: var(--gutter); bottom: clamp(18px, 5vw, 44px);
  margin: 0; color: #fff; font-size: clamp(2.3rem, 11vw, 5.6rem); line-height: .95; letter-spacing: -.03em;
  text-shadow: 0 2px 24px rgb(0 0 0 / .35);
}
.psec .poster__title .w { color: #fff !important; }
.poster + .psec__body { margin-top: clamp(24px, 5vh, 48px); }
/* цветная полоса: раздел на цвете облика, пункты — крупные таблетки */
.psec[data-design="band"] { background: var(--accent-ink); color: #fff; --ink: #fff; --ink-muted: rgb(255 255 255 / .84); --line: rgb(255 255 255 / .3); }
.psec[data-design="band"] .eyebrow, .psec[data-design="band"] h2, .psec[data-design="band"] h2 .w { color: #fff !important; }
.psec[data-design="band"] h2 { font-size: clamp(2.2rem, 10vw, 5rem); line-height: .98; }
.band__grid { display: grid; gap: 22px; }
.psec__float { aspect-ratio: var(--ar, 1); width: min(78%, 420px); justify-self: center; background: none !important; box-shadow: none !important; border-radius: 0 !important; }
.psec__float .media__img { object-fit: contain; filter: drop-shadow(0 30px 34px rgb(0 0 0 / .35)); }
.chips { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; padding: 0; list-style: none; }
.chip {
  display: grid; gap: 2px; padding: 12px 18px; border-radius: 26px;
  background: rgb(255 255 255 / .14); box-shadow: inset 0 0 0 1px rgb(255 255 255 / .35);
  font-size: clamp(.95rem, 4vw, 1.15rem); line-height: 1.25;
}
.chip::before { content: none !important; }
.chip b { font-weight: 700; }
.chip__words { display: grid; gap: 2px; }
.chip--pic { grid-template-columns: 44px 1fr; align-items: center; gap: 12px; padding: 8px 18px 8px 8px; border-radius: 999px; }
.chip__media { width: 44px; aspect-ratio: 1; border-radius: 50%; box-shadow: 0 0 0 2px rgb(255 255 255 / .7); }
.chip--pic span span { font-size: .85em; opacity: .85; }
.chip:nth-child(3n+1) { background: #fff; color: var(--accent-ink); box-shadow: none; }
.psec[data-design="band"] .btn--dark { background: #fff; color: var(--accent-ink); }
/* карусель: карточки листаются пальцем вбок, край следующей виден — понятно, что дальше есть ещё */
.swipe {
  display: grid; grid-auto-flow: column; grid-auto-columns: 78%; gap: 12px;
  margin: 24px calc(-1 * var(--gutter)) 0; padding: 4px var(--gutter) 18px; list-style: none;
  overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: var(--gutter);
  overscroll-behavior-x: contain; scrollbar-width: none;
}
.swipe::-webkit-scrollbar { width: 0; height: 0; }
.card {
  position: relative; display: grid; align-content: start; gap: 10px; min-height: 220px; padding: 20px;
  border-radius: var(--r-card); scroll-snap-align: start;
  background: var(--paper); box-shadow: inset 0 0 0 1px var(--line), 0 24px 40px -32px color-mix(in srgb, var(--ink) 70%, transparent);
}
.card::before { content: none !important; }
.card:nth-child(3n+2) { background: color-mix(in srgb, var(--second) 45%, var(--paper)); }
.card:nth-child(3n) { background: var(--dark); color: #fff; box-shadow: none; }
.card:nth-child(3n) :is(h3, p) { color: #fff; }
.card__num { font-size: clamp(3rem, 15vw, 4.6rem); font-weight: 800; line-height: .9; letter-spacing: -.05em; color: var(--accent-ink); }
.card:nth-child(3n) .card__num { color: var(--second); }
.card__media { aspect-ratio: 1; width: 100%; border-radius: calc(var(--r-card) - 6px); }
.card__body { display: grid; gap: 8px; }
.card h3 { margin: 0; font-size: clamp(1.15rem, 5vw, 1.45rem); line-height: 1.15; }
.card p { margin: 0; font-size: clamp(.95rem, 4vw, 1.1rem); line-height: 1.4; color: var(--ink-muted); }
/* мозаика: одна большая карточка и маленькие рядом */
.mosaic__grid { display: grid; gap: 22px; }
.bento--mosaic { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 0; list-style: none; }
.bento--mosaic > :first-child { grid-column: 1 / -1; background: var(--accent-ink); color: #fff; box-shadow: none; }
.bento--mosaic > :first-child :is(h3, p) { color: #fff; }
.bento--mosaic > :first-child h3 { font-size: clamp(1.4rem, 6.4vw, 2rem); }
.bento--mosaic > :first-child .tile__media { width: 96px; }
.bento--mosaic .card { min-height: 0; }
/* линия шагов: шаги на вертикальной линии, линия заполняется по ходу прокрутки (--p ставит скрипт) */
.steps--line { position: relative; padding-left: 0; }
.steps--line::before, .steps--line::after {
  content: ""; position: absolute; left: 21px; top: 22px; bottom: 22px; width: 3px; border-radius: 3px; background: var(--line);
}
.steps--line::after { background: var(--accent-ink); transform-origin: top; transform: scaleY(var(--p, 1)); }
.steps--line .step { position: relative; z-index: 1; grid-template-columns: 46px 1fr; gap: 16px; border: 0; }
.steps--line .step__num { width: 46px; height: 46px; font-size: 1.15rem; background: var(--accent-ink); color: #fff; box-shadow: 0 0 0 6px var(--paper); }
/* цветные карточки фактов */
.facts--cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; border: 0; }
.facts--cards .fact { align-content: start; padding: 16px; border: 0; border-radius: var(--r-card); background: color-mix(in srgb, var(--second) 40%, var(--paper)); }
.facts--cards .fact:nth-child(4n+1), .facts--cards .fact:nth-child(4n) { background: var(--accent-ink); }
.facts--cards .fact:nth-child(4n) { background: var(--dark); }
.facts--cards .fact:is(:nth-child(4n+1), :nth-child(4n)) :is(dt, dd) { color: #fff; }
.facts--cards .fact dd { font-size: clamp(1.05rem, 4.4vw, 1.4rem); }
.facts--cards .fact :is(dt, dd) { color: #231915; }   /* светлая карточка — тёмные буквы и на тёмном листе облика */
.facts--cards .fact dt { opacity: .72; }
/* лента фото: листаются вбок */
.psec .shots--strip {
  grid-auto-flow: column; grid-auto-columns: 74%; margin-inline: calc(-1 * var(--gutter));
  padding: 4px var(--gutter) 14px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: var(--gutter); scrollbar-width: none;
}
.shots--strip::-webkit-scrollbar { width: 0; height: 0; }
.shots--strip .shot { scroll-snap-align: start; }
/* состав под раскрытием */
.fold { border-top: 3px solid var(--ink); border-bottom: 1px solid var(--line); }
.fold summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-block: 18px; cursor: pointer; list-style: none; }
.fold summary::-webkit-details-marker { display: none; }
.fold summary h2 { margin: 0; font-size: clamp(1.4rem, 6vw, 2.4rem); }
.fold__sign {
  flex: none; display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%;
  background: var(--accent-ink); color: #fff; font-size: 1.6rem; line-height: 1; transition: transform .3s var(--ease);
}
.fold[open] .fold__sign { transform: rotate(45deg); }
.fold .inci { margin-bottom: 22px; }
@media (min-width: 900px) {
  /* широкий экран: высокая сцена слева, слова и кнопка справа */
  .psec[data-design="poster"] { padding-top: clamp(44px, 8vh, 110px); }
  .psec[data-design="poster"] > .wrap { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); column-gap: 64px; align-items: center; }
  .psec[data-design="poster"] .poster { grid-row: 1 / span 2; width: min(100%, calc(80vh * .8)); margin-inline: 0; border-radius: var(--r-panel); }
  .psec[data-design="poster"] .poster__media { width: 100%; aspect-ratio: 4 / 5; }
  .psec .poster__title, .page[data-vitrina] .psec[data-design="poster"] h2.poster__title { left: 36px; right: 36px; bottom: 36px; font-size: clamp(2.6rem, 4.4vw, 4.6rem); }
  /* сцена прилипает к экрану, пока слова справа прокручиваются */
  .psec[data-design="poster"] .poster { align-self: start; position: sticky; top: calc(var(--top-h, 64px) + 4vh); }
  .poster + .psec__body { margin-top: 0; align-self: start; }
  .poster + .psec__body .prose { margin-left: 0; }
  .psec[data-design="poster"] .psec__buy { grid-column: 2; align-self: start; }
  .psec[data-design="band"] { padding-block: clamp(64px, 12vh, 140px); }
  .band__grid { grid-template-columns: 5fr 7fr; align-items: center; gap: 64px; }
  .band__grid > .psec__float { width: 100%; }
  .mosaic__grid { grid-template-columns: 4fr 7fr; align-items: center; gap: 56px; }
  .mosaic__grid .prose { margin-left: 0; }
  .bento--mosaic { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .bento--mosaic > :first-child { grid-column: span 2; grid-row: span 2; }
  .swipe { grid-auto-columns: calc((100% - 32px) / 3); gap: 16px; margin-inline: 0; padding-inline: 0; scroll-padding-inline: 0; }
  .facts--cards { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
  .psec .shots--strip { grid-template-columns: none; grid-auto-columns: 32%; margin-inline: 0; padding-inline: 0; scroll-padding-inline: 0; }
  .steps--line { margin-left: calc(100% / 12 * 4); }
}

/* ===== Единая конструкция страницы товара (облик с "flow": true, владелец 23.10.2026: «блоки просто выезжают
   один за другим, резкие линии, нет единого целого; много текста без иллюстраций; квадратные кнопки»).
   Один фон на всю страницу, листов и стыков нет; через границы разделов тянутся мягкие пятна цвета;
   у каждого текста — картинка; карточки и таблетки лежат прямо на фотографиях; кнопки — капсулы. ===== */
.page[data-flow] { --r-photo: clamp(24px, 6vw, 36px); overflow-x: clip; }
.page[data-flow] main {
  background:
    radial-gradient(70vw 34vh at 0% 6%, color-mix(in srgb, var(--second) 42%, transparent), transparent 70%),
    radial-gradient(80vw 40vh at 100% 20%, color-mix(in srgb, var(--accent) 16%, transparent), transparent 70%),
    radial-gradient(70vw 36vh at 0% 36%, color-mix(in srgb, var(--second) 38%, transparent), transparent 70%),
    radial-gradient(80vw 40vh at 100% 52%, color-mix(in srgb, var(--second) 34%, transparent), transparent 70%),
    radial-gradient(70vw 36vh at 0% 68%, color-mix(in srgb, var(--accent) 14%, transparent), transparent 70%),
    radial-gradient(80vw 40vh at 100% 86%, color-mix(in srgb, var(--second) 36%, transparent), transparent 70%),
    var(--paper);
}
.page[data-flow] .psec { padding-block: clamp(30px, 6vh, 80px); background: none; box-shadow: none; }
/* полоса и в flow остаётся тёмной: текст у неё белый (29.10.2026, R00120 — заголовок пропадал на светлом фоне) */
.page[data-flow] .psec[data-design="band"] { background: var(--accent-ink); }
.page[data-flow] .psec h2 { font-size: clamp(2rem, 8.6vw, 3.9rem); line-height: 1.02; }
.page[data-flow] .media { border-radius: var(--r-photo); }
.page[data-flow] .btn, .page[data-flow] .btn--dark { border-radius: 999px; }
.page[data-flow] .buy__menu { border-radius: 24px; }
.page[data-flow] .psec__buy .btn { min-height: 54px; padding-inline: 26px; }
/* первый экран: сцена с товаром во всю ширину, лист с заголовком наезжает на её низ */
.page[data-flow] .phero { padding-top: 4px; background: none; }
.page[data-flow] .phero__stage { position: relative; }
.page[data-flow] .phero__media { aspect-ratio: 4 / 5; width: 100%; border-radius: var(--r-photo); box-shadow: 0 40px 70px -46px rgb(60 30 20 / .55); }
.page[data-flow] .phero__media .media__img { object-fit: cover; filter: none; }
.phero__chips { position: absolute; left: 14px; right: 14px; top: 14px; display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.phero__chips li {
  padding: 8px 14px; border-radius: 999px; font-size: .82rem; font-weight: 600; color: var(--ink);
  background: rgb(255 255 255 / .78); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  box-shadow: 0 10px 24px -16px rgb(0 0 0 / .45);
}
.page[data-flow] .phero__text {
  position: relative; z-index: 1; margin: -54px 10px 0; padding: 24px 18px 4px;
  border-radius: 30px 30px 0 0; background: var(--paper);
}
/* фото с вырезом: заголовок на «полке» листа, врезанной в нижний угол фотографии; углы полки вогнуты */
.notch { position: relative; }
.notch__media { aspect-ratio: 4 / 5; width: 100%; box-shadow: 0 40px 70px -50px rgb(60 30 20 / .55); }
.notch__media .media__img { object-fit: cover; }
.notch__head {
  --cut: 30px;
  position: absolute; bottom: -1px; left: 0; max-width: 86%;
  padding: 16px 20px 0 0; border-top-right-radius: var(--cut); background: var(--paper);
}
.notch__head h2 { margin: 0 !important; }
.notch__head::before, .notch__head::after { content: ""; position: absolute; width: var(--cut); height: var(--cut); pointer-events: none; }
.notch__head::before { left: 0; top: calc(-1 * var(--cut)); background: radial-gradient(circle at 100% 0, transparent calc(var(--cut) - .5px), var(--paper) var(--cut)); }
.notch__head::after { right: calc(-1 * var(--cut)); bottom: 0; background: radial-gradient(circle at 100% 0, transparent calc(var(--cut) - .5px), var(--paper) var(--cut)); }
.notch[data-side="right"] .notch__head { left: auto; right: 0; padding: 16px 0 0 20px; border-top-right-radius: 0; border-top-left-radius: var(--cut); text-align: right; }
.notch[data-side="right"] .notch__head::before { left: auto; right: 0; background: radial-gradient(circle at 0 0, transparent calc(var(--cut) - .5px), var(--paper) var(--cut)); }
.notch[data-side="right"] .notch__head::after { right: auto; left: calc(-1 * var(--cut)); background: radial-gradient(circle at 0 0, transparent calc(var(--cut) - .5px), var(--paper) var(--cut)); }
.notch + .psec__body { margin-top: 18px; }
/* таблетки на светлом: белые с тенью, с кружком картинки */
.chips--light .chip { background: #fff; color: var(--ink); box-shadow: 0 14px 30px -22px rgb(60 30 20 / .6); }
.chips--light .chip:nth-child(3n+1) { background: var(--accent-ink); color: #fff; }
.chips--light .chip__media { box-shadow: 0 0 0 2px #fff; }
/* сцена: таблетки пунктов лежат на фотографии и листаются пальцем */
.scene { position: relative; margin-top: 18px; }
.scene__media { aspect-ratio: 4 / 5; width: 100%; box-shadow: 0 40px 70px -50px rgb(60 30 20 / .55); }
.scene__media .media__img { object-fit: cover; }
.scene__chips {
  position: absolute; left: 0; right: 0; bottom: 14px; display: flex; gap: 8px; margin: 0; padding: 0 14px;
  list-style: none; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none;
}
.scene__chips::-webkit-scrollbar { width: 0; height: 0; }
.scene__chips .chip {
  flex: none; scroll-snap-align: start; background: rgb(255 255 255 / .8); color: var(--ink);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); box-shadow: 0 10px 24px -16px rgb(0 0 0 / .5);
}
.scene + .prose { margin-top: 22px; }
/* плитки-фото: у каждого пункта своя картинка и белая карточка с подписью */
.pbento { display: grid; gap: 12px; margin: 22px 0 0; padding: 0; list-style: none; }
.pcard {
  position: relative; display: grid; grid-template-columns: 38% 1fr; align-items: center; gap: 14px;
  padding: 8px; border-radius: 26px; background: #fff; box-shadow: 0 24px 44px -34px rgb(60 30 20 / .55);
}
.pcard__media { aspect-ratio: 1; width: 100%; border-radius: 20px !important; }
.pcard__media .media__img { object-fit: cover; }
.pcard__info { display: grid; gap: 6px; padding-right: 8px; }
.pcard__info h3 { margin: 0; font-size: clamp(1.05rem, 4.6vw, 1.3rem); line-height: 1.15; }
.pcard__info p { margin: 0; font-size: clamp(.88rem, 3.7vw, 1rem); line-height: 1.38; color: var(--ink-muted); }
.pcard--text { grid-template-columns: 1fr; padding: 18px; }
.pcard--big { display: block; padding: 0; overflow: hidden; background: none; }
.pcard--big .pcard__media { aspect-ratio: 4 / 5; border-radius: 26px !important; }
.pcard--big .pcard__info {
  position: absolute; left: 12px; right: 12px; bottom: 12px; padding: 14px 16px; border-radius: 20px;
  background: rgb(255 255 255 / .9); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
}
/* шаги и сведения с картинкой: широкая фотография над ними, карточки сведений наезжают на её низ */
.psec__wide { aspect-ratio: var(--ar, 1.25); width: 100%; margin-block: 18px 6px; }
.psec__wide .media__img { object-fit: cover; }
.facts[data-over] { position: relative; z-index: 1; margin: -56px 12px 0; }
@media (min-width: 900px) {
  .page[data-flow] .psec h2 { font-size: clamp(2.6rem, 4.6vw, 4.6rem); }
  .page[data-flow] .phero__grid { grid-template-columns: 6fr 5fr; gap: 56px; align-items: center; }
  .page[data-flow] .phero__stage { order: 0; }
  .page[data-flow] .phero__media { width: 100%; max-height: 86vh; }
  .page[data-flow] .phero__text { margin: 0; padding: 0; background: none; border-radius: 0; }
  .psec[data-design="notch"] > .wrap { display: grid; grid-template-columns: 6fr 5fr; gap: 64px; align-items: center; }
  .psec[data-design="notch"] .notch { grid-row: 1 / span 2; }
  .notch__media { max-height: 88vh; }
  .notch + .psec__body { margin-top: 0; }
  .psec[data-design="notch"] .psec__body .prose { margin-left: 0; }
  .psec[data-design="notch"] .psec__buy { grid-column: 2; }
  .scene__media { aspect-ratio: 16 / 9; }
  .scene__media .media__img { object-position: 50% 30%; }
  .scene + .prose { max-width: 46rem; }
  .pbento { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
  .pcard { grid-template-columns: 1fr; align-content: start; padding: 10px 10px 16px; }
  .pcard__info { padding-inline: 8px; }
  .pcard--big { grid-column: span 2; grid-row: span 2; }
  .pcard--big .pcard__media { aspect-ratio: auto; height: 100%; min-height: 520px; }
  .psec__wide { aspect-ratio: 21 / 9; }
  .facts[data-over] { margin: -90px 40px 0; }
}
.js-motion [data-flow] .pa-strokes, .js-motion [data-flow] .pa-glints { display: none; }   /* у единой конструкции первый экран — сцена, мазки за ней не нужны */
/* движение единой конструкции (site.js, «flow»): фото раскрываются из скруглённого окна по мере входа в экран
   и плывут медленнее страницы; первый экран приближается, пока уходит; таблетки на фото покачиваются */
.js-motion [data-flow] :is(.notch__media, .scene__media, .psec__wide, .pcard__media, .poster .media) {
  overflow: hidden;
  clip-path: inset(calc((1 - var(--open, 1)) * 12%) calc((1 - var(--open, 1)) * 8%) round var(--r-photo));
}
.js-motion [data-flow] :is(.notch__media, .scene__media, .psec__wide, .poster .media) :is(.media__img, .media__video) {
  transform: translateY(calc(var(--fy, 0) * 6%)) scale(1.14);
  will-change: transform;
}
.js-motion [data-flow] .pcard__media :is(.media__img, .media__video) {
  transform: translateY(calc(var(--fy, 0) * 4%)) scale(calc(1.1 + (1 - var(--open, 1)) * .25));
}
.js-motion [data-flow] .phero__media { overflow: hidden; }
.js-motion [data-flow] .phero__media :is(.media__img, .media__video) {
  transform: translateY(calc(var(--away, 0) * 7%)) scale(calc(1.03 + var(--away, 0) * .14));
  will-change: transform;
}
@keyframes flow-bob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-6px); } }
.js-motion [data-flow] .is-on :is(.phero__chips li, .scene__chips .chip) { animation: flow-bob 4.6s ease-in-out infinite; }
.js-motion [data-flow] .is-on :is(.phero__chips li, .scene__chips .chip):nth-child(2n) { animation-delay: -1.5s; animation-duration: 5.4s; }
.js-motion [data-flow] .is-on :is(.phero__chips li, .scene__chips .chip):nth-child(3n) { animation-delay: -3s; }
/* «Корни» в единой конструкции: первый экран на общем фоне, фото — сцена во всю ширину, углы мягкие (23.10.2026) */
.page[data-flow][data-kit="roots"] { --r-panel: 26px; --r-card: 22px; }
.page[data-flow][data-kit="roots"] .phero { background: none; color: inherit; --ink: inherit; --ink-muted: inherit; --line: inherit; --accent-ink: inherit; }
.page[data-flow][data-kit="roots"] .phero .eyebrow { color: var(--accent-ink); }
.page[data-flow][data-kit="roots"] .phero__media { overflow: hidden; border-radius: var(--r-photo); box-shadow: 0 40px 70px -46px rgb(12 48 39 / .6) !important; }
.page[data-flow][data-kit="roots"] .phero__media :is(.media__img, .media__video) { object-fit: cover; filter: none; }
.page[data-flow][data-kit="roots"] .media { border-radius: var(--r-photo); }
.js-motion .page[data-flow][data-kit="roots"] .ro-ring { display: none; }
.page[data-flow] .phero__chips { z-index: 2; }
.page[data-flow][data-kit="roots"] .phero .btn--dark { background: var(--dark); color: #fff; }
.scene__chips .chip { max-width: 84%; white-space: normal; }

/* ===== Витрина (владелец 24.10.2026: «как на Pinterest — общий дизайн, общая концепция»).
   Одна система блоков для страницы товара, цвета и шрифты — от облика (kit):
   белые карточки с мягкой тенью и большими скруглениями, цветные панели с товаром через край,
   метки-таблетки на фото, номера 01/02/03, кольца цифр, слово-плашка в заголовке ([слово] в title),
   вкладки разделов, огромное тонкое слово за наклонной карточкой. Плиток «наименование / код / форма»
   нет: сведения о товаре — одна карточка-паспорт (facts, design: sheet). ===== */
.page[data-vitrina] {
  --vx-card: #FFFFFF; --vx-r: 26px; --vx-r-big: clamp(30px, 8vw, 56px);
  --vx-shadow: 0 28px 60px -40px rgb(16 30 52 / .38), 0 2px 6px -2px rgb(16 30 52 / .06);
}
.page[data-kit="alaska"] {
  --vx-hl: #F7C948; --vx-hl-ink: #0B1F33; --vx-p1: #D9EAF6; --vx-p2: #FBEFC8; --vx-num: #1767B0; --vx-deep: #0B2A4A;
  --vx-head: var(--font); --vx-head-w: 800; --vx-word: var(--font); --vx-word-w: 200;
}
.page[data-kit="amber"] {
  --vx-hl: #F4C063; --vx-hl-ink: #2A1F14; --vx-p1: #F6E0B8; --vx-p2: #DDE6CC; --vx-num: #B4621A; --vx-deep: #3A2614;
  --vx-head: "Cormorant Au", Georgia, serif; --vx-head-w: 500; --vx-word: "Cormorant Au", Georgia, serif; --vx-word-w: 300;
}
.page[data-kit="pena"] {
  --vx-hl: #BFE4F4; --vx-hl-ink: #0B2C4A; --vx-p1: #E3F1F8; --vx-p2: #EEEAF7; --vx-num: #2F8FB8; --vx-deep: #0B2C4A;
  --vx-head: var(--font); --vx-head-w: 700; --vx-word: var(--font); --vx-word-w: 200;
}
.page[data-kit="hanbang"] {
  --vx-hl: #EBD3A8; --vx-hl-ink: #1F2A22; --vx-p1: #E2E7DC; --vx-p2: #F0E3CB; --vx-num: #8C5A22; --vx-deep: #2C3B31;
  --vx-head: "PT Serif Read", Georgia, serif; --vx-head-w: 700; --vx-word: "PT Serif Read", Georgia, serif; --vx-word-w: 400;
}
.page[data-kit="shelk"] {
  --vx-hl: #F1D3CE; --vx-hl-ink: #2E1F22; --vx-p1: #F6E3DE; --vx-p2: #EFE6DC; --vx-num: #A0575E; --vx-deep: #5E3238;
  --vx-head: var(--font); --vx-head-w: 300; --vx-word: "Cormorant Au", Georgia, serif; --vx-word-w: 300;
}
body:has(.page[data-kit="hanbang"]) { background: linear-gradient(180deg, #F6F2EA 0%, #FBF8F2 45%, #EEF0E8 100%); }
body:has(.page[data-kit="shelk"]) { background: linear-gradient(180deg, #FBF4F1 0%, #FFFFFF 45%, #F8EDEA 100%); }
/* 26.10.2026: «Кислород» (R02312), «Капсула» (R02309), «Волна» (R00832), «Губы» (R00460), «Золото» (R00681) */
.page[data-kit="oxy"] {
  --vx-hl: #CFE8F6; --vx-hl-ink: #0A2A43; --vx-p1: #E4F1FA; --vx-p2: #EEF3F7; --vx-num: #138AB7; --vx-deep: #0A2A43;
  --vx-head: var(--font); --vx-head-w: 900; --vx-word: var(--font); --vx-word-w: 200;
}
.page[data-kit="kapsula"] {
  --vx-hl: #C9E9EC; --vx-hl-ink: #1E2A28; --vx-p1: #E4F1EF; --vx-p2: #EEEFEA; --vx-num: #716F57; --vx-deep: #2F4744;
  --vx-head: var(--font); --vx-head-w: 800; --vx-word: var(--font); --vx-word-w: 300;
}
.page[data-kit="volna"] {
  --vx-hl: #0F90C5; --vx-hl-ink: #FFFFFF; --vx-p1: #D7EFFA; --vx-p2: #E7F3F9; --vx-num: #0F90C5; --vx-deep: #123A51;
  --vx-head: var(--font); --vx-head-w: 800; --vx-word: var(--font); --vx-word-w: 900;
}
.page[data-kit="guby"] {
  --vx-hl: #FFC9C1; --vx-hl-ink: #3A1820; --vx-p1: #FFE6E1; --vx-p2: #E2F3F7; --vx-num: #D64C5E; --vx-deep: #3A1820;
  --vx-head: "Cormorant Au", Georgia, serif; --vx-head-w: 600; --vx-word: "Cormorant Au", Georgia, serif; --vx-word-w: 500;
}
.page[data-kit="zoloto"] {
  --vx-hl: #EBD399; --vx-hl-ink: #25233A; --vx-p1: #F4ECDB; --vx-p2: #ECEBF2; --vx-num: #B8862B; --vx-deep: #25233A;
  --vx-head: "PT Serif Read", Georgia, serif; --vx-head-w: 700; --vx-word: "PT Serif Read", Georgia, serif; --vx-word-w: 400;
}
body:has(.page[data-kit="oxy"]) { background: linear-gradient(180deg, #F3F8FC 0%, #FFFFFF 40%, #E6F2FA 100%); }
body:has(.page[data-kit="kapsula"]) { background: linear-gradient(180deg, #F4F7F6 0%, #FFFFFF 45%, #EAF3F1 100%); }
body:has(.page[data-kit="volna"]) { background: linear-gradient(180deg, #EAF6FC 0%, #FFFFFF 35%, #DDF0FA 100%); }
body:has(.page[data-kit="guby"]) { background: linear-gradient(180deg, #FFF4F2 0%, #FFFFFF 40%, #FFE9E5 100%); }
body:has(.page[data-kit="zoloto"]) { background: linear-gradient(180deg, #FBF7EF 0%, #FFFDF8 45%, #F5EEDF 100%); }
body:has(.page[data-kit="alaska"]) { background: #F3F7FA; }
body:has(.page[data-kit="pena"]) { background: linear-gradient(180deg, #F4FAFD 0%, #FFFFFF 40%, #EEF6FB 100%); }
body:has(.page[data-kit="amber"]) { background: #FBF6EE; }

/* заголовки, слово-плашка, метка раздела */
.page[data-vitrina] :is(h1, .psec h2) {
  font-family: var(--vx-head); font-weight: var(--vx-head-w); letter-spacing: -.035em; line-height: 1.02; color: var(--ink);
}
.page[data-vitrina] .psec h2 { max-width: 17ch; font-size: clamp(2.05rem, 8.8vw, 4.3rem); margin-bottom: clamp(16px, 3vh, 28px); }
.page[data-kit="amber"][data-vitrina] :is(h1, .psec h2) { letter-spacing: -.01em; line-height: .98; }
.page[data-kit="amber"][data-vitrina] .psec h2 { font-size: clamp(2.4rem, 10.4vw, 4.9rem); }
.page[data-vitrina] :is(h1, h2) .w:last-child { font-style: normal; color: inherit; }
.page[data-vitrina] mark.hl {
  padding: 0 .26em .06em; border-radius: 999px; background: var(--vx-hl); color: var(--vx-hl-ink);
  -webkit-box-decoration-break: clone; box-decoration-break: clone;
}
.page[data-kit="amber"][data-vitrina] mark.hl { font-style: italic; }
.page[data-vitrina] h3 { font-family: var(--font); font-weight: 700; font-size: clamp(1.08rem, 4.6vw, 1.3rem); letter-spacing: -.01em; line-height: 1.22; }
.page[data-vitrina] .prose { gap: .9em; }
.page[data-vitrina] .psec__note { max-width: 60em; }
.vx-tag {
  justify-self: start; width: fit-content;
  display: inline-flex; align-items: center; gap: 10px; margin-bottom: 16px; padding: 5px 16px 5px 5px; border-radius: 999px;
  background: var(--vx-card); box-shadow: 0 0 0 1px var(--line); font-size: var(--fs-min); font-weight: 700; letter-spacing: .12em;
  text-transform: uppercase; color: var(--ink);
}
.vx-tag b { display: grid; place-items: center; min-width: 36px; height: 28px; padding-inline: 8px; border-radius: 999px; background: var(--vx-deep); color: #fff; letter-spacing: 0; }
/* в тёмной полосе --ink белый, а подложка метки светлая — без этого подпись метки белая на белом (29.10.2026) */
.psec[data-design="band"] .vx-tag { color: var(--accent-ink); }
.page[data-vitrina] .eyebrow { display: inline-flex; width: fit-content; padding: 7px 16px; border-radius: 999px; background: var(--vx-card); box-shadow: 0 0 0 1px var(--line); color: var(--ink); font-size: var(--fs-min); letter-spacing: .04em; text-transform: none; font-weight: 600; }
.page[data-vitrina] .eyebrow::before { width: 10px; height: 10px; border-radius: 50%; background: var(--vx-hl); }

/* кнопки — капсулы цвета облика */
.page[data-vitrina] .btn--dark { background: var(--vx-deep); color: #fff; }
.page[data-vitrina] .btn--dark:hover { filter: brightness(1.15); }
.page[data-vitrina] .btn--pulse { animation: none; }
.page[data-vitrina] .foot { background: var(--vx-deep); }
.page[data-vitrina] .psec { padding-block: clamp(40px, 7vh, 96px); }

/* первый экран: метки на фото — те же таблетки, что в разделах */
.page[data-vitrina] .phero__chips li {
  display: inline-flex; align-items: center; gap: 8px; padding: 9px 16px 9px 12px; border-radius: 999px;
  background: rgb(255 255 255 / .94); color: var(--ink); font-weight: 650; box-shadow: 0 10px 24px -14px rgb(10 30 60 / .5);
}
.page[data-vitrina] .phero__chips li::before { content: ""; flex: none; width: 10px; height: 10px; border-radius: 50%; background: var(--vx-hl); box-shadow: 0 0 0 4px color-mix(in srgb, var(--vx-hl) 35%, transparent); }
.page[data-vitrina] .phero__media { border-radius: var(--vx-r-big); }

/* вкладки разделов: текущая — тёмная; к верху прилипают только на широком экране —
   на телефоне вкладки, едущие за прокруткой, перегружают экран (владелец, 25.10.2026) */
.vx-tabs { position: relative; z-index: 30; padding-block: 10px; background: var(--paper); box-shadow: 0 12px 20px -18px rgb(16 30 52 / .35); }
.vx-tabs ul { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; }
.vx-tabs ul::-webkit-scrollbar { width: 0; height: 0; }
.vx-tabs a {
  display: inline-flex; align-items: center; min-height: 42px; padding: 0 18px; border-radius: 999px; white-space: nowrap;
  background: var(--vx-card); box-shadow: 0 0 0 1px var(--line); color: var(--ink); font-weight: 700; font-size: var(--fs-min); text-decoration: none;
  transition: background .3s, color .3s;
}
.vx-tabs a.is-on { background: var(--vx-deep); color: #fff; box-shadow: none; }
.page[data-vitrina] .psec[id] { scroll-margin-top: 70px; }

/* номера 01 02 03 */
.vx-nums { display: grid; gap: 12px; margin-top: 22px; }
.vx-nums li { display: grid; grid-template-columns: auto 1fr; gap: 16px; align-items: start; padding: 16px 20px; border-radius: 22px; background: var(--vx-card); box-shadow: var(--vx-shadow); }
.vx-nums h3 + p { margin-top: 4px; color: var(--ink-muted); }
.vx-num { font-family: var(--font); font-weight: 800; font-size: 1.5rem; line-height: 1.1; letter-spacing: -.03em; color: var(--vx-num); font-variant-numeric: tabular-nums; }
.page[data-vitrina] .vx-circle .vx-num { font-family: var(--font); font-style: normal; font-weight: 800; font-size: 1rem; line-height: 1; }
.page[data-kit="amber"] .vx-num { font-family: var(--vx-head); font-style: italic; font-weight: 500; font-size: 1.9rem; line-height: .9; }

/* таблетки пунктов */
.vx-pills, .vx-pins__list { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; }
.vx-pills li, .vx-pins__list li {
  display: inline-flex; align-items: center; gap: 9px; padding: 10px 18px 10px 12px; border-radius: 999px;
  background: var(--vx-card); color: var(--ink); font-weight: 650; line-height: 1.25; box-shadow: 0 12px 26px -16px rgb(10 30 60 / .45);
}
.vx-pills i, .vx-pins__list i { flex: none; width: 10px; height: 10px; border-radius: 50%; background: var(--vx-hl); box-shadow: 0 0 0 4px color-mix(in srgb, var(--vx-hl) 35%, transparent); }

/* tilt: огромное тонкое слово, наклонная карточка, слова по обе стороны */
.vx-tilt { position: relative; display: grid; gap: 24px; }
.vx-tilt__word {
  margin: 0 calc(-1 * var(--gutter)); overflow: hidden; white-space: nowrap; text-align: center; pointer-events: none;
  font-family: var(--vx-word); font-weight: var(--vx-word-w); font-size: clamp(4.4rem, 25vw, 17rem); line-height: .86; letter-spacing: -.04em;
  text-transform: uppercase; color: var(--vx-num);
}
.vx-tilt__word span { display: inline-block; transform: translateX(calc(var(--p, 0) * 9%)); }
.vx-tilt__stage { position: relative; z-index: 1; width: min(80%, 400px); margin: -5vw auto 0; transform: rotate(calc(-6deg + var(--p, 0) * 4deg)); }
.vx-tilt__card { aspect-ratio: 4 / 5; border-radius: var(--vx-r-big); box-shadow: 0 0 0 8px var(--vx-card), 0 40px 80px -36px rgb(10 30 60 / .55); }
.vx-tilt__head h2 { margin-bottom: 0; }
.vx-tilt__word { order: 1; } .vx-tilt__stage { order: 2; } .vx-tilt__head { order: 3; } .vx-tilt__body { order: 4; }

/* pins: метки-таблетки лежат на фото */
.vx-pins { display: grid; gap: 22px; }
.vx-pins__stage { position: relative; }
.vx-pins__media { aspect-ratio: 4 / 5; border-radius: var(--vx-r-big); }
.vx-pins__list { position: relative; z-index: 2; margin: -112px 14px 0; }

/* stats: кольца цифр */
@property --val { syntax: "<number>"; inherits: false; initial-value: 0; }
.vx-stats { display: grid; gap: 14px; margin-bottom: 26px; }
.vx-stats__media { aspect-ratio: 16 / 11; border-radius: var(--vx-r-big); }
.vx-stats__list { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.vx-stat { display: grid; gap: 12px; align-content: start; padding: 18px 16px 20px; border-radius: 26px; background: var(--vx-card); box-shadow: var(--vx-shadow); }
.vx-stat h3 { font-size: 1.02rem; }
.vx-stat p { margin-top: 4px; font-size: var(--fs-min); line-height: 1.4; color: var(--ink-muted); }
.vx-ring {
  --val: var(--to); position: relative; display: grid; place-items: center; width: min(100%, 118px); aspect-ratio: 1; border-radius: 50%;
  background: conic-gradient(var(--vx-num) calc(var(--val) * 1%), var(--vx-p1) 0); transition: --val 1.8s cubic-bezier(.2, .7, .2, 1);
}
.vx-ring::before { content: ""; position: absolute; inset: 9px; border-radius: 50%; background: var(--vx-card); }
.vx-ring b { position: relative; padding: 0 12px; text-align: center; font-weight: 800; font-size: 1.12rem; line-height: 1.05; letter-spacing: -.02em; }
.js-motion .vx-stats:not(.is-on) .vx-ring { --val: 0; }

/* panel: цветная панель с большим скруглением, товар выходит за её верхний край */
.vx-panel { display: grid; gap: 26px; }
.vx-panel__blob {
  position: relative; margin-top: 64px; padding: 0 24px 26px; border-radius: 44px 150px 44px 44px;
  background: radial-gradient(90% 70% at 25% 15%, rgb(255 255 255 / .55), transparent 60%), var(--vx-p1);
}
.vx-panel[data-side="right"] .vx-panel__blob { border-radius: 150px 44px 44px 44px; background-color: var(--vx-p2); }
.vx-panel__blob > .vx-par { display: flex; justify-content: center; margin-top: -64px; transform: translateY(calc(var(--p, 0) * -22px)); }
.vx-panel__media { width: auto; max-width: 100%; height: clamp(280px, 78vw, 470px); aspect-ratio: var(--ar, 1); border-radius: 0; overflow: visible; filter: drop-shadow(0 30px 26px rgb(20 30 50 / .22)); }
.vx-panel__media .media__img { object-fit: contain; }
@keyframes vx-float { 0%, 100% { translate: 0 0; rotate: -2deg; } 50% { translate: 0 -12px; rotate: 2deg; } }
.js-motion .vx-panel.is-on .vx-panel__media.is-in { animation: vx-float 7s ease-in-out infinite; }

/* circles: круглые картинки составляющих с номером */
.vx-circles { display: grid; gap: 18px; margin-top: 26px; }
.vx-circle { position: relative; display: grid; grid-template-columns: 112px 1fr; gap: 18px; align-items: center; }
.vx-circle__media { aspect-ratio: 1; border-radius: 50%; box-shadow: 0 0 0 6px var(--vx-card), var(--vx-shadow); }
.vx-circle__media .media__img { scale: calc(1.06 + var(--p, 0) * .06); }
.vx-circle .vx-num {
  position: absolute; left: 84px; top: -6px; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%;
  background: var(--vx-hl); color: var(--vx-hl-ink); font-family: var(--font); font-style: normal; font-size: 1rem; font-weight: 800;
}
.vx-circle h3 + p { margin-top: 4px; color: var(--ink-muted); }

/* sheet: паспорт товара — одна карточка */
.vx-sheet { display: grid; border-radius: var(--vx-r-big); background: var(--vx-card); box-shadow: var(--vx-shadow); overflow: hidden; }
.vx-sheet__pic { display: grid; place-items: center; padding: 30px 24px 18px; background: radial-gradient(70% 70% at 50% 62%, var(--vx-p2), var(--vx-p1)); }
.vx-sheet__pic > .vx-par { display: flex; justify-content: center; width: 100%; transform: translateY(calc(var(--p, 0) * -14px)); }
.vx-sheet__media { width: auto; max-width: 100%; height: clamp(230px, 62vw, 400px); aspect-ratio: var(--ar, 1); border-radius: 0; overflow: visible; filter: drop-shadow(0 26px 24px rgb(20 30 50 / .22)); }
.vx-sheet__media .media__img { object-fit: contain; }
.vx-sheet__list { margin: 0; padding: 6px 22px 14px; }
.vx-row { display: grid; gap: 4px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.vx-row:last-child { border-bottom: 0; }
.vx-row dt { font-size: var(--fs-min); font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--vx-num); }
.vx-row dd { margin: 0; line-height: 1.45; overflow-wrap: break-word; }

/* прежние виды в той же системе: карточки одного цвета, номер — капсулой, шаги — кругами цвета облика */
.page[data-vitrina] .card { border-radius: 28px; background: var(--vx-card) !important; color: var(--ink) !important; box-shadow: var(--vx-shadow); }
.page[data-vitrina] .card :is(h3, p) { color: inherit; }
.page[data-vitrina] .card p { color: var(--ink-muted); }
.page[data-vitrina] .card__num {
  justify-self: start; display: grid; place-items: center; min-width: 52px; height: 34px; padding-inline: 12px; border-radius: 999px;
  background: var(--vx-hl) !important; color: var(--vx-hl-ink) !important; font-size: 1rem; letter-spacing: 0; line-height: 1;
}
.page[data-vitrina] .card__media { border-radius: 20px; }
.page[data-vitrina] .steps--line .step__num { background: var(--vx-num); }
.page[data-vitrina] .steps--line::after { background: var(--vx-num); }
.page[data-vitrina] .step { padding: 14px 0; }
.page[data-vitrina] .shot .media { border-radius: 24px; }
.page[data-vitrina] .fold { padding: 0 22px; border: 0; border-radius: 26px; background: var(--vx-card); box-shadow: var(--vx-shadow); }
.page[data-vitrina] .fold__sign { background: var(--vx-num); color: #fff; }
.page[data-vitrina] .psec[data-design="timeline"] .psec__media { border-radius: var(--vx-r-big); }

@media (min-width: 900px) {
  .page[data-vitrina] .psec h2 { font-size: clamp(2.6rem, 4.4vw, 4.4rem); }
  .page[data-kit="amber"][data-vitrina] .psec h2 { font-size: clamp(3rem, 5vw, 5rem); }
  .vx-tabs ul { justify-content: center; }
  .vx-nums { grid-template-columns: 1fr; }
  .vx-tilt { grid-template-columns: 1.15fr minmax(300px, 360px) 1fr; column-gap: clamp(32px, 4vw, 64px); align-items: start; }
  .vx-tilt__word { grid-column: 1 / -1; grid-row: 1; margin: 0 0 -5.5vw; font-size: clamp(8rem, 15vw, 16rem); }
  .vx-tilt__stage { grid-row: 2; grid-column: 2; width: 100%; margin: 0; }
  .vx-tilt__head { grid-row: 2; grid-column: 1; padding-top: 9vw; }
  .page[data-vitrina] .vx-tilt__head h2 { max-width: none; font-size: clamp(2rem, 2.6vw, 3rem); }
  .vx-tilt__body { grid-row: 2; grid-column: 3; padding-top: 9vw; }
  /* как принимать: картинка слева стоит на месте, шаги идут справа */
  .page[data-vitrina] .psec[data-design="timeline"] > .wrap { display: grid; grid-template-columns: 5fr 6fr; column-gap: clamp(40px, 5vw, 80px); align-items: start; }
  .page[data-vitrina] .psec[data-design="timeline"] > .wrap > * { grid-column: 2; }
  .page[data-vitrina] .psec[data-design="timeline"] > .wrap > :is(.vx-tag, h2) { grid-column: 1 / -1; justify-self: start; }
  .page[data-vitrina] .psec[data-design="timeline"] > .wrap > .psec__media { grid-column: 1; grid-row: 3 / span 4; position: sticky; top: 90px; }
  .vx-sheet__pic { place-items: start center; }
  .vx-sheet__pic > .vx-par { position: sticky; top: 110px; }
  .vx-pins { grid-template-columns: 5fr 6fr; gap: 72px; align-items: center; }
  .vx-pins__list { position: absolute; inset: 0; display: block; margin: 0; }
  .vx-pins__list li { position: absolute; max-width: 300px; }
  .vx-pins__list li:nth-child(1) { left: -9%; top: 8%; }
  .vx-pins__list li:nth-child(2) { right: -7%; top: 22%; }
  .vx-pins__list li:nth-child(3) { left: -12%; top: 40%; }
  .vx-pins__list li:nth-child(4) { right: -9%; top: 55%; }
  .vx-pins__list li:nth-child(5) { left: -7%; top: 71%; }
  .vx-pins__list li:nth-child(6) { right: -5%; top: 86%; }
  .vx-stats { grid-template-columns: 5fr 6fr; gap: 20px; align-items: stretch; }
  .vx-stats__media { aspect-ratio: auto; min-height: 100%; }
  .vx-stats__list { gap: 16px; }
  .vx-stat { padding: 24px; }
  .vx-ring { width: 136px; }
  .vx-ring b { font-size: 1.3rem; }
  .vx-panel { grid-template-columns: 1fr 1fr; gap: 72px; align-items: center; }
  .vx-panel[data-side="right"] .vx-panel__blob { order: 2; }
  .vx-panel__blob { margin-top: 90px; padding: 0 40px 40px; min-height: 380px; }
  .vx-panel__blob > .vx-par { margin-top: -90px; }
  .vx-circles { grid-template-columns: repeat(3, 1fr); gap: 32px; }
  .vx-circle { grid-template-columns: 1fr; justify-items: center; text-align: center; }
  .vx-circle__media { width: min(100%, 250px); }
  .vx-circle .vx-num { left: calc(50% + 70px); top: 6px; width: 52px; height: 52px; font-size: 1.15rem; }
  .vx-sheet { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
  .vx-sheet__pic { padding: 48px; }
  .vx-sheet__list { padding: 22px 44px; }
  .vx-row { grid-template-columns: minmax(0, 230px) minmax(0, 1fr); gap: 28px; padding: 16px 0; }
}
.page[data-vitrina] .eyebrow { font-family: var(--font); line-height: 1.35; }
/* «Аляска» — современный гротеск и в тексте; «Янтарь» оставляет книжную антикву */
.page[data-kit="alaska"][data-vitrina] :is(.prose p, .prose li, .phero__text, .psec__body, .psec__body p, .step__body, .step__body p) { font-family: var(--font); }
/* плашка слова загорается вместе со словами заголовка, а не пустой капсулой до них */
.page[data-vitrina] mark.hl { transition: background-color .5s var(--ease, ease) .25s; }
/* слово-плашка не переносится по слогам: «пятновы-/еля» рвало плашку на два куска (29.10.2026) */
.page[data-vitrina] :is(h2, h3) mark.hl { -webkit-hyphens: none; hyphens: none; }
.js-motion .page[data-vitrina] [data-reveal="words"]:not(.is-in) mark.hl { background-color: transparent; }

/* --- витрина, правки владельца 24.10 (вечер): телефон первым, без пустот, больше движения --- */
/* сетки не шире экрана: длинное слово («Эйкозапентаеновая») раздувало колонку до 400 px из 375 */
.page[data-vitrina] :is(.vx-stats, .vx-pins, .vx-panel, .vx-tilt) { grid-template-columns: minmax(0, 1fr); }
.page[data-vitrina] :is(h2, h3) { overflow-wrap: break-word; -webkit-hyphens: auto; hyphens: auto; }
/* кольца на телефоне — строкой: кольцо слева, слова справа */
.vx-stats__list { grid-template-columns: minmax(0, 1fr); }
.vx-stat { grid-template-columns: 92px minmax(0, 1fr); align-items: center; gap: 16px; padding: 14px 18px 14px 14px; }
.vx-stat .vx-ring { width: 92px; }
.vx-stat .vx-ring::before { inset: 8px; }
.vx-stat .vx-ring b { font-size: 1rem; padding: 0 8px; }
/* вкладки уходят под меню сайта, когда оно выезжает сверху */
.vx-tabs { transition: top .35s cubic-bezier(.2, .7, .2, 1); }
@media (min-width: 900px) {
  .vx-tabs { position: sticky; top: 0; }
  body:has(.sbar.is-on) .vx-tabs { top: 64px; }
}

@media (min-width: 900px) {
  .page[data-vitrina] .vx-stats { grid-template-columns: 5fr 6fr; }
  .vx-stats__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .vx-stat { grid-template-columns: minmax(0, 1fr); align-items: start; padding: 24px; }
  .vx-stat .vx-ring { width: 128px; }
  .vx-stat .vx-ring b { font-size: 1.25rem; }
  .page[data-vitrina] .vx-pins { grid-template-columns: 5fr 6fr; }
  .page[data-vitrina] .vx-panel { grid-template-columns: 1fr 1fr; }
  /* наклонная карточка: слева заголовок и пункты 01–03, в середине карточка, справа текст — без пустой колонки */
  .page[data-vitrina] .vx-tilt { grid-template-columns: minmax(0, 1fr) minmax(300px, 360px) minmax(0, 1fr); }
  .vx-tilt__body { display: contents; }
  .vx-tilt__head { grid-column: 1; grid-row: 2; padding-top: 7vw; }
  .vx-tilt__stage { grid-column: 2; grid-row: 2 / span 2; }
  .vx-tilt__body > .prose { grid-column: 3; grid-row: 2 / span 2; padding-top: 7vw; }
  .vx-tilt__body > .vx-nums { grid-column: 1; grid-row: 3; margin-top: 28px; }
  .vx-tilt__body > .psec__note { grid-column: 1 / -1; grid-row: 4; }
  /* лента фото на компьютере — сетка без прокрутки вбок: ни одна карточка не режется краем */
  .page[data-vitrina] .psec .shots--strip { grid-auto-flow: row; grid-auto-columns: auto; grid-template-columns: repeat(4, minmax(0, 1fr)); overflow: visible; gap: 20px; }
  .page[data-vitrina] .shots--strip .shot:nth-child(4n+2), .page[data-vitrina] .shots--strip .shot:nth-child(4n+4) { margin-top: 48px; }
}

/* цветная панель дышит: углы перетекают вслед за прокруткой */
.vx-panel__blob {
  border-radius: calc(44px + var(--p, 0) * 40px) calc(150px - var(--p, 0) * 70px) calc(44px - var(--p, 0) * 10px) calc(44px + var(--p, 0) * 70px);
}
.vx-sheet__pic > .vx-par { transform: translateY(calc(var(--p, 0) * -14px)) rotate(calc(var(--p, 0) * -6deg)); }

/* --- движение по прокрутке в обе стороны (--e: 0 у края экрана, 1 — блок вошёл), у каждого вида своё --- */
.js-motion .page[data-vitrina] .vx-e { opacity: var(--e, 1); translate: none; scale: none; transition: none; }
/* свой слой — только блоку, который сейчас едет (site.js ставит is-live): постоянные слои у всех блоков
   съедали память телефона, и встроенный браузер Instagram перезагружал страницу (27.10.2026) */
.js-motion .page[data-vitrina] .vx-e.is-live { will-change: transform; }
/* круги составляющих выкатываются с разных сторон и докручиваются */
.js-motion .vx-e--swing { transform: translateX(calc(var(--s, 1) * (1 - var(--e, 1)) * 90px)) rotate(calc(var(--s, 1) * (1 - var(--e, 1)) * 24deg)); }
/* пункты 01–03 выезжают справа */
.js-motion .vx-e--slide { transform: translateX(calc((1 - var(--e, 1)) * 110px)); }
/* карточки карусели раскрываются веером снизу */
.js-motion .vx-e--fan { transform-origin: 50% 120%; transform: translateY(calc((1 - var(--e, 1)) * (60px + var(--i, 0) * 34px))) rotate(calc((1 - var(--e, 1)) * (var(--i, 0) * 4deg - 6deg))); }
/* строки паспорта проявляются слева направо */
.js-motion .page[data-vitrina] .vx-e--wipe { opacity: 1; clip-path: inset(0 calc((1 - var(--e, 1)) * 100%) 0 0); }
/* таблетки выпрыгивают */
.js-motion .vx-e--pop { transform: translateY(calc((1 - var(--e, 1)) * (24px + var(--i, 0) * 10px))) scale(calc(.5 + .5 * var(--e, 1))); }
/* карточки колец поднимаются, кольцо наполняется вместе с прокруткой */
.js-motion .vx-e--rise { transform: translateY(calc((1 - var(--e, 1)) * 80px)) scale(calc(.9 + .1 * var(--e, 1))); }
.js-motion .vx-e--rise .vx-ring { --val: calc(var(--to) * var(--e, 1)); transition: none; }
/* фото ленты въезжают вбок со сдвигом друг за другом */
.js-motion .vx-e--drift { transform: translateX(calc((1 - var(--e, 1)) * (90px + var(--i, 0) * 50px))) rotate(calc((1 - var(--e, 1)) * 5deg)); }
/* шаги заходят попеременно слева и справа */
.js-motion .vx-e--step { transform: translateX(calc(var(--s, 1) * (1 - var(--e, 1)) * 70px)); }
/* крупное фото: окно раскрывается от середины, картинка за ним наезжает */
.js-motion .page[data-vitrina] .vx-e--zoom { opacity: 1; clip-path: inset(calc((1 - var(--e, 1)) * 14%) calc((1 - var(--e, 1)) * 8%) round var(--vx-r-big)); }
.js-motion .vx-e--zoom :is(.media__img, .media__video) { scale: calc(1.2 - .2 * var(--e, 1)); }
/* абзацы поднимаются строками */
.js-motion .vx-e--line { transform: translateY(calc((1 - var(--e, 1)) * 36px)); }

/* ===== «Пена» (R00305, 25.10.2026): матовое стекло над фото (пин «Spatial Designer»), мозаика плиток («Glisty Skincare»),
   движение — стекло всплывает и мутнеет, плитки слетаются из разных сторон ===== */
.page[data-kit="pena"][data-vitrina] :is(.prose p, .prose li, .phero__text, .psec__body, .psec__body p, .step__body, .step__body p) { font-family: var(--font); }
.page[data-kit="pena"][data-vitrina] mark.hl { background: linear-gradient(90deg, #CDEBF7, #E2DCF5); }

/* glass: фото во всю ширину, стеклянная карточка наезжает на него снизу */
.vx-glass { position: relative; display: grid; grid-template-columns: minmax(0, 1fr); }
.vx-glass__stage { border-radius: var(--vx-r-big); overflow: hidden; }
.vx-glass__media { aspect-ratio: 4 / 5; border-radius: var(--vx-r-big); }
.vx-glass__media :is(.media__img, .media__video) { scale: calc(1.08 + var(--p, 0) * .06); }
.vx-glass__card {
  position: relative; z-index: 1; margin: -38% 12px 0; padding: 24px 20px 22px; border-radius: 30px;
  background: rgb(255 255 255 / .62); border: 1px solid rgb(255 255 255 / .8);
  -webkit-backdrop-filter: blur(18px) saturate(1.3); backdrop-filter: blur(18px) saturate(1.3);
  box-shadow: 0 30px 60px -36px rgb(11 44 74 / .45), inset 0 1px 0 rgb(255 255 255 / .9);
}
.vx-glass__card .vx-nums li { background: rgb(255 255 255 / .7); box-shadow: none; }
.js-motion .vx-e--glass {
  transform: translateY(calc((1 - var(--e, 1)) * 140px));
  -webkit-backdrop-filter: blur(calc(2px + var(--e, 1) * 16px)) saturate(1.3); backdrop-filter: blur(calc(2px + var(--e, 1) * 16px)) saturate(1.3);
}
/* Телефон и встроенный браузер соцсети (.inapp): без размытия под стеклом и в заголовках — эти эффекты
   держат в памяти копии картинки и пересчитываются на каждом шаге прокрутки. Стекло — плотная белая карточка. */
@media (max-width: 767px) {
  .vx-glass__card, .js-motion .vx-e--glass { -webkit-backdrop-filter: none; backdrop-filter: none; background: rgb(255 255 255 / .9); }
  .js-motion .vx-e--fizz { filter: none; }
}
.inapp .vx-glass__card, .inapp.js-motion .vx-e--glass { -webkit-backdrop-filter: none; backdrop-filter: none; background: rgb(255 255 255 / .9); }
.inapp.js-motion .vx-e--fizz { filter: none; }
/* Браузер соцсети — лёгкий вид (владелец, 29.10.2026: страница всё равно перезагружалась). Движения по прокрутке
   там нет (site.js); размытие, тень-фильтр, маска и бесконечная анимация тоже держат по своему слою на телефоне. */
.inapp :is(*, *::before, *::after) {
  filter: none !important; -webkit-backdrop-filter: none !important; backdrop-filter: none !important;
  animation: none !important; will-change: auto !important;
}
.inapp .psec[data-edge="wave"]::before { -webkit-mask: none; mask: none; }

/* tiles: мозаика — большая плитка и маленькие с подписью */
.vx-tiles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 24px; }
.vx-tile { display: grid; align-content: start; gap: 10px; padding: 8px 8px 14px; border-radius: 26px; background: var(--vx-card); box-shadow: var(--vx-shadow); overflow: hidden; }
.vx-tile__media { aspect-ratio: 1; border-radius: 20px; }
.vx-tile--big { grid-column: 1 / -1; padding: 0; }
.vx-tile--big .vx-tile__media { aspect-ratio: 16 / 11; border-radius: 26px; }
.vx-tile__words { padding: 0 8px; }
.vx-tile h3 { font-size: 1rem; }
.vx-tile p { margin-top: 4px; font-size: var(--fs-min); line-height: 1.4; color: var(--ink-muted); }
.js-motion .vx-e--scatter {
  transform: translate(calc(var(--tx, 0) * (1 - var(--e, 1)) * 34vw), calc(var(--ty, 0) * (1 - var(--e, 1)) * 120px)) rotate(calc(var(--tr, 0) * (1 - var(--e, 1)) * 14deg));
}

@media (min-width: 900px) {
  /* фото — во всю ширину и во всю высоту карточки, карточка стоит справа поверх него */
  .page[data-vitrina] .vx-glass { grid-template-columns: minmax(0, 1fr) minmax(0, 540px); }
  .vx-glass__stage { grid-area: 1 / 1 / 2 / 3; }
  .vx-glass__media { width: 100%; height: 100%; min-height: 620px; aspect-ratio: auto; }
  .vx-glass__card { grid-area: 1 / 2; align-self: center; margin: 56px 48px 56px 0; padding: 36px 34px 30px; }
  .vx-tiles { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
  .vx-tile--big { grid-column: 1 / span 2; grid-row: 1 / span 2; }
  /* большая плитка — на две строки, картинка заполняет её целиком (иначе высота схлопывается в ноль) */
  .vx-tile--big { position: relative; min-height: 360px; }
  .vx-tile--big .vx-tile__media { position: absolute; inset: 0; aspect-ratio: auto; }
}
@media (min-width: 900px) { .vx-glass__media :is(.media__img, .media__video) { object-position: 30% 65%; } }

/* ===== «Ханбан» (R00601) и «Шёлк» (R00661), 25.10.2026: сцена из трёх полос (пин «Mori Matcha»), венок трав вокруг
   флакона (пин «Notes»), карточки-арки (пин «Rejuvenate Your Skin»), буквы заголовков сходятся из «спутанных» ===== */
.page[data-kit="hanbang"][data-vitrina] :is(h1, .psec h2) { letter-spacing: -.02em; line-height: 1.04; }
.page[data-kit="hanbang"][data-vitrina] mark.hl { font-style: italic; font-weight: 400; }
/* PT Serif 700 шире гротеска: длинное слово заголовка («слабокислым») не должно рваться посередине */
.page[data-kit="hanbang"] .phero__text h1 { font-size: clamp(2rem, 7.6vw, 3.6rem); }
.page[data-kit="shelk"][data-vitrina] :is(h1, .psec h2) { letter-spacing: -.045em; line-height: 1.02; }
/* «pH 6–7»: регистр как в слове (заглавное «PH» — ошибка) */
.page[data-kit="shelk"] .vx-tilt__word { text-transform: none; }
.page[data-kit="shelk"][data-vitrina] mark.hl { font-family: var(--vx-word); font-style: italic; font-weight: 500; letter-spacing: -.01em; }

/* strips: одна сцена в трёх полосах с просветами, полосы едут с разной скоростью (--k) и сходятся посередине экрана */
.vx-strips { display: grid; grid-template-columns: minmax(0, 1fr); gap: 26px; }
.vx-strips__stage { position: relative; aspect-ratio: 4 / 5; border-radius: var(--vx-r-big); overflow: hidden; background: var(--paper); }
.vx-strips__band {
  position: absolute; inset: -14% 0;
  clip-path: inset(0 calc(33.333% + 3px) 0 calc(33.333% + 3px));
  transform: translateY(calc(var(--k, 1) * var(--p, 0) * 40px));
}
.vx-strips__band:first-child { clip-path: inset(0 calc(66.667% + 3px) 0 0); }
.vx-strips__band:last-child { clip-path: inset(0 0 0 calc(66.667% + 3px)); }
.vx-strips__media { width: 100%; height: 100%; border-radius: 0; }
.vx-strips__media :is(.media__img, .media__video) { width: 100%; height: 100%; object-fit: cover; }

/* wreath: круглые картинки по кругу, в центре вырезка товара на светлом диске; размеры — от ширины кольца (cqi) */
.vx-wreath { display: grid; grid-template-columns: minmax(0, 1fr); gap: 22px; }
.vx-wreath__ring { position: relative; width: min(100%, 560px); aspect-ratio: 1; margin: 0 auto 9cqi; container-type: inline-size; }
.vx-wreath__disc { position: absolute; inset: 24%; border-radius: 50%; background: radial-gradient(circle at 50% 40%, #FFFFFF, var(--vx-p2) 55%, var(--vx-p1)); }
.vx-wreath__core { position: absolute; z-index: 0; left: 50%; top: 50%; height: 42cqi; width: auto; aspect-ratio: var(--ar, .45); translate: -50% -50%; background: none; }
.vx-wreath__core .media__img { object-fit: contain; }
.vx-wreath__ring ul { position: absolute; inset: 0; margin: 0; padding: 0; list-style: none; }
.vx-leaf {
  --turn: calc(var(--a) + (1 - var(--e, 1)) * -70deg);
  position: absolute; z-index: 1; left: 50%; top: 50%; width: 15cqi; margin: -7.5cqi 0 0 -7.5cqi;
  display: grid; justify-items: center; gap: 4px; text-align: center;
  transform: rotate(var(--turn)) translateX(calc(38cqi * (.12 + .88 * var(--e, 1)))) rotate(calc(-1 * var(--turn)));
}
.page[data-vitrina] .vx-leaf .vx-leaf__media { width: 100%; aspect-ratio: 1; border-radius: 50%; box-shadow: 0 0 0 4px var(--vx-card), var(--vx-shadow); }
/* подпись — таблетка на нижнем краю кружка, не шире промежутка до соседнего кружка, слова не рвутся */
.page[data-vitrina] .vx-leaf h3 {
  position: relative; z-index: 1; width: max-content; max-width: 21cqi; margin-top: -9px; padding: 2px 6px; border-radius: 999px; background: rgb(255 255 255 / .9);
  font-size: clamp(.58rem, 2.5cqi, .82rem); font-weight: 600; line-height: 1.12; letter-spacing: 0; overflow-wrap: normal; hyphens: manual;
}

/* arches: карточки с арочным верхом; арка вырастает из низкой таблетки (--g), фото внутри отъезжает */
.vx-arches { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 12px; margin: 26px 0 0; padding: 0; list-style: none; }
.vx-arch { display: grid; align-content: start; gap: 12px; }
.vx-arch:first-child { grid-column: 1 / -1; }
.vx-arch__media { aspect-ratio: 3 / 4; border-radius: 999px 999px 26px 26px; }
.vx-arch:first-child .vx-arch__media { width: 82%; justify-self: center; aspect-ratio: 1; }
.vx-arch__words { padding: 0 4px; }
.vx-arch__words p { margin-top: 4px; font-size: var(--fs-min); line-height: 1.45; color: var(--ink-muted); }
.vx-arch:first-child .vx-arch__words { text-align: center; }
.js-motion .vx-e--arch { --g: clamp(0, calc(var(--e, 1) * 1.6 - var(--i, 0) * .25), 1); }
.js-motion .vx-e--arch .vx-arch__media { clip-path: inset(calc((1 - var(--g)) * 62%) 0 0 0 round 999px 999px 26px 26px); }
.js-motion .vx-e--arch .vx-arch__media :is(.media__img, .media__video) { scale: calc(1.25 - .25 * var(--g)); }
.js-motion .vx-e--arch .vx-arch__words { transform: translateY(calc((1 - var(--g)) * 30px)); }

/* «Шёлк»: буквы заголовков разделов стоят вразброс («спутаны») и сходятся в ровную строку по прокрутке (--e у заголовка) */
.page[data-kit="shelk"] .psec h2 .ch {
  display: inline-block;
  transform: translateY(calc(var(--dy, 0) * (1 - var(--e, 1)) * .75em)) rotate(calc(var(--dr, 0) * (1 - var(--e, 1)) * 28deg));
}

/* 26.10.2026 — у каждого нового облика два своих движения: заголовок раздела и слово-плашка (--e у заголовка, site.js vxKinds) */
/* «Кислород»: заголовок всплывает пузырём — снизу, из размытия; слово-плашка «вскипает» из точки */
.js-motion .vx-e--fizz { transform: translateY(calc((1 - var(--e, 1)) * 1.1em)) scale(calc(.92 + .08 * var(--e, 1))); filter: blur(calc((1 - var(--e, 1)) * 10px)); }
.js-motion .vx-e--fizz mark.hl { display: inline-block; white-space: nowrap; transform: scale(calc(.2 + .8 * var(--e, 1))); border-radius: 999px; }
/* «Капсула»: заголовок въезжает по диагонали, как строка «One Planet»; слово-плашка наливается слева, как жидкость в капсулу */
.js-motion .vx-e--diag { transform: translate(calc((1 - var(--e, 1)) * -18vw), calc((1 - var(--e, 1)) * 2.2em)) rotate(calc((1 - var(--e, 1)) * -9deg)); transform-origin: 0 100%; }
.js-motion .vx-e--diag mark.hl { background: linear-gradient(90deg, var(--vx-hl) calc(var(--e, 1) * 100%), transparent 0); }
/* «Волна»: буквы заголовка качаются волной и выравниваются; слово-плашка покачивается, как губка на воде */
.page[data-kit="volna"] .psec h2 .ch { display: inline-block; transform: translateY(calc(var(--dy, 0) * (1 - var(--e, 1)) * .55em)); }
.js-motion .vx-e--wave mark.hl { display: inline-block; white-space: nowrap; transform: rotate(calc((1 - var(--e, 1)) * -7deg)) translateY(calc((1 - var(--e, 1)) * .3em)); }
/* «Губы»: заголовок «распускается» из узкой строки в широкую; слово-плашка надувается пузырём */
.js-motion .vx-e--bloom-text { letter-spacing: calc(-.2em + .165em * var(--e, 1)); transform: scaleX(calc(.8 + .2 * var(--e, 1))); transform-origin: 0 50%; }
.js-motion .vx-e--bloom-text mark.hl { display: inline-block; white-space: nowrap; transform: scale(calc(.6 + .4 * var(--e, 1))) rotate(calc((1 - var(--e, 1)) * 6deg)); }
/* «Золото»: заголовок стекает сверху вниз, как капля масла (окно раскрывается сверху); слово-плашка — золотая полоса растёт снизу */
.js-motion .vx-e--drip { clip-path: inset(0 0 calc((1 - var(--e, 1)) * 100%) 0); transform: translateY(calc((1 - var(--e, 1)) * -.4em)); }
.js-motion .vx-e--drip mark.hl { background: linear-gradient(0deg, var(--vx-hl) calc(var(--e, 1) * 100%), transparent 0); }

@media (min-width: 900px) {
  .page[data-vitrina] .vx-strips { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 64px; align-items: center; }
  .vx-strips__stage { max-height: 84vh; }
  .page[data-vitrina] .vx-wreath { grid-template-columns: minmax(0, 1fr) minmax(0, 560px); gap: 0 64px; align-items: start; }
  .vx-wreath__head { grid-column: 1; grid-row: 1; }
  .vx-wreath__body { grid-column: 1; grid-row: 2; }
  .vx-wreath__ring { grid-column: 2; grid-row: 1 / span 2; align-self: center; }
  .page[data-vitrina] .vx-arches { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; align-items: start; }
  .vx-arch:first-child { grid-column: auto; }
  .vx-arch:first-child .vx-arch__media { width: 100%; aspect-ratio: 3 / 4; }
  .vx-arch:first-child .vx-arch__words { text-align: left; }
  .vx-arch:nth-child(2) { margin-top: 64px; }
  .vx-arches__head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 64px; align-items: end; }
}

/* 27.10.2026: «Арабика» (R00973), «Спирулина» (R00178), «Перла» (R00266), «Бриз» (R00826), «Карамель» (R00261) —
   владелец: «ярко, сочно, каждый раз новый дизайн»; цвета — k-средних по упаковке, сочнее на полтона */
.page[data-kit="arabika"] {
  --vx-hl: #2FC6D6; --vx-hl-ink: #24140D; --vx-p1: #F5DDBB; --vx-p2: #C9F1F5; --vx-num: #B5652A; --vx-deep: #2A1710;
  --vx-head: var(--font); --vx-head-w: 900; --vx-word: var(--font); --vx-word-w: 900;
}
.page[data-kit="spirulina"] {
  --vx-hl: #C6EC6A; --vx-hl-ink: #10261A; --vx-p1: #DDF2C6; --vx-p2: #C9EEE8; --vx-num: #23824C; --vx-deep: #10261A;
  --vx-head: var(--font); --vx-head-w: 600; --vx-word: "Cormorant Au", Georgia, serif; --vx-word-w: 600;
}
.page[data-kit="perla"] {
  --vx-hl: #FFC2CC; --vx-hl-ink: #3A1F2B; --vx-p1: #FFE0DD; --vx-p2: #FFE6CF; --vx-num: #D2486E; --vx-deep: #3A1F2B;
  --vx-head: "Cormorant Au", Georgia, serif; --vx-head-w: 500; --vx-word: var(--font); --vx-word-w: 900;
}
.page[data-kit="briz"] {
  --vx-hl: #8EE3EC; --vx-hl-ink: #0B2A3A; --vx-p1: #D1F1F4; --vx-p2: #DCE6F7; --vx-num: #138C9C; --vx-deep: #0B2A3A;
  --vx-head: var(--font); --vx-head-w: 800; --vx-word: var(--font); --vx-word-w: 200;
}
.page[data-kit="karamel"] {
  --vx-hl: #F6C7A2; --vx-hl-ink: #2E1A12; --vx-p1: #F6DCC6; --vx-p2: #D3EEF9; --vx-num: #B0704E; --vx-deep: #3B2418;
  --vx-head: "Cormorant Au", Georgia, serif; --vx-head-w: 700; --vx-word: var(--font); --vx-word-w: 300;
}
body:has(.page[data-kit="arabika"]) { background: linear-gradient(180deg, #E4F8FA 0%, #FFF6EA 30%, #FCEBD3 70%, #DDF5F8 100%); }
body:has(.page[data-kit="spirulina"]) { background: linear-gradient(180deg, #E9F8DC 0%, #F6FCF1 35%, #DDF4EE 75%, #E6F7D6 100%); }
body:has(.page[data-kit="perla"]) { background: linear-gradient(180deg, #FFE9EC 0%, #FFF7F5 35%, #FFEBDD 75%, #FFE2E8 100%); }
body:has(.page[data-kit="briz"]) { background: linear-gradient(180deg, #DFF5F8 0%, #F6FCFD 35%, #E3ECFA 75%, #D7F2F5 100%); }
body:has(.page[data-kit="karamel"]) { background: linear-gradient(180deg, #FFEBDD 0%, #FFF8F2 35%, #E5F4FB 75%, #FBE3D2 100%); }
/* заголовки «Арабики» — прописные, плотные, как надпись на мешке зёрен */
.page[data-kit="arabika"][data-vitrina] .psec h2 { text-transform: uppercase; letter-spacing: -.045em; line-height: 1.04; }
.page[data-kit="perla"][data-vitrina] :is(h1, .psec h2) { letter-spacing: -.015em; line-height: 1; }
.page[data-kit="perla"][data-vitrina] .psec h2 { font-size: clamp(2.4rem, 10.6vw, 5rem); }
.page[data-kit="karamel"][data-vitrina] mark.hl, .page[data-kit="spirulina"][data-vitrina] mark.hl { font-style: italic; }

/* «Арабика»: слова заголовка падают, как зёрна, каждое со своим поворотом, и ложатся в строку;
   плашка — пенка: заливка расходится кругом из середины */
.page[data-kit="arabika"] .psec h2 .w { display: inline-block; }
.js-motion .vx-e--tumble .w { transform: translateY(calc((1 - var(--e, 1)) * -.9em)) rotate(calc((1 - var(--e, 1)) * var(--tw, 0) * 24deg)); }
.js-motion .vx-e--tumble mark.hl { background: radial-gradient(circle at 50% 50%, var(--vx-hl) calc(var(--e, 1) * 75%), transparent calc(var(--e, 1) * 75% + 1%)); }
/* «Спирулина»: заголовок колышется, как водоросль в течении, и выпрямляется; плашка поднимается пузырём снизу */
.js-motion .vx-e--sway { transform: skewX(calc((1 - var(--e, 1)) * -16deg)) translateX(calc((1 - var(--e, 1)) * 1.2em)); transform-origin: 0 100%; }
.js-motion .vx-e--sway mark.hl { display: inline-block; white-space: nowrap; transform: translateY(calc((1 - var(--e, 1)) * .8em)) scale(calc(.7 + .3 * var(--e, 1))); }
/* «Перла»: по заголовку проходит жемчужный блик; плашка переливается перламутром.
   Блик — на каждом слове, не на заголовке: слова выезжают по одному со своим сдвигом, и заливка текста по всему
   заголовку рисовала буквы дважды (27.10.2026, снимок телефона) */
.js-motion .vx-e--shine .w {
  background: linear-gradient(100deg, var(--ink) 40%, #F7A9BB 48%, #FFF4F6 50%, #F7A9BB 52%, var(--ink) 60%) no-repeat;
  background-size: 300% 100%; background-position: calc(100% - var(--e, 1) * 100%) 0;
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}
.js-motion .vx-e--shine mark.hl .w { background: none; -webkit-text-fill-color: var(--vx-hl-ink); }
.js-motion .vx-e--shine mark.hl {
  -webkit-text-fill-color: var(--vx-hl-ink);
  background: linear-gradient(110deg, #FFC2CC 30%, #FFF1E6 50%, #FFC2CC 70%); background-size: 260% 100%;
  background-position: calc(var(--e, 1) * 100%) 0;
}
/* «Бриз»: заголовок разворачивается сверху, как лист порошка; плашка растворяется в воде наоборот — проступает из прозрачной */
.js-motion .vx-e--unfold { transform: scaleY(calc(.35 + .65 * var(--e, 1))) skewY(calc((1 - var(--e, 1)) * -6deg)); transform-origin: 50% 0; }
.js-motion .vx-e--unfold mark.hl { background: color-mix(in srgb, var(--vx-hl) calc(var(--e, 1) * 100%), transparent); box-shadow: 0 0 0 calc((1 - var(--e, 1)) * 10px) color-mix(in srgb, var(--vx-hl) 30%, transparent); }
/* «Карамель»: заголовок проявляется косым мазком крема слева направо; плашка растягивается мазком */
.js-motion .vx-e--smear { clip-path: polygon(0 0, calc(var(--e, 1) * 125%) 0, calc(var(--e, 1) * 125% - 25%) 100%, 0 100%); }
.js-motion .vx-e--smear mark.hl { display: inline-block; white-space: nowrap; transform: scaleX(calc(.4 + .6 * var(--e, 1))) skewX(calc((1 - var(--e, 1)) * -20deg)); transform-origin: 0 50%; }

/* 29.10.2026: «Соты» (R00505), «Нони» (R00120), «Био» (R00164), «Фэйм» (R00198), «Кокос» (R00828);
   цвета — k-средних по вырезкам упаковки, сочнее на полтона; пины доски «Дизайн товаров», не взятые прошлыми страницами */
.page[data-kit="sota"] {
  --vx-hl: #FFC400; --vx-hl-ink: #2B1D05; --vx-p1: #FFEDB0; --vx-p2: #FFF6D6; --vx-num: #B07A00; --vx-deep: #2B1D05;
  --vx-head: "PT Serif Read", Georgia, serif; --vx-head-w: 700; --vx-word: var(--font); --vx-word-w: 800;
}
.page[data-kit="noni"] {
  --vx-hl: #B5D334; --vx-hl-ink: #16200A; --vx-p1: #E4F2B8; --vx-p2: #D5ECC9; --vx-num: #4E7A0E; --vx-deep: #16200A;
  --vx-head: "Cormorant Au", Georgia, serif; --vx-head-w: 500; --vx-word: var(--font); --vx-word-w: 700;
}
.page[data-kit="bio"] {
  --vx-hl: #FFE36A; --vx-hl-ink: #0E2A3D; --vx-p1: #D7F0FB; --vx-p2: #FFF4C2; --vx-num: #1A8CC0; --vx-deep: #0E2A3D;
  --vx-head: var(--font); --vx-head-w: 700; --vx-word: var(--font); --vx-word-w: 300;
}
.page[data-kit="fame"] {
  --vx-hl: #C9D6F2; --vx-hl-ink: #1F2D38; --vx-p1: #E3EAF2; --vx-p2: #ECE6F6; --vx-num: #4D6A88; --vx-deep: #1F2D38;
  --vx-head: "Cormorant Au", Georgia, serif; --vx-head-w: 300; --vx-word: "Cormorant Au", Georgia, serif; --vx-word-w: 500;
}
.page[data-kit="kokos"] {
  --vx-hl: #7FDCD3; --vx-hl-ink: #0C2E2B; --vx-p1: #D2F3EF; --vx-p2: #F1E6D8; --vx-num: #0F8A80; --vx-deep: #0C2E2B;
  --vx-head: var(--font); --vx-head-w: 900; --vx-word: "Cormorant Au", Georgia, serif; --vx-word-w: 500;
}
body:has(.page[data-kit="sota"]) { background: linear-gradient(180deg, #FFF0B8 0%, #FFFBEA 35%, #FFF3CC 75%, #FFE79A 100%); }
body:has(.page[data-kit="noni"]) { background: linear-gradient(180deg, #E6F3BF 0%, #F7FBEC 35%, #E1F0D6 75%, #D9EDA8 100%); }
body:has(.page[data-kit="bio"]) { background: linear-gradient(180deg, #DCF2FC 0%, #F6FBFE 35%, #FFF8D6 75%, #D9F0FB 100%); }
body:has(.page[data-kit="fame"]) { background: linear-gradient(180deg, #E4EAF3 0%, #F5F7FA 35%, #EEEAF6 75%, #DCE4EE 100%); }
body:has(.page[data-kit="kokos"]) { background: linear-gradient(180deg, #D6F4F0 0%, #F4FCFB 35%, #F6EEE4 75%, #CDEFEA 100%); }
.page[data-kit="fame"][data-vitrina] .psec h2 { font-size: clamp(2.3rem, 10vw, 4.8rem); letter-spacing: -.01em; line-height: 1.02; }
.page[data-kit="kokos"][data-vitrina] .psec h2 { letter-spacing: -.04em; line-height: 1.02; }
.page[data-kit="noni"][data-vitrina] mark.hl, .page[data-kit="fame"][data-vitrina] mark.hl { font-style: italic; }
/* длинные слова заголовка («ферментированный», «лактобактерий») не влезали в колонку и рвались посреди слова */
.page[data-kit="noni"] .phero__text h1, .page[data-kit="bio"] .phero__text h1 { font-size: clamp(2rem, 7.6vw, 3.6rem); }
/* «Пятновыводитель», «натуральных» жирным гротеском рвались посреди слова — на телефоне и в узкой колонке компьютера */
.page[data-kit="pyatno"] .phero__text h1, .page[data-kit="posuda"] .phero__text h1 { font-size: clamp(1.7rem, 6.9vw, 3rem); }

/* «Соты»: заголовок выдавливается из тюбика — узкой лентой слева, раскрывается в полную строку;
   плашка — шестигранник соты, растёт из середины и выпрямляется в полосу */
.js-motion .vx-e--squeeze { transform: scale(calc(.55 + .45 * var(--e, 1)), calc(.3 + .7 * var(--e, 1))); transform-origin: 0 60%; clip-path: inset(0 calc((1 - var(--e, 1)) * 70%) 0 0); }
/* фоном, а не clip-path: плашку в две строки clip-path обрезал по первой строке (30.10.2026) */
.js-motion .vx-e--squeeze mark.hl {
  background: linear-gradient(90deg, transparent calc((1 - var(--e, 1)) * 50%), var(--vx-hl) 0 calc(100% - (1 - var(--e, 1)) * 50%), transparent 0);
}
/* «Нони»: заголовок созревает — въезжает справа и наливается цветом из бледно-салатового;
   плашка разворачивается листом от нижнего левого угла */
.js-motion .vx-e--ripen { transform: translateX(calc((1 - var(--e, 1)) * 1.4em)); color: color-mix(in srgb, var(--ink) calc(35% + 65% * var(--e, 1)), #B5D334); }
.js-motion .vx-e--ripen mark.hl { display: inline-block; white-space: nowrap; transform: rotate(calc((1 - var(--e, 1)) * -24deg)) scale(calc(.7 + .3 * var(--e, 1))); transform-origin: 0 100%; }
/* «Био»: слова заголовка сходятся по очереди сверху и снизу, как колонии в одну строку;
   плашка — россыпь точек, которые растут и сливаются в сплошную заливку */
.page[data-kit="bio"] .psec h2 .w { display: inline-block; }
.js-motion .vx-e--merge .w { transform: translateY(calc((1 - var(--e, 1)) * var(--tw, 1) * .9em)); }
.js-motion .vx-e--merge mark.hl { background: radial-gradient(circle, var(--vx-hl) calc(var(--e, 1) * 72%), transparent calc(var(--e, 1) * 72% + 1%)) 0 0 / 9px 9px; }
/* «Фэйм»: слова по очереди поднимаются и проявляются, как занавес вверх (у каждого слова своя задержка --wi);
   плашка — серебряная заливка расходится из середины в стороны */
.page[data-kit="fame"] .psec h2 .w { display: inline-block; }
.js-motion .vx-e--curtain .w {
  --we: clamp(0, calc(var(--e, 1) * 1.8 - var(--wi, 0) * .12), 1);
  transform: translateY(calc((1 - var(--we)) * .7em)); opacity: var(--we);
}
.js-motion .vx-e--curtain mark.hl { background: linear-gradient(var(--vx-hl), var(--vx-hl)) 50% 50% / calc(var(--e, 1) * 100%) 100% no-repeat; }
/* «Кокос»: слова плывут облаками — каждое со своим сдвигом вбок — и встают в строку;
   плашка — облако: мягкое размытое пятно собирается в чёткую полосу */
.page[data-kit="kokos"] .psec h2 .w { display: inline-block; }
.js-motion .vx-e--cloud .w { transform: translateX(calc((1 - var(--e, 1)) * var(--tw, 0) * 1.6em)); }
.js-motion .vx-e--cloud mark.hl { border-radius: calc(.15em + (1 - var(--e, 1)) * 1em); box-shadow: 0 0 calc((1 - var(--e, 1)) * 18px) calc((1 - var(--e, 1)) * 8px) var(--vx-hl); }
/* пока слова не пришли, плашка не видна: иначе на месте заголовка висит пустая светящаяся рамка (29.10.2026) */
.js-motion [data-reveal="words"]:not(.is-in) mark.hl { visibility: hidden; }

/* 29.10.2026, вторая пятёрка: «Пятно» (R02303), «Мыло» (R00541), «Бархат» (R00542), «Посуда» (R00829), «Дорога» (R00520);
   цвета — k-средних по вырезкам, сочнее на полтона; приёмы — пины доски «Дизайн веб-сайтов» (One Planet, Natural Space,
   Velvéa, Lunuxl, Grow Best Food, Brew Brighter): огромное косое слово, волнистые края */
.page[data-kit="pyatno"] {
  --vx-hl: #7FD6DE; --vx-hl-ink: #10292D; --vx-p1: #DDF1F3; --vx-p2: #EEF6F7; --vx-num: #13707A; --vx-deep: #10292D;
  --vx-head: var(--font); --vx-head-w: 900; --vx-word: var(--font); --vx-word-w: 400;
}
.page[data-kit="mylo"] {
  --vx-hl: #8FE6EE; --vx-hl-ink: #0A2633; --vx-p1: #D3F3F7; --vx-p2: #E6F4FB; --vx-num: #0A7F90; --vx-deep: #0A2633;
  --vx-head: var(--font); --vx-head-w: 300; --vx-word: var(--font); --vx-word-w: 800;
}
.page[data-kit="barhat"] {
  --vx-hl: #F9B4C3; --vx-hl-ink: #3A1C24; --vx-p1: #FBE1E3; --vx-p2: #F3EBD9; --vx-num: #A8455C; --vx-deep: #3A1C24;
  --vx-head: "Cormorant Au", Georgia, serif; --vx-head-w: 500; --vx-word: "Cormorant Au", Georgia, serif; --vx-word-w: 600;
}
.page[data-kit="posuda"] {
  --vx-hl: #D4EE5A; --vx-hl-ink: #0B2730; --vx-p1: #D2F1F8; --vx-p2: #F4F9D8; --vx-num: #0A7690; --vx-deep: #0B2730;
  --vx-head: var(--font); --vx-head-w: 800; --vx-word: var(--font); --vx-word-w: 800;
}
.page[data-kit="doroga"] {
  --vx-hl: #F2DC94; --vx-hl-ink: #0B2532; --vx-p1: #D7EEF5; --vx-p2: #F6EEDB; --vx-num: #0B7590; --vx-deep: #0B2532;
  --vx-head: "PT Serif Read", Georgia, serif; --vx-head-w: 400; --vx-word: var(--font); --vx-word-w: 700;
}
body:has(.page[data-kit="pyatno"]) { background: linear-gradient(180deg, #DDF2F4 0%, #F4FAFB 35%, #EAF5F2 75%, #CDEBEE 100%); }
body:has(.page[data-kit="mylo"]) { background: linear-gradient(180deg, #D8F1FA 0%, #F3FAFE 35%, #E3F7F9 75%, #CBEAF7 100%); }
body:has(.page[data-kit="barhat"]) { background: linear-gradient(180deg, #FCE3E6 0%, #FFF7F6 35%, #F7EEDF 75%, #F8D9DF 100%); }
body:has(.page[data-kit="posuda"]) { background: linear-gradient(180deg, #D3F1F8 0%, #F2FBFD 35%, #F5FAE0 75%, #C9EDF6 100%); }
body:has(.page[data-kit="doroga"]) { background: linear-gradient(180deg, #D6EEF6 0%, #F4FAFC 35%, #F8F1E1 75%, #CFE8F2 100%); }
.page[data-kit="pyatno"][data-vitrina] .psec h2 { letter-spacing: -.035em; line-height: 1; }
.page[data-kit="mylo"][data-vitrina] .psec h2 { font-size: clamp(2.2rem, 9.6vw, 4.6rem); letter-spacing: -.02em; line-height: 1.04; }
.page[data-kit="mylo"][data-vitrina] mark.hl { font-weight: 800; border-radius: 999px; padding-inline: .3em; }
.page[data-kit="barhat"][data-vitrina] mark.hl { font-style: italic; }
.page[data-kit="doroga"][data-vitrina] mark.hl { font-style: italic; }
.page[data-kit="mylo"] .psec h2 .w, .page[data-kit="posuda"] .psec h2 .w, .page[data-kit="doroga"] .psec h2 .w { display: inline-block; }
/* огромное слово каждого облика — своим контуром */
.page[data-kit="pyatno"] .vx-giant span { color: color-mix(in srgb, #13707A 14%, transparent); -webkit-text-stroke-color: color-mix(in srgb, #13707A 50%, transparent); }
.page[data-kit="posuda"] .vx-giant span { color: color-mix(in srgb, #8DB80F 14%, transparent); -webkit-text-stroke-color: color-mix(in srgb, #8DB80F 50%, transparent); }
.page[data-kit="doroga"] .vx-giant span { font-family: "PT Serif Read", Georgia, serif; font-style: italic; color: color-mix(in srgb, #B08A2E 14%, transparent); -webkit-text-stroke-color: color-mix(in srgb, #B08A2E 50%, transparent); }
.page[data-kit="mylo"] .vx-giant span { color: color-mix(in srgb, #06C4D0 14%, transparent); -webkit-text-stroke-color: color-mix(in srgb, #06C4D0 50%, transparent); }
.page[data-kit="mylo"] .psec[data-edge="wave"] { --vx-wave: #D3F3F7; }
.page[data-kit="barhat"] .psec[data-edge="wave"] { --vx-wave: #FBE1E3; }
.page[data-kit="pyatno"] .psec[data-edge="wave"] { --vx-wave: #D2EEF1; }
.page[data-kit="posuda"] .psec[data-edge="wave"] { --vx-wave: #EEF8C8; }
.page[data-kit="doroga"] .psec[data-edge="wave"] { --vx-wave: #F6EEDB; }
/* огромное слово проявляется, пока раздел входит на экран */
.js-motion .vx-e--giant span { opacity: calc(.15 + .85 * var(--e, 1)); letter-spacing: calc(-.04em + (1 - var(--e, 1)) * .3em); }

/* «Пятно»: заголовок проступает, как ткань после стирки, — из размытого пятна в чёткие буквы;
   плашка — круг, который расходится из середины в полосу (пятно наоборот: чистое растёт) */
.js-motion .vx-e--blot { filter: blur(calc((1 - var(--e, 1)) * 10px)); transform: scale(calc(.92 + .08 * var(--e, 1))); transform-origin: 0 50%; }
.js-motion .vx-e--blot mark.hl { display: inline-block; white-space: nowrap; clip-path: circle(calc(var(--e, 1) * 75%) at 50% 50%); }
/* «Мыло»: слова всплывают по очереди, как пузыри, — снизу, маленькими, и встают в строку;
   плашка — пузырьки, которые сливаются в капсулу */
.js-motion .vx-e--foam .w {
  --we: clamp(0, calc(var(--e, 1) * 1.7 - var(--wi, 0) * .1), 1);
  transform: translateY(calc((1 - var(--we)) * 1.1em)) scale(calc(.55 + .45 * var(--we)));
}
.js-motion .vx-e--foam mark.hl { background: radial-gradient(circle, var(--vx-hl) calc(35% + var(--e, 1) * 40%), transparent calc(36% + var(--e, 1) * 40%)) 0 50% / 14px 14px, color-mix(in srgb, var(--vx-hl) calc(var(--e, 1) * 100%), transparent); }
/* «Бархат»: заголовок выдавливается из дозатора — сплющен снизу, буквы разъезжаются и встают;
   плашка — капля крема растягивается слева направо в полосу с круглым концом */
.js-motion .vx-e--press { transform: scaleY(calc(.45 + .55 * var(--e, 1))); transform-origin: 0 100%; letter-spacing: calc((1 - var(--e, 1)) * .18em); }
.js-motion .vx-e--press mark.hl { display: inline-block; white-space: nowrap; clip-path: inset(0 calc((1 - var(--e, 1)) * 100%) 0 0 round 999px); }
/* «Посуда»: слова переворачиваются по очереди, как тарелки в сушилке; плашка наливается снизу, как вода в раковину */
.page[data-kit="posuda"] .psec h2 { perspective: 600px; }
/* «д» и «у» жирного гротеска задевали строку ниже, плашка — строку выше («и детские / бутылочки», 29.10.2026) */
.page[data-kit="posuda"][data-vitrina] .psec h2 { line-height: 1.18; }
.js-motion .vx-e--flip .w {
  --we: clamp(0, calc(var(--e, 1) * 1.7 - var(--wi, 0) * .1), 1);
  transform: rotateX(calc((1 - var(--we)) * 88deg)); transform-origin: 50% 100%;
}
.js-motion .vx-e--flip mark.hl { background: linear-gradient(var(--vx-hl), var(--vx-hl)) 0 100% / 100% calc(var(--e, 1) * 100%) no-repeat; }
/* «Дорога»: вещи укладываются в футляр — слова по очереди въезжают слева; плашка пришита пунктиром и заполняется */
.js-motion .vx-e--pack .w {
  --we: clamp(0, calc(var(--e, 1) * 1.7 - var(--wi, 0) * .1), 1);
  transform: translateX(calc((1 - var(--we)) * -1.2em)); opacity: calc(.2 + .8 * var(--we));
}
.js-motion .vx-e--pack mark.hl {
  background: color-mix(in srgb, var(--vx-hl) calc(var(--e, 1) * 100%), transparent);
  outline: 2px dashed color-mix(in srgb, #B08A2E calc((1 - var(--e, 1)) * 100%), transparent); outline-offset: 2px;
}

/* мост (27.10.2026, пины Becos и Lemonade): вырезка висит поперёк стыка с предыдущим разделом, наполовину в нём,
   плывёт и поворачивается за прокруткой; стороны чередуются */
.page[data-vitrina] .psec { position: relative; }
.vx-bridge {
  position: absolute; z-index: 3; top: 0; width: clamp(160px, 48vw, 300px); translate: 0 -55%; pointer-events: none;
}
.vx-bridge[data-side="right"] { right: max(-24px, -3vw); }
.vx-bridge[data-side="left"] { left: max(-24px, -3vw); }
.vx-bridge > .vx-par { transform: translateY(calc(var(--p, 0) * -46px)) rotate(calc(var(--p, 0) * -16deg + var(--tilt, -10deg))); }
.vx-bridge[data-side="left"] > .vx-par { --tilt: 12deg; }
.vx-bridge .vx-bridge__media { width: 100%; height: auto; aspect-ratio: var(--ar, 1); background: none; filter: drop-shadow(0 26px 30px rgb(30 20 10 / .28)); }
.vx-bridge .vx-bridge__media .media__img { object-fit: contain; }
.js-motion .vx-e--bridge > .vx-par { scale: calc(.6 + .4 * var(--e, 1)); }
.page[data-vitrina] .psec:has(> .wrap > .vx-bridge) > .wrap { padding-top: clamp(40px, 9vw, 90px); }

/* косая лента (27.10.2026, пин Velvéa): полоса цвета облика поперёк стыка, слова бегут, пока она на экране */
.vx-ribbon {
  position: relative; z-index: 2; width: 120vw; margin: calc(-1 * clamp(44px, 8vh, 110px) - 22px) 0 clamp(30px, 6vh, 60px) calc(50% - 60vw);
  padding: 12px 0; overflow: hidden; background: var(--vx-deep); color: #fff; rotate: -4deg;
  box-shadow: 0 18px 40px -24px rgb(0 0 0 / .45);
}
.vx-ribbon__track { display: flex; align-items: center; gap: 22px; width: max-content; font-weight: 800; font-size: clamp(1rem, 4.2vw, 1.5rem); letter-spacing: .02em; white-space: nowrap; }
.vx-ribbon__track i { width: 12px; height: 12px; flex: none; background: var(--vx-hl); clip-path: polygon(50% 0, 62% 38%, 100% 50%, 62% 62%, 50% 100%, 38% 62%, 0 50%, 38% 38%); }
.js-motion .vx-ribbon.is-on .vx-ribbon__track { animation: vx-ribbon 26s linear infinite; }
@keyframes vx-ribbon { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .js-motion .vx-ribbon.is-on .vx-ribbon__track { animation: none; } }
/* лента от края до края экрана и в сетке постера/карточки: раньше на компьютере она вставала во вторую колонку
   и начиналась у края картинки (владелец, 29.10.2026) */
@media (min-width: 768px) {
  .page[data-vitrina] .psec > .wrap > :is(.vx-ribbon, .vx-giant) { grid-column: 1 / -1; grid-row: 1; }
  .page[data-vitrina] .psec > .wrap:has(> :is(.vx-ribbon, .vx-giant)) > :is(.poster, .notch) { grid-row: 2 / span 2; }
}
@media (min-width: 900px) {
  .vx-bridge { width: clamp(200px, 20vw, 320px); }
  .vx-bridge[data-side="right"] { right: 4vw; }
  .vx-bridge[data-side="left"] { left: 4vw; }
}

/* огромное косое слово (29.10.2026, пин One Planet): контурные буквы шире экрана лежат наискось позади раздела,
   едут по диагонали за прокруткой; текст раздела поверх */
.page[data-vitrina] .psec:has(> .wrap > .vx-giant) { overflow: clip; }
.page[data-vitrina] .psec > .wrap > :not(.vx-giant) { position: relative; z-index: 1; }
/* слово — своя строка над разделом, от края до края экрана: за картинкой его закрывало, поверх заголовка мешало читать
   (владелец, 29.10.2026: «на фоне пена… его нигде не видно, ни на десктопе, ни на мобильной») */
.vx-giant {
  position: relative; z-index: 0; grid-column: 1 / -1; justify-self: stretch; margin: 0 calc(50% - 50vw) clamp(-30px, calc(26px - 3.8vw), 14px);
  display: grid; place-items: center; pointer-events: none;
}
.vx-giant > .vx-par { rotate: -6deg; transform: translateX(calc((var(--p, 0) - .5) * -10vw)); }
.vx-giant span {
  display: block; white-space: nowrap; font: 900 clamp(3.6rem, 21vw, 14rem)/.86 var(--vx-head, inherit); letter-spacing: -.04em;
  text-transform: uppercase; color: color-mix(in srgb, var(--vx-deep, var(--ink)) 13%, transparent);
  -webkit-text-stroke: 3px color-mix(in srgb, var(--vx-deep, var(--ink)) 40%, transparent);
}

/* волна (29.10.2026, пины Natural Space и Pancakes): раздел на подложке цвета облика с волнистыми краями,
   верхние гребни бегут вправо, нижние влево за прокруткой */
.page[data-vitrina] .psec[data-edge="wave"] { isolation: isolate; padding-block: clamp(70px, 12vh, 140px); }
.psec[data-edge="wave"]::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: var(--vx-wave, color-mix(in srgb, var(--vx-hl) 30%, var(--paper)));
  --wv: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 40' preserveAspectRatio='none'><path d='M0 20Q160 -10 320 20T640 20V40H0Z'/></svg>");
  --wb: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 40' preserveAspectRatio='none'><path d='M0 0H640V20Q480 50 320 20T0 20Z'/></svg>");
  -webkit-mask: var(--wv) calc(var(--p, 0) * 160px) 0 / 640px 40px repeat-x, linear-gradient(#000 0 0) 0 39px / 100% calc(100% - 78px) no-repeat,
    var(--wb) calc(var(--p, 0) * -160px) 100% / 640px 40px repeat-x;
  mask: var(--wv) calc(var(--p, 0) * 160px) 0 / 640px 40px repeat-x, linear-gradient(#000 0 0) 0 39px / 100% calc(100% - 78px) no-repeat,
    var(--wb) calc(var(--p, 0) * -160px) 100% / 640px 40px repeat-x;
}

/* плашка и знак за ней — одним куском: запятая не уходит на новую строку (26.10.2026) */
.hl-tail { display: inline-block; white-space: nowrap; }

/* 29.10.2026, третья пятёрка: «Лаванда» (R00535), «Хомм» (R00528), «Лагуна» (R00467), «СеллАктив» (R00267), «Риф» (R00464);
   цвета — k-средних по вырезкам, сочнее на полтона; приёмы — пины «Дизайн веб-сайтов», не взятые прошлыми страницами:
   Beauty Spa (папки с вкладками), Lumera (сцена в капсуле, огромное контурное слово), Hush (тёмный раздел), Flower Hub (тонкая антиква) */
.page[data-kit="lavanda"] {
  --vx-hl: #CDB4F0; --vx-hl-ink: #2A1740; --vx-p1: #EADFF8; --vx-p2: #FFF1C4; --vx-num: #7A4FB0; --vx-deep: #2A1740;
  --vx-head: "Cormorant Au", Georgia, serif; --vx-head-w: 400; --vx-word: "Cormorant Au", Georgia, serif; --vx-word-w: 600;
}
.page[data-kit="homme"] {
  --vx-hl: #2EC4F5; --vx-hl-ink: #04141F; --vx-p1: #D6EEFA; --vx-p2: #E2E8EE; --vx-num: #03689E; --vx-deep: #061827;
  --vx-head: var(--font); --vx-head-w: 900; --vx-word: var(--font); --vx-word-w: 300;
}
.page[data-kit="laguna"] {
  --vx-hl: #8FDCF5; --vx-hl-ink: #0A2A3A; --vx-p1: #DDF3FB; --vx-p2: #DDF2E2; --vx-num: #17799E; --vx-deep: #0A2A3A;
  --vx-head: var(--font); --vx-head-w: 300; --vx-word: var(--font); --vx-word-w: 800;
}
.page[data-kit="selaktiv"] {
  --vx-hl: #E8D3A6; --vx-hl-ink: #1E2A33; --vx-p1: #E4EDF4; --vx-p2: #F4ECDD; --vx-num: #8E6A26; --vx-deep: #1E2A33;
  --vx-head: "Cormorant Au", Georgia, serif; --vx-head-w: 600; --vx-word: var(--font); --vx-word-w: 300;
}
.page[data-kit="rif"] {
  --vx-hl: #FF9E86; --vx-hl-ink: #06263A; --vx-p1: #D3F0F5; --vx-p2: #FFE3DA; --vx-num: #0E7290; --vx-deep: #06263A;
  --vx-head: "PT Serif Read", Georgia, serif; --vx-head-w: 700; --vx-word: var(--font); --vx-word-w: 800;
}
body:has(.page[data-kit="lavanda"]) { background: linear-gradient(180deg, #ECE2FA 0%, #FAF7FE 35%, #FFF7DE 75%, #E4D6F7 100%); }
body:has(.page[data-kit="homme"]) { background: linear-gradient(180deg, #D3ECF9 0%, #F3F8FB 35%, #E6ECF1 75%, #CBE6F6 100%); }
body:has(.page[data-kit="laguna"]) { background: linear-gradient(180deg, #D8F2FB 0%, #F4FBFE 35%, #E4F5EA 75%, #CDEDF8 100%); }
body:has(.page[data-kit="selaktiv"]) { background: linear-gradient(180deg, #E2ECF4 0%, #F8FAFB 35%, #F6EFE2 75%, #DCE8F1 100%); }
body:has(.page[data-kit="rif"]) { background: linear-gradient(180deg, #D0F0F5 0%, #F3FBFC 35%, #FFEFE9 75%, #C6EAF1 100%); }
.page[data-kit="lavanda"][data-vitrina] .psec h2 { font-size: clamp(2.4rem, 10.4vw, 5rem); letter-spacing: -.01em; line-height: 1.02; }
.page[data-kit="lavanda"][data-vitrina] mark.hl, .page[data-kit="selaktiv"][data-vitrina] mark.hl { font-style: italic; }
.page[data-kit="homme"][data-vitrina] .psec h2 { text-transform: uppercase; letter-spacing: -.02em; line-height: 1.02; font-size: clamp(1.8rem, 7.6vw, 3.8rem); }
.page[data-kit="homme"] .phero__text h1, .page[data-kit="rif"] .phero__text h1 { font-size: clamp(1.8rem, 7.2vw, 3.3rem); }
.page[data-kit="laguna"][data-vitrina] .psec h2 { font-size: clamp(2.2rem, 9.6vw, 4.6rem); letter-spacing: -.02em; line-height: 1.04; }
.page[data-kit="laguna"][data-vitrina] mark.hl { font-weight: 800; }
.page[data-kit="rif"][data-vitrina] .psec h2 { line-height: 1.12; }
:is(.page[data-kit="lavanda"], .page[data-kit="homme"], .page[data-kit="laguna"], .page[data-kit="rif"]) .psec h2 .w { display: inline-block; }
.page[data-kit="lavanda"] .vx-giant span { font-family: "Cormorant Au", Georgia, serif; font-weight: 300; font-style: italic; text-transform: none; color: color-mix(in srgb, #7A4FB0 12%, transparent); -webkit-text-stroke: 1.5px color-mix(in srgb, #7A4FB0 55%, transparent); }
.page[data-kit="homme"] .vx-giant span { color: color-mix(in srgb, #03689E 12%, transparent); -webkit-text-stroke-color: color-mix(in srgb, #03689E 50%, transparent); }
.page[data-kit="selaktiv"] .vx-giant span { font-family: "Cormorant Au", Georgia, serif; color: color-mix(in srgb, #A7803A 12%, transparent); -webkit-text-stroke-color: color-mix(in srgb, #A7803A 55%, transparent); }
.page[data-kit="lavanda"] .psec[data-edge="wave"] { --vx-wave: #EADFF8; }
.page[data-kit="laguna"] .psec[data-edge="wave"] { --vx-wave: #D2EFF8; }
.page[data-kit="rif"] .psec[data-edge="wave"] { --vx-wave: #CDEEF3; }

/* «Лаванда»: слова раскрываются по очереди, как лепестки, — каждое поворачивается от нижнего угла;
   плашка — побег: заливка растёт слева листовидным овалом */
.js-motion .vx-e--petal .w {
  --we: clamp(0, calc(var(--e, 1) * 1.7 - var(--wi, 0) * .1), 1);
  transform: rotate(calc((1 - var(--we)) * -16deg)) scale(calc(.8 + .2 * var(--we))); transform-origin: 0 100%; opacity: calc(.15 + .85 * var(--we));
}
.js-motion .vx-e--petal mark.hl { display: inline-block; white-space: nowrap; clip-path: ellipse(calc(var(--e, 1) * 90% + 2%) calc(30% + var(--e, 1) * 50%) at 0% 50%); }
/* «Хомм»: слова печатаются по очереди, как штамп, — из крупных и разреженных в плотную строку (размах малый: при 1,45 буквы
   соседних слов в середине движения налезали друг на друга, снимок телефона 29.10.2026);
   плашка — синий металл: блик проходит по плашке слева направо */
.js-motion .vx-e--strike .w {
  --we: clamp(0, calc(var(--e, 1) * 1.7 - var(--wi, 0) * .1), 1);
  transform: scale(calc(1.18 - .18 * var(--we))); transform-origin: 0 60%; opacity: calc(.1 + .9 * var(--we)); letter-spacing: calc((1 - var(--we)) * .06em);
}
.js-motion .vx-e--strike mark.hl { background: linear-gradient(105deg, var(--vx-hl) 35%, #E8FAFF 50%, var(--vx-hl) 65%) no-repeat; background-size: 300% 100%; background-position: calc(100% - var(--e, 1) * 100%) 0; }
/* «Лагуна»: буквы впитывают воду — сначала контур, заливка поднимается снизу, как ткань маски намокает;
   плашка — лист маски отклеивается: правый верхний угол загнут и распрямляется */
.js-motion .vx-e--soak .w {
  -webkit-text-stroke: 1px var(--ink);
  background: linear-gradient(var(--ink), var(--ink)) 0 100% / 100% calc(var(--e, 1) * 100%) no-repeat;
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}
.js-motion .vx-e--soak mark.hl .w { background: none; -webkit-text-stroke: 0; -webkit-text-fill-color: var(--vx-hl-ink); }
/* угол — фоном, а не clip-path: плашка в две строки (у clip-path одна рамка на всю плашку) прятала вторую строку,
   «Маска [Питание и упругость] на фото» показывала одно «Питание» (снимок 1440, 30.10.2026);
   фон с box-decoration-break: clone загибает угол у каждой строки плашки */
.js-motion .vx-e--soak mark.hl { background: linear-gradient(225deg, transparent calc((1 - var(--e, 1)) * 1.1em), var(--vx-hl) 0); }
/* «СеллАктив»: заголовок подтягивается — строка поднимается, буквы сходятся из разреженных в плотные (лифтинг);
   плашка — золотая рамка прорисовывается, потом заливается шампанью */
.js-motion .vx-e--lift { transform: translateY(calc((1 - var(--e, 1)) * .5em)) scaleY(calc(.88 + .12 * var(--e, 1))); transform-origin: 0 100%; letter-spacing: calc((1 - var(--e, 1)) * .14em); }
.js-motion .vx-e--lift mark.hl { background: color-mix(in srgb, var(--vx-hl) calc(clamp(0, var(--e, 1) * 2 - 1, 1) * 100%), transparent); box-shadow: inset 0 0 0 calc(min(1, var(--e, 1) * 2) * 2px) #B8913F; }
/* «Риф»: слова опускаются сверху, как в воду, и покачиваются (у каждого свой наклон --tw);
   плашка — патч: полумесяц расправляется в ровную полосу */
.js-motion .vx-e--dive .w {
  --we: clamp(0, calc(var(--e, 1) * 1.7 - var(--wi, 0) * .1), 1);
  transform: translateY(calc((1 - var(--we)) * -.9em)) rotate(calc((1 - var(--we)) * var(--tw, 0) * 9deg)); opacity: calc(.15 + .85 * var(--we));
}
.js-motion .vx-e--dive mark.hl { display: inline-block; white-space: nowrap; border-radius: calc(.2em + (1 - var(--e, 1)) * 2em) / calc(.2em + (1 - var(--e, 1)) * .9em); }

/* folders (29.10.2026, пин «Beauty Spa»): карточки-папки с вкладкой сверху, у каждой свой оттенок облика,
   лист с картинкой выезжает из папки при входе; на вкладке только номер — название ниже картинки */
.vx-folders { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 12px; margin: 50px 0 0; padding: 0; list-style: none; }
.vx-folder { --fc: var(--vx-p1); position: relative; display: grid; align-content: start; gap: 10px; padding: 12px 10px 16px; border-radius: 0 22px 22px 22px; background: var(--fc); box-shadow: 0 22px 40px -30px rgb(20 20 40 / .45); }
.vx-folder:nth-child(3n + 2) { --fc: var(--vx-p2); }
.vx-folder:nth-child(3n) { --fc: color-mix(in srgb, var(--vx-hl) 42%, #FFFFFF); }
.vx-folder__tab {
  position: absolute; left: 0; bottom: calc(100% - 1px); margin: 0; min-width: 42%; height: 30px; padding: 0 16px; display: flex; align-items: center;
  border-radius: 16px 16px 0 0; background: var(--fc); font: 800 .82rem/1 var(--font); letter-spacing: .08em; color: var(--vx-num);
}
.vx-folder__tab::after { content: ""; position: absolute; left: 100%; bottom: 0; width: 18px; height: 18px; background: radial-gradient(circle at 100% 0, transparent 17px, var(--fc) 18px); }
.vx-folder__sheet { position: relative; z-index: 1; }
.vx-folder__media { aspect-ratio: 1; border-radius: 16px; box-shadow: 0 16px 30px -20px rgb(20 20 40 / .5); }
.vx-folder__words h3 { font-size: clamp(1rem, 4.2vw, 1.25rem); line-height: 1.15; overflow-wrap: anywhere; }
.vx-folder__words p { margin: 4px 0 0; font-size: var(--fs-min); line-height: 1.45; color: var(--ink-muted); }
.vx-folder:last-child:nth-child(odd) { grid-column: 1 / -1; }
.vx-folder:last-child:nth-child(odd) .vx-folder__media { aspect-ratio: 16 / 9; }
.js-motion .vx-e--folder { --g: clamp(0, calc(var(--e, 1) * 1.6 - var(--i, 0) * .1), 1); transform: translateY(calc((1 - var(--g)) * 36px)); }
.js-motion .vx-e--folder .vx-folder__sheet { transform: translateY(calc((1 - var(--g)) * 46px)) rotate(calc((1 - var(--g)) * -5deg)); }
@media (min-width: 900px) {
  .page[data-vitrina] .vx-folders { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 56px 22px; }
  .vx-folder:nth-child(4n + 2), .vx-folder:nth-child(4n + 4) { margin-top: 48px; }
  .vx-folder:last-child:nth-child(odd) { grid-column: auto; }
  .vx-folder:last-child:nth-child(odd) .vx-folder__media { aspect-ratio: 1; }
  .vx-folders__head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 64px; align-items: end; }
}

/* capsule (29.10.2026, пин «Lumera — Glow Better»): сцена в высокой капсуле, капсула вырастает из круга;
   за ней огромное контурное слово едет вбок */
.vx-capsule { position: relative; display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; }
.vx-capsule__word { grid-area: 1 / 1; align-self: center; z-index: 0; margin: 0 calc(50% - 50vw); overflow: hidden; pointer-events: none; text-align: center; }
.vx-capsule__word span {
  display: block; white-space: nowrap; font: 900 clamp(3.2rem, 18vw, 12rem)/.9 var(--vx-head, inherit); text-transform: uppercase; letter-spacing: -.03em;
  color: transparent; -webkit-text-stroke: 2px color-mix(in srgb, var(--vx-deep, var(--ink)) 45%, transparent);
  transform: translateX(calc(var(--p, 0) * -14vw));
}
.vx-capsule__stage { grid-area: 1 / 1; justify-self: center; z-index: 1; width: min(70%, 360px); }
.vx-capsule__media { aspect-ratio: 3 / 5; border-radius: 999px; box-shadow: 0 40px 70px -40px rgb(10 20 40 / .55); }
.js-motion .vx-e--capsule .vx-capsule__media { clip-path: inset(calc((1 - var(--e, 1)) * 21%) 0 calc((1 - var(--e, 1)) * 21%) 0 round 999px); }
.js-motion .vx-e--capsule .vx-capsule__media :is(.media__img, .media__video) { scale: calc(1.25 - .25 * var(--e, 1)); }
@media (min-width: 900px) {
  .page[data-vitrina] .vx-capsule { grid-template-columns: minmax(0, 420px) minmax(0, 1fr); gap: 64px; align-items: center; }
  .vx-capsule__word { grid-area: 1 / 1 / 2 / 3; }
  .vx-capsule__stage { width: 100%; }
  .vx-capsule__body { grid-area: 1 / 2; z-index: 1; padding: 30px 32px; border-radius: 30px; background: color-mix(in srgb, var(--paper) 88%, transparent); }
}

/* тёмный раздел (29.10.2026, пин «Hush»): раздел на тёмном цвете облика от края до края, слова светлые,
   карточки внутри остаются светлыми со своим тёмным текстом */
.page[data-vitrina] .psec[data-tone="night"] { isolation: isolate; padding-block: clamp(70px, 12vh, 140px); --ink: #F3F7FA; --ink-muted: rgb(243 247 250 / .8); color: var(--ink); }
.psec[data-tone="night"]::before {
  content: ""; position: absolute; inset: 0 6px; z-index: -1; border-radius: 40px;
  background: radial-gradient(120% 70% at 85% 0%, color-mix(in srgb, var(--vx-num) 60%, var(--vx-deep)) 0%, var(--vx-deep) 62%);
}
.psec[data-tone="night"] :is(.vx-glass__card, .vx-nums li, .vx-tile, .vx-folder, .vx-capsule__body, .vx-pins__list li) { --ink: var(--vx-deep); --ink-muted: color-mix(in srgb, var(--vx-deep) 74%, transparent); color: var(--ink); }
.psec[data-tone="night"] .vx-tag { color: var(--vx-deep); }
