/* ГЕНЕРИРУЕТСЯ scripts/build-site-v6.py из: lazer-v6a.css. Не править вручную. */
/* ===== lazer-v6a.css ===== */
/* v6a: единственная утверждённая анимация страницы («Каскад — ярко», бывший вариант 2c). Режим и переключатель убраны: html[data-anim="2"][data-cas="c"] ставит lazer-v6a.js.
   Везде transform-свойства (translate/scale), opacity, clip-path и filter на входе; кривые из токенов ниже; запуск анимацией, а не transition (у карточек портфолио transition и clip-path заданы с !important). */
:root{--a-out:cubic-bezier(.23,1,.32,1);--a-io:cubic-bezier(.77,0,.175,1);--a-acc:#f16400}

/* ---------- общее: скрытое состояние до входа в экран ---------- */
html[data-anim] .a-r:not(.a-in){opacity:0}
@keyframes a-fade{from{opacity:0}to{opacity:1}}

html[data-anim] .lz-v6 .hero-bth button:active,html[data-anim] .lz-v6 main .btn-acnt:active{scale:.97}

/* =====================================================================
   2 · Каскад. Элементы появляются по очереди (шаг 70 мс), снизу вверх; карточки и блоки героя тянутся друг за другом.
   ===================================================================== */
@keyframes a2-in{from{opacity:0;translate:0 28px}to{opacity:1;translate:0 0}}
html[data-anim="2"] .a-r.a-in{animation:a2-in .55s var(--a-out) calc(var(--d,0)*70ms + var(--p,0s)) both}
html[data-anim="2"] .lz-v6 main .btn-acnt,html[data-anim="2"] .lz-v6 .hero-bth button{transition:filter .15s ease-out}
@media (hover:hover) and (pointer:fine){
html[data-anim="2"] .lz-v6 .utp-box{transition:translate .2s var(--a-out)}
html[data-anim="2"] .lz-v6 .utp-box:hover{translate:0 -4px}
}

/* ---------- парк станков: фото сцены проявляется с лёгким приближением (translate на полноэкранном фото был бы заметен как сдвиг) ---------- */
@keyframes a-photo{from{opacity:0;scale:1.06}to{opacity:1;scale:1}}
html[data-anim] .lz-v6 .lz-eq-photo.a-r.a-in{animation:a-photo 1s var(--a-out) calc(var(--p,0s)) both}

/* =====================================================================
   Карта «Работаем по всей России» . Скрипт добавляет .a-map (скрыто), .a-map-in (запуск) и служебные элементы:
   кольца .cp, дуги .cx, обёртки названий .lz-t.
   ===================================================================== */
@keyframes a-draw{to{stroke-dashoffset:0}}
@keyframes a-fillin{to{fill-opacity:1}}
@keyframes a-dot{from{opacity:0;scale:.2}to{opacity:1;scale:1}}
@keyframes a-cd{0%{opacity:0;scale:.2}3%{opacity:1;scale:1.5}6%{opacity:1;scale:1}10.5%{opacity:1}12.5%{opacity:0;scale:.6}100%{opacity:0;scale:.6}}
@keyframes a-cl{0%{opacity:0;translate:-8px 0}1.5%{opacity:1;translate:0 0}10.5%{opacity:1;translate:0 0}12.5%{opacity:0;translate:0 -4px}100%{opacity:0}}
@keyframes a-type{0%{clip-path:inset(0 100% 0 0)}4.5%{clip-path:inset(0 0 0 0)}100%{clip-path:inset(0 0 0 0)}}
@keyframes a-ring{0%{opacity:.95;scale:1}5.5%{opacity:0;scale:7}100%{opacity:0;scale:7}}
@keyframes a-arc{0%{opacity:1;stroke-dashoffset:var(--len)}3.5%{opacity:1;stroke-dashoffset:0}10%{opacity:.55;stroke-dashoffset:0}12.5%{opacity:0;stroke-dashoffset:0}100%{opacity:0}}
html[data-anim] .lz-map.a-map .lz-map-land path{stroke-dasharray:var(--len);stroke-dashoffset:var(--len);fill-opacity:0}
html[data-anim] .lz-map.a-map.a-map-in .lz-map-land path{animation:a-draw 2.4s var(--a-io) calc(var(--k)*90ms) forwards,a-fillin .9s ease-out calc(1.7s + var(--k)*90ms) forwards}
html[data-anim] .lz-map.a-map.a-map-done .lz-map-land path{animation:none;stroke-dasharray:none;stroke-dashoffset:0;fill-opacity:1}
html[data-anim] .lz-map.a-map .lz-map-grid path{opacity:0}
html[data-anim] .lz-map.a-map.a-map-in .lz-map-grid path{animation:a-fade 1.2s ease-out calc(var(--k)*30ms) both}
html[data-anim] .lz-map.a-map .lz-map-dots rect{opacity:0;transform-box:fill-box;transform-origin:center}
html[data-anim] .lz-map.a-map.a-map-in .lz-map-dots rect{animation:a-dot .45s var(--a-out) calc(1.1s + var(--k)*38ms) both}
/* города: тот же цикл 14.4 с, по одному в 1.8 с, старт после контура (+2.8 с) */
html[data-anim] .lz-map.a-map .cd,html[data-anim] .lz-map.a-map .cdot{animation:a-cd 14.4s ease-out infinite;animation-delay:calc(var(--i)*1.8s + 2.8s)}
html[data-anim] .lz-map.a-map .cp{fill:none;stroke:var(--a-acc);stroke-width:1.4;vector-effect:non-scaling-stroke;opacity:0;transform-box:fill-box;transform-origin:center;animation:a-ring 14.4s ease-out infinite;animation-delay:calc(var(--i)*1.8s + 2.9s)}
html[data-anim] .lz-map.a-map .cp.b{animation-delay:calc(var(--i)*1.8s + 3.25s)}
html[data-anim] .lz-map.a-map .cx{fill:none;stroke:var(--a-acc);stroke-width:1.3;vector-effect:non-scaling-stroke;opacity:0;stroke-dasharray:var(--len);stroke-dashoffset:var(--len);animation:a-arc 14.4s ease-in-out infinite;animation-delay:calc(var(--i)*1.8s + 2.8s)}
html[data-anim] .lz-map.a-map .lz-cl{animation:a-cl 14.4s ease-out infinite;animation-delay:calc(var(--i)*1.8s + 2.8s)}
html[data-anim] .lz-map.a-map .lz-cl .lz-t{display:inline-block;animation:a-type 14.4s steps(var(--n),end) infinite;animation-delay:calc(var(--i)*1.8s + 2.95s)}
html[data-anim] .lz-map.a-map:not(.a-map-in) .cd,html[data-anim] .lz-map.a-map:not(.a-map-in) .cdot,html[data-anim] .lz-map.a-map:not(.a-map-in) .cp,html[data-anim] .lz-map.a-map:not(.a-map-in) .cx,html[data-anim] .lz-map.a-map:not(.a-map-in) .lz-cl,html[data-anim] .lz-map.a-map:not(.a-map-in) .lz-t,
html[data-anim] .lz-map.a-map:not(.lz-run) .cp,html[data-anim] .lz-map.a-map:not(.lz-run) .cx,html[data-anim] .lz-map.a-map:not(.lz-run) .lz-t{animation-play-state:paused}

/* =====================================================================
   Детали Каскада (anim=2a / 2b / 2c): панель «Парк станков» и статьи «Особенности работы с материалами».
   a — мягко: поочерёдное проявление и линии; b — средне: + числа набегают, маркеры вспыхивают, фото материала «сканируется»;
   c — ярко: + шторка на фото сцены, въезд с размытием. Перезапуск при смене станка/материала (классы a-swap, a-scan ставит скрипт).
   ===================================================================== */
@keyframes k-up{from{opacity:0;translate:0 12px}to{opacity:1;translate:0 0}}
@keyframes k-in-c{from{opacity:0;translate:26px 0;filter:blur(6px)}to{opacity:1;translate:0 0;filter:blur(0)}}
@keyframes k-line{0%{scale:0 1;opacity:1}60%{scale:1 1;opacity:1}100%{scale:1 1;opacity:0}}
@keyframes k-mark{0%{scale:0;background:#fff}40%{scale:1.8;background:#fff;box-shadow:0 0 10px var(--a-acc)}100%{scale:1;box-shadow:0 0 0 transparent}}
@keyframes k-pop{from{opacity:0;scale:.6}to{opacity:1;scale:1}}
@keyframes k-thumb{from{opacity:0;translate:0 8px}to{opacity:1;translate:0 0}}
@keyframes k-thumb-b{from{opacity:0;translate:0 8px;scale:.85}to{opacity:1;translate:0 0;scale:1}}
@keyframes k-scan{0%{translate:0 -100%;opacity:1}85%{translate:0 0;opacity:1}100%{translate:0 0;opacity:0}}
@keyframes k-imgrev{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes k-imgrev-c{from{clip-path:inset(0 0 100% 0);filter:blur(6px);scale:1.06}to{clip-path:inset(0 0 0 0);filter:blur(0);scale:1}}
@keyframes k-curtain{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes k-name{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}

/* --- станки --- */
html[data-cas] .lz-eq-panel.a-swap .lz-eq-eyebrow{animation:k-up .4s var(--a-out) both}
html[data-cas] .lz-eq-panel.a-swap .lz-eq-name{animation:k-up .45s var(--a-out) 70ms both}
html[data-cas] .lz-eq-panel.a-swap .lz-eq-row{position:relative;animation:k-up .45s var(--a-out) both}
html[data-cas] .lz-eq-panel.a-swap .lz-eq-row:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:var(--a-acc);transform-origin:left;animation:k-line .9s var(--a-io) both}
html[data-cas="b"] .lz-eq-ctl.a-in .lz-eq-arrow,html[data-cas="c"] .lz-eq-ctl.a-in .lz-eq-arrow{animation:k-pop .4s var(--a-out) .25s both}
html[data-cas="c"] .lz-eq-panel.a-swap .lz-eq-row{animation-name:k-in-c}
html[data-cas="c"] .lz-eq-panel.a-swap .lz-eq-name{animation:k-name .6s var(--a-io) 70ms both}
html[data-cas="c"] .lz-eq-photo.a-r.a-in{animation:k-curtain 1s var(--a-io) both}
html[data-cas] .lz-eq-panel.a-swap .lz-eq-row:nth-child(1){animation-delay:calc(160ms + 1*60ms)}
html[data-cas] .lz-eq-panel.a-swap .lz-eq-row:nth-child(1):after{animation-delay:calc(260ms + 1*60ms)}
html[data-cas] .lz-eq-panel.a-swap .lz-eq-row:nth-child(2){animation-delay:calc(160ms + 2*60ms)}
html[data-cas] .lz-eq-panel.a-swap .lz-eq-row:nth-child(2):after{animation-delay:calc(260ms + 2*60ms)}
html[data-cas] .lz-eq-panel.a-swap .lz-eq-row:nth-child(3){animation-delay:calc(160ms + 3*60ms)}
html[data-cas] .lz-eq-panel.a-swap .lz-eq-row:nth-child(3):after{animation-delay:calc(260ms + 3*60ms)}
html[data-cas] .lz-eq-panel.a-swap .lz-eq-row:nth-child(4){animation-delay:calc(160ms + 4*60ms)}
html[data-cas] .lz-eq-panel.a-swap .lz-eq-row:nth-child(4):after{animation-delay:calc(260ms + 4*60ms)}
html[data-cas] .lz-eq-panel.a-swap .lz-eq-row:nth-child(5){animation-delay:calc(160ms + 5*60ms)}
html[data-cas] .lz-eq-panel.a-swap .lz-eq-row:nth-child(5):after{animation-delay:calc(260ms + 5*60ms)}
html[data-cas] .lz-eq-panel.a-swap .lz-eq-row:nth-child(6){animation-delay:calc(160ms + 6*60ms)}
html[data-cas] .lz-eq-panel.a-swap .lz-eq-row:nth-child(6):after{animation-delay:calc(260ms + 6*60ms)}
html[data-cas] .lz-eq-panel.a-swap .lz-eq-row:nth-child(7){animation-delay:calc(160ms + 7*60ms)}
html[data-cas] .lz-eq-panel.a-swap .lz-eq-row:nth-child(7):after{animation-delay:calc(260ms + 7*60ms)}
html[data-cas] .lz-eq-panel.a-swap .lz-eq-row:nth-child(8){animation-delay:calc(160ms + 8*60ms)}
html[data-cas] .lz-eq-panel.a-swap .lz-eq-row:nth-child(8):after{animation-delay:calc(260ms + 8*60ms)}

/* --- материалы --- */
html[data-cas] [data-motion="materials"] .article.a-swap>*{animation:k-up .45s var(--a-out) both}
html[data-cas="c"] [data-motion="materials"] .article.a-swap>*,html[data-cas="c"] [data-motion="materials"] .article.a-swap ul.disc li{animation-name:k-in-c}
html[data-cas] [data-motion="materials"] .article.a-swap .subtitle,html[data-cas] [data-motion="materials"] .article.a-swap>p:nth-of-type(1),html[data-cas] [data-motion="materials"] .article.a-swap>p:nth-of-type(3){position:relative}
html[data-cas] [data-motion="materials"] .article.a-swap>p:nth-of-type(1):after,html[data-cas] [data-motion="materials"] .article.a-swap>p:nth-of-type(3):after,html[data-cas] [data-motion="materials"] .article.a-swap .subtitle:after{content:"";position:absolute;left:0;right:0;height:1px;background:var(--a-acc);transform-origin:left;animation:k-line .9s var(--a-io) both}
html[data-cas] [data-motion="materials"] .article.a-swap>p:nth-of-type(1):after,html[data-cas] [data-motion="materials"] .article.a-swap>p:nth-of-type(3):after{top:-1px}
html[data-cas] [data-motion="materials"] .article.a-swap .subtitle:after{bottom:-3px;animation-delay:.3s}
html[data-cas] [data-motion="materials"] .article.a-swap>p:nth-of-type(1):after{animation-delay:.4s}
html[data-cas] [data-motion="materials"] .article.a-swap>p:nth-of-type(3):after{animation-delay:.75s}
html[data-cas] [data-motion="materials"] .article.a-swap ul.disc{animation:none}
html[data-cas] [data-motion="materials"] .article.a-swap ul.disc li{animation:k-up .4s var(--a-out) both}
html[data-cas="b"] [data-motion="materials"] .article.a-swap ul.disc li:before,html[data-cas="c"] [data-motion="materials"] .article.a-swap ul.disc li:before{animation:k-mark .6s var(--a-out) both}
html[data-cas] [data-motion="materials"] .steel-img-control.a-in .choose-metal{animation:k-thumb .4s var(--a-out) both}
html[data-cas="b"] [data-motion="materials"] .steel-img-control.a-in .choose-metal,html[data-cas="c"] [data-motion="materials"] .steel-img-control.a-in .choose-metal{animation-name:k-thumb-b}
html[data-cas="b"] [data-motion="materials"] .steel-img,html[data-cas="c"] [data-motion="materials"] .steel-img{position:relative}
html[data-cas="b"] [data-motion="materials"] .steel-img.a-scan:after,html[data-cas="c"] [data-motion="materials"] .steel-img.a-scan:after{content:"";position:absolute;inset:0;border-bottom:3px solid var(--a-acc);background:linear-gradient(rgba(241,100,0,0),rgba(241,100,0,.2));pointer-events:none;animation:k-scan .6s var(--a-io) both}
html[data-cas="c"] [data-motion="materials"] .steel-img.a-scan img{animation:k-imgrev-c .6s var(--a-io) both}
html[data-cas] [data-motion="materials"] .article.a-swap>:nth-child(1){animation-delay:55ms}
html[data-cas] [data-motion="materials"] .article.a-swap>:nth-child(2){animation-delay:110ms}
html[data-cas] [data-motion="materials"] .article.a-swap>:nth-child(3){animation-delay:165ms}
html[data-cas] [data-motion="materials"] .article.a-swap>:nth-child(4){animation-delay:220ms}
html[data-cas] [data-motion="materials"] .article.a-swap>:nth-child(5){animation-delay:275ms}
html[data-cas] [data-motion="materials"] .article.a-swap>:nth-child(6){animation-delay:330ms}
html[data-cas] [data-motion="materials"] .article.a-swap>:nth-child(7){animation-delay:385ms}
html[data-cas] [data-motion="materials"] .article.a-swap>:nth-child(8){animation-delay:440ms}
html[data-cas] [data-motion="materials"] .article.a-swap ul.disc li:nth-child(1){animation-delay:470ms}
html[data-cas] [data-motion="materials"] .article.a-swap ul.disc li:nth-child(1):before{animation-delay:570ms}
html[data-cas] [data-motion="materials"] .steel-img-control.a-in .choose-metal:nth-child(1){animation-delay:295ms}
html[data-cas] [data-motion="materials"] .article.a-swap ul.disc li:nth-child(2){animation-delay:560ms}
html[data-cas] [data-motion="materials"] .article.a-swap ul.disc li:nth-child(2):before{animation-delay:660ms}
html[data-cas] [data-motion="materials"] .steel-img-control.a-in .choose-metal:nth-child(2){animation-delay:340ms}
html[data-cas] [data-motion="materials"] .article.a-swap ul.disc li:nth-child(3){animation-delay:650ms}
html[data-cas] [data-motion="materials"] .article.a-swap ul.disc li:nth-child(3):before{animation-delay:750ms}
html[data-cas] [data-motion="materials"] .steel-img-control.a-in .choose-metal:nth-child(3){animation-delay:385ms}
html[data-cas] [data-motion="materials"] .article.a-swap ul.disc li:nth-child(4){animation-delay:740ms}
html[data-cas] [data-motion="materials"] .article.a-swap ul.disc li:nth-child(4):before{animation-delay:840ms}
html[data-cas] [data-motion="materials"] .steel-img-control.a-in .choose-metal:nth-child(4){animation-delay:430ms}
html[data-cas] [data-motion="materials"] .article.a-swap ul.disc li:nth-child(5){animation-delay:830ms}
html[data-cas] [data-motion="materials"] .article.a-swap ul.disc li:nth-child(5):before{animation-delay:930ms}
html[data-cas] [data-motion="materials"] .steel-img-control.a-in .choose-metal:nth-child(5){animation-delay:475ms}
html[data-cas] [data-motion="materials"] .article.a-swap ul.disc li:nth-child(6){animation-delay:920ms}
html[data-cas] [data-motion="materials"] .article.a-swap ul.disc li:nth-child(6):before{animation-delay:1020ms}
html[data-cas] [data-motion="materials"] .steel-img-control.a-in .choose-metal:nth-child(6){animation-delay:520ms}
html[data-cas] [data-motion="materials"] .article.a-swap ul.disc li:nth-child(7){animation-delay:1010ms}
html[data-cas] [data-motion="materials"] .article.a-swap ul.disc li:nth-child(7):before{animation-delay:1110ms}
html[data-cas] [data-motion="materials"] .steel-img-control.a-in .choose-metal:nth-child(7){animation-delay:565ms}
html[data-cas] [data-motion="materials"] .article.a-swap ul.disc li:nth-child(8){animation-delay:1100ms}
html[data-cas] [data-motion="materials"] .article.a-swap ul.disc li:nth-child(8):before{animation-delay:1200ms}
html[data-cas] [data-motion="materials"] .steel-img-control.a-in .choose-metal:nth-child(8){animation-delay:610ms}

/* ---------- reduced motion: только мягкая смена прозрачности ---------- */
@media (prefers-reduced-motion:reduce){
html[data-anim] .a-r{animation:a-fade .3s ease both!important;animation-timeline:auto!important;translate:none;scale:none;filter:none;clip-path:none}
html[data-anim] .a-r.a-in{animation:a-fade .3s ease both!important}
html[data-anim] .lz-map .cp,html[data-anim] .lz-map .cx{display:none}
html[data-anim] html[data-cas] .a-swap *,html[data-cas] .a-scan *{animation:none!important}
}

/* первый экран не показываем до запуска анимации (раньше текст мелькал, исчезал и только потом появлялся) */
html.a-js:not(.a-ready) :is(.hero-headtitle,.hero-title,.hero-subtitle,.hero-bth,.hero-block-2,.utp-box,.hero .crumbs,.hero h1,.hero .lead,.hero .cta){opacity:0}
