/* motion-premium.css — ПРОДАКШН motion-слой Главной Maximus Media.
 * Самодостаточный: НЕ трогает tokens.css / styles.css / ds-ui.css. Только усиливает.
 * Дисциплина таймингов: используем ТОЛЬКО 6 значений —
 *   штатные --mm-t-fast 120 / --mm-t 170 / --mm-t-slow 420 (на них построен .rv)
 *   + три «подписи» ниже (--mm-t-step / --mm-t-cine / --mm-t-draw).
 * Все reveal-состояния скоупятся под .mm-anim (ставит inline-скрипт ТОЛЬКО при
 * no-reduced-motion). Нет .mm-anim → контент виден по дефолту (headless/фон/reduce). */

/* ── ГЛОБАЛЬНЫЙ ГЕЙТ (первое правило файла) ── */
@media (prefers-reduced-motion:reduce){
  .mm-anim *{animation:none !important;transition:none !important}
}

:root{
  --mm-ease-cine:cubic-bezier(.77,0,.175,1);  /* reveal хиро, clip, quote */
  --mm-ease-expo:cubic-bezier(.16,1,.3,1);    /* ignition, mask-свип */
  --mm-ease-soft:cubic-bezier(.22,.61,.36,1); /* opacity/blur мелкого текста */
  --mm-t-step:120ms;   /* шаг стадии хиро */
  --mm-t-cine:900ms;   /* clip-reveal и ignition */
  --mm-t-draw:1100ms;  /* прорисовка линий сети и шестерни */
  /* глубина для ТЁМНЫХ панелей (штатный --mm-sh-md рассчитан на белый фон) */
  --mm-sh-raise:0 1px 1px rgba(0,0,0,.5),0 4px 12px rgba(0,0,0,.45),0 12px 32px rgba(0,0,0,.35);
  --mm-edge-top:inset 0 1px 0 rgba(255,255,255,.06);
}

/* ═══════════════════════ 1. ПОДПИСЬ ХИРО (одна отрепетированная сцена) ═══════════════════════
 * FOUC-safe: .mm-anim прячет .mm-hero-el до кадра; JS/failsafe ставит data-anim="in". */
.mm-anim .hero-fig[data-hero] .mm-hero-el{opacity:0}

/* 0ms — тёмная панель-«чертёжный стол» всплывает (scale .985→1) */
.mm-anim .hero-fig[data-hero] .hero-fig-canvas{
  opacity:0;transform:translateX(-50%) scale(.985);
  transition:opacity var(--mm-t-cine) var(--mm-ease-cine),transform var(--mm-t-cine) var(--mm-ease-cine);
  box-shadow:var(--mm-sh-raise),var(--mm-edge-top),0 34px 80px rgba(16,16,32,.34)}
.mm-anim .hero-fig[data-hero][data-anim="in"] .hero-fig-canvas{opacity:1;transform:translateX(-50%) scale(1)}
/* blueprint-сетка «вычерчивается» плоттером — mask-свип */
.mm-anim .hero-fig[data-hero] .hero-fig-canvas::before{
  -webkit-mask:radial-gradient(120% 96% at 50% 14%,#000 48%,transparent 86%),linear-gradient(115deg,#000 0 30%,transparent 55%);
  mask:radial-gradient(120% 96% at 50% 14%,#000 48%,transparent 86%),linear-gradient(115deg,#000 0 30%,transparent 55%);
  -webkit-mask-composite:source-in;mask-composite:intersect;
  -webkit-mask-size:100% 100%,250% 100%;mask-size:100% 100%,250% 100%;
  -webkit-mask-position:0 0,120% 0;mask-position:0 0,120% 0;
  transition:-webkit-mask-position 1200ms var(--mm-ease-expo),mask-position 1200ms var(--mm-ease-expo)}
.mm-anim .hero-fig[data-hero][data-anim="in"] .hero-fig-canvas::before{
  -webkit-mask-position:0 0,-20% 0;mask-position:0 0,-20% 0}

/* 120ms — eyebrow blur-to-focus */
.mm-anim .hero-fig[data-hero] .hero-eyebrow{
  filter:blur(10px);transform:translateY(12px);
  transition:opacity 700ms var(--mm-ease-soft),filter 700ms var(--mm-ease-soft),transform 700ms var(--mm-ease-soft);
  transition-delay:var(--mm-t-step)}
.mm-anim .hero-fig[data-hero][data-anim="in"] .hero-eyebrow{opacity:1;filter:blur(0);transform:none}

/* 260ms — H1 единый masked-clip (без посимвольного сплита) */
.mm-anim .hero-fig[data-hero] .hero-fig-h{
  clip-path:inset(0 0 100% 0);transform:translateY(8px);will-change:clip-path,transform;
  transition:opacity 300ms linear,clip-path var(--mm-t-cine) var(--mm-ease-cine),transform var(--mm-t-cine) var(--mm-ease-cine);
  transition-delay:260ms}
.mm-anim .hero-fig[data-hero][data-anim="in"] .hero-fig-h{opacity:1;clip-path:inset(0 0 -.12em 0);transform:none}

/* 420ms — подзаголовок blur-to-focus */
.mm-anim .hero-fig[data-hero] .hero-fig-sub{
  filter:blur(10px);transform:translateY(12px);
  transition:opacity 520ms var(--mm-ease-soft),filter 520ms var(--mm-ease-soft),transform 520ms var(--mm-ease-soft);
  transition-delay:420ms}
.mm-anim .hero-fig[data-hero][data-anim="in"] .hero-fig-sub{opacity:1;filter:blur(0);transform:none}

/* 560ms — портрет + сеть (линии чертит JS через dashoffset) */
.mm-anim .hero-fig[data-hero] .hero-fig-photo{
  opacity:0;transform:translateY(10px);
  transition:opacity 700ms var(--mm-ease-cine),transform 700ms var(--mm-ease-cine);transition-delay:560ms}
.mm-anim .hero-fig[data-hero][data-anim="in"] .hero-fig-photo{opacity:1;transform:none}
.mm-anim .hero-fig[data-hero] .hero-fig-net{opacity:0;transition:opacity 600ms var(--mm-ease-soft) 560ms}
.mm-anim .hero-fig[data-hero][data-anim="in"] .hero-fig-net{opacity:1}
.mm-anim .hero-fig[data-hero] .hero-fig-net path{
  transition:stroke-dashoffset var(--mm-t-draw) var(--mm-ease-cine) 560ms}
.mm-anim .hero-fig[data-hero][data-anim="in"] .hero-fig-net path{stroke-dashoffset:0 !important}

/* 680ms — цитата выезжает из-под левого края */
.mm-anim .hero-fig[data-hero] .hero-fig-quote{
  opacity:0;transform:translateX(-14px);box-shadow:none;
  transition:opacity var(--mm-t-cine) var(--mm-ease-cine),transform var(--mm-t-cine) var(--mm-ease-cine),box-shadow var(--mm-t-cine) var(--mm-ease-cine);
  transition-delay:680ms}
.mm-anim .hero-fig[data-hero][data-anim="in"] .hero-fig-quote{opacity:1;transform:none;box-shadow:var(--mm-sh-md)}

/* 760ms — IGNITION: жёлтый хайлайт «заряжается» слева-направо + однократный bloom */
.mm-anim .hero-fig[data-hero] .hf-accent[data-ignite]{
  background-repeat:no-repeat;background-position:left center;background-size:0% 100%}
.mm-anim .hero-fig[data-hero][data-anim="in"] .hf-accent[data-ignite]{
  animation:mmIgnite var(--mm-t-cine) var(--mm-ease-expo) 760ms both}
@keyframes mmIgnite{
  0%{background-size:0% 100%;text-shadow:0 0 0 rgba(255,214,0,0)}
  55%{background-size:100% 100%;text-shadow:0 0 22px rgba(255,214,0,.55)}
  100%{background-size:100% 100%;text-shadow:0 0 0 rgba(255,214,0,0)}}

/* 860ms — CTA + строка квиза */
.mm-anim .hero-fig[data-hero] .cta,
.mm-anim .hero-fig[data-hero] .hero-quiz{
  opacity:0;transform:translateY(10px);
  transition:opacity 560ms var(--mm-ease-soft),transform 560ms var(--mm-ease-soft);transition-delay:860ms}
.mm-anim .hero-fig[data-hero][data-anim="in"] .cta,
.mm-anim .hero-fig[data-hero][data-anim="in"] .hero-quiz{opacity:1;transform:none}

/* ═══════════════════════ 2. ВАРИАНТЫ СКРОЛЛА (data-mv поверх .rv) ═══════════════════════
 * Дефолт = штатный .rv-стаггер (не трогаем). 3 именованных типа: focus / wipe / still. */
/* focus — blur-to-focus (без вертикального сдвига) */
.mm-anim [data-mv="focus"].rv,.mm-anim [data-mv="focus"] .rv{
  transform:none;filter:blur(10px);
  transition:opacity var(--mm-t-slow) var(--mm-ease-soft),filter var(--mm-t-slow) var(--mm-ease-soft)}
.mm-anim [data-mv="focus"].rv.in,.mm-anim [data-mv="focus"] .rv.in{filter:blur(0)}
/* wipe — направленный clip слева */
.mm-anim [data-mv="wipe"].rv,.mm-anim [data-mv="wipe"] .rv{
  transform:none;clip-path:inset(0 100% 0 0);
  transition:opacity var(--mm-t-slow) var(--mm-ease-cine),clip-path var(--mm-t-cine) var(--mm-ease-cine)}
.mm-anim [data-mv="wipe"].rv.in,.mm-anim [data-mv="wipe"] .rv.in{clip-path:inset(0 0 0 0)}
/* still — СНИМАЕТ reveal (прайс/сравнение/FAQ/калькулятор — решенческий и юр-контент).
   :not(:hover) — чтобы штатный hover-лифт карточек прайса пережил нейтрализацию. */
.mm-anim [data-mv="still"].rv:not(:hover),.mm-anim [data-mv="still"] .rv:not(:hover){
  opacity:1 !important;transform:none !important;filter:none !important;clip-path:none !important;transition:none !important}
.mm-anim [data-mv="still"].rv,.mm-anim [data-mv="still"] .rv{opacity:1 !important}

/* ═══════════════════════ 3. ШЕСТЕРНЯ — «живая система» ═══════════════════════ */
/* Вращаем ТОЛЬКО зубчатый контур; узлы-подписи стоят и читаются. */
.mm-anim .m-gear{animation:none;opacity:0}
.mm-anim .mech.in .m-gear{opacity:1;transition:opacity 600ms var(--mm-ease-soft);animation:mmGearSpin 90s linear infinite}
@keyframes mmGearSpin{to{transform:rotate(360deg)}}
/* центр — оставляем декоративную пульсацию, но замедляем чтобы не спорил с вращением */
.mm-anim .mech.in .m-center{animation-duration:4.2s}
/* ambient-петли (шестерня/пульс/дрейф-сетка) замирают, когда блок вне вьюпорта — JS ставит .mm-off */
.mm-off,.mm-off *{animation-play-state:paused !important}
/* луч узел→ядро */
.mech .mm-ray{stroke:var(--mm-accent);stroke-width:2;stroke-linecap:round;opacity:0;pointer-events:none;
  transition:stroke-dashoffset .5s var(--mm-ease),opacity .2s var(--mm-ease)}
.mech .mm-ray.on{opacity:1}
/* активный узел */
.m-node.is-hot circle{stroke:var(--mm-accent) !important;filter:drop-shadow(0 0 6px rgba(255,214,0,.55));transition:stroke var(--mm-t) var(--mm-ease),filter var(--mm-t) var(--mm-ease)}
.m-node{cursor:pointer}
.m-node .m-hit{cursor:pointer}
/* узел «скоро» (Контент) — информативный, не кнопка → без указателя */
.m-node--soon,.m-node--soon .m-hit{cursor:default}
/* парная строка легенды */
.ml-item{transition:border-color var(--mm-t) var(--mm-ease),box-shadow var(--mm-t) var(--mm-ease)}
.ml-item.is-hot{box-shadow:inset 3px 0 0 var(--mm-accent)}
@media(prefers-reduced-motion:reduce){
  .mm-anim .mech.in .m-gear{animation:none;opacity:1}
  .mech .mm-ray{transition:none}
  /* is-hot и ml-item живут ВНЕ .mm-anim-скоупа — гасим их transition явно */
  .m-node.is-hot circle,.ml-item{transition:none !important}
}

/* ═══════════════════════ 4. МАТЕРИАЛЫ-УТИЛИТЫ (GPU-only, приглушённо) ═══════════════════════ */
/* 4.1 плёночный грейн — ТОЛЬКО тёмные зоны, статичный, 0 стоимости после paint */
.mm-grain{position:relative}
.hero-fig-canvas.mm-grain{position:absolute}      /* не ломаем абсолютное позиционирование канваса */
.mm-grain::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;transform:translateZ(0);
  opacity:.42;background-image:url(data:image/png;base64,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);background-repeat:repeat;background-size:128px 128px}
.magnet.mm-grain>.wrap{position:relative;z-index:1} /* контент magnet над грейном (у inaction .wrap уже z:2) */
/* 4.2 дрейф-сетки на «цене бездействия» (ambient, бесшовная петля на шаг клетки) */
.mm-anim .inaction .inaction-bp{background-image:none}
.mm-anim .inaction .inaction-bp::before{content:"";position:absolute;inset:-60px;
  background-image:linear-gradient(rgba(255,255,255,.5) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.5) 1px,transparent 1px);
  background-size:48px 48px;will-change:transform;animation:mmBpDrift 60s linear infinite}
@keyframes mmBpDrift{to{transform:translate3d(-48px,-48px,0)}}
@media(prefers-reduced-motion:reduce){.mm-anim .inaction .inaction-bp::before{animation:none}}
/* 4.3 spotlight-аура убрана: единственный акцентный glow — ignition на хиро (сдержанность) */

/* ═══════════════════════ 5. МИКРО-ВЗАИМОДЕЙСТВИЯ (сдержанный саппорт) ═══════════════════════ */
/* глубина карточек: жёлтый hairline «выбранный узел на схеме» (тень «догоняет» лифт) */
[data-ds="v3"] .case-card,[data-ds="v3"] .serv,[data-ds="v3"] .pkg{
  transition:transform var(--mm-t) var(--mm-ease),box-shadow var(--mm-t-slow) var(--mm-ease),border-color var(--mm-t) var(--mm-ease)}
[data-ds="v3"] .case-card:hover,[data-ds="v3"] a.serv:hover,[data-ds="v3"] .pkg:hover{
  box-shadow:var(--mm-sh-md),0 0 0 1px rgba(255,214,0,.5)}
[data-ds="v3"] .pkg:hover{transform:translateY(-3px)}
/* магнитная кнопка: контейнер двигает JS (translate3d), лейбл жмётся на :active — без конфликта */
[data-ds="v3"] .btn-primary .mm-btn-l{display:inline-block;transition:transform var(--mm-t-fast) var(--mm-ease)}
[data-ds="v3"] .btn-primary:active .mm-btn-l{transform:scale(.98)}
.mm-magnet{will-change:auto}
.mm-magnet.is-live{will-change:transform}
/* FAQ-маркер: плавный поворот «+»→«×» (honest-feedback, без анимации высотой = без CLS) */
[data-ds="v3"] .faq-ic{transition:transform var(--mm-t) var(--mm-ease)}
[data-ds="v3"] .faq-item[open] .faq-ic{transform:rotate(45deg)}
[data-ds="v3"] .faq-item[open] .faq-ic::after{transform:none}

/* ═══════════════════════ 6. КУРСОР — расширяем эталонный mmcur (не дублируем) ═══════════════════════ */
@media (hover:hover) and (pointer:fine){
  #mmRing::before,#mmRing::after{content:"";position:absolute;background:var(--mm-accent);opacity:0;transition:opacity .15s var(--mm-ease)}
  #mmRing::before{left:50%;top:-6px;bottom:-6px;width:1px;margin-left:-.5px}
  #mmRing::after{top:50%;left:-6px;right:-6px;height:1px;margin-top:-.5px}
  html.mmcur.mmlock #mmRing::before,html.mmcur.mmlock #mmRing::after{opacity:1}
}

/* (секция 7 «прогресс-нить» удалена — шаблонный элемент, ревью) */

/* хардфейл-страховка на случай непредвиденного: после входа снимаем will-change */
.mm-anim .hero-fig[data-hero][data-anim="in"] .hero-fig-h{will-change:auto}
