/* премиум-анимации (агент motion) — все состояния «до появления» только под .pm (ставит premium.js),
   без JS и при prefers-reduced-motion контент виден как есть */
:root{--pm-e:cubic-bezier(.22,1,.36,1);--pm-io:cubic-bezier(.77,0,.18,1)}

/* ---------- 2. типографика: строки/слова/буквы из-под маски ---------- */
.pm .split-ready .w>span{transform:translateY(112%) rotate(6deg);transform-origin:0 100%;transition:transform 1.25s var(--pm-e);transition-delay:calc(var(--pm-l,0)*110ms + var(--pm-k,0)*38ms + var(--pm-d,0s))}
.pm .split-ready.in .w>span{transform:translateY(0) rotate(0deg)}
.pm .pm-chars.split-ready .w>span,.pm .pm-chars.split-ready.in .w>span{transform:none;transition:none}
.pm .pm-chars .ch{display:inline-block;transform:translateY(115%) rotate(9deg);transform-origin:0 100%;transition:transform 1.15s var(--pm-e);transition-delay:calc(var(--pm-l,0)*120ms + var(--pm-c,0)*22ms + var(--pm-d,0s))}
.pm .pm-chars.in .ch{transform:translateY(0) rotate(0deg)}
.pm-arrive{--pm-d:.42s}
.reveal-all .pm-chars .ch,.reveal-all .split-ready .w>span{transform:none!important}

/* ---------- 3. фото: шторка clip-path + масштаб 1.3→1, параллакс внутри рамки ---------- */
.pm [data-rv="img"]::after{display:none}
.pm .pm-rv{clip-path:inset(100% 0 0 0);transition:clip-path 1.35s var(--pm-io) var(--pm-rd,0s)}
.pm .pm-rv.pm-in{clip-path:inset(0 0 0 0)}
.pm .pm-rv img{scale:1.3;transition:transform 1.2s var(--pm-e),filter .7s var(--pm-e),scale 1.9s var(--pm-e) var(--pm-rd,0s)}
.pm .pm-rv.pm-in img{scale:1}
.pm .pm-rv.pm-in img.pm-par,.pm img.pm-par{scale:1.12}
.pm .pm-rv.pm-in img.pm-par{scale:1.12}
.pm .pm-rv:not(.pm-in) img.pm-par{scale:1.34}
.reveal-all .pm-rv{clip-path:none!important}
.reveal-all .pm-rv img{scale:1!important}
/* WebGL-холст поверх фото при наведении (один на страницу, переезжает между карточками) */
.pm-gl{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none;opacity:0;transition:opacity .35s ease}
.pm-gl.on{opacity:1}
/* фолбэк без WebGL/на тачах: мягкий масштаб + контраст */
.pm.pm-nogl .pcard:hover .media img,.pm.pm-nogl .hs-card:hover .media img{filter:contrast(1.06) saturate(1.08)}

/* ---------- 4. бегущие строки управляются JS (скорость/направление от прокрутки) ---------- */
.pm .marq-t{animation:none;will-change:transform}

/* ---------- 5. «линия чертежа» на стыке тёмной и светлой секций ---------- */
.pm-seam{position:absolute;left:0;right:0;top:0;height:0;z-index:4;pointer-events:none}
.pm-seam i{position:absolute;left:0;right:0;top:-.5px;height:1px;background:var(--or);transform:scaleX(0);transform-origin:0 50%;transition:transform 1.5s var(--pm-io)}
.pm-seam b{position:absolute;left:0;right:0;top:-4px;height:8px;background:repeating-linear-gradient(90deg,var(--or) 0 1px,transparent 1px 80px);opacity:0;transition:opacity .8s .7s;-webkit-mask:linear-gradient(90deg,#000,transparent 70%);mask:linear-gradient(90deg,#000,transparent 70%)}
.pm-seam em{position:absolute;left:var(--pad,24px);top:10px;font:normal 400 10px/1 var(--f-m);letter-spacing:.14em;color:var(--or);text-transform:uppercase;opacity:0;transform:translateY(-6px);transition:opacity .6s .9s,transform .9s var(--pm-e) .9s;white-space:nowrap}
.pm-seam em+em{left:auto;right:var(--pad,24px)}
.pm-seam.on i{transform:scaleX(1)}
.pm-seam.on b{opacity:.55}
.pm-seam.on em{opacity:.9;transform:none}
.pm-seam.off i{transform:scaleX(0);transform-origin:100% 50%;transition-duration:1.1s}

/* ---------- 6. стопка карточек ---------- */
.pm-stack{position:sticky;isolation:isolate;transform-origin:50% 0;will-change:transform}
.pm-shade{position:absolute;inset:0 calc(var(--pad,24px)*-1);background:#0b0b0c;opacity:0;pointer-events:none;z-index:5}
.pm-stack::before{content:"";position:absolute;z-index:-1;inset:0 calc(var(--pad,24px)*-1);background:var(--pm-bg,var(--paper));box-shadow:0 -40px 80px -40px rgba(0,0,0,.28)}

/* ---------- 7. переход между страницами ---------- */
.pm .curtain{display:none}
.pm-tr{position:fixed;inset:0;z-index:95;pointer-events:none;visibility:hidden}
.pm-tr.on{visibility:visible;pointer-events:all}
.pm-tr-p{position:absolute;inset:0;background:var(--ink,#0f1012);clip-path:inset(100% 0 0 0)}
.pm-tr svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.pm-tr svg path{fill:none;stroke:var(--or);stroke-width:1;vector-effect:non-scaling-stroke;stroke-dasharray:1 1;stroke-dashoffset:1}
.pm-tr svg path.g{stroke:rgba(241,239,233,.28)}
.pm-tr-t{position:absolute;left:var(--pad,24px);bottom:34px;font:400 12px/1 var(--f-m);letter-spacing:.14em;text-transform:uppercase;color:var(--txt);opacity:0;display:flex;gap:14px;align-items:center}
.pm-tr-t::before{content:"";width:10px;height:10px;background:var(--or)}
.pm-tr-n{position:absolute;right:var(--pad,24px);bottom:26px;font:600 clamp(44px,8vw,120px)/.8 var(--f-d);letter-spacing:-.04em;color:var(--txt);opacity:0}
.pm-tr-n small{font-size:.3em;color:var(--or)}
.pm-arrive body.page-enter main,.pm-arrive body.page-enter .hdr{animation:none}

/* ---------- 8. курсор ---------- */
.pm-cursor .cursor{display:none!important}
.pm-cur{position:fixed;left:0;top:0;z-index:130;pointer-events:none;opacity:0;transition:opacity .4s}
.pm-cur.on{opacity:1}
.pm-cur-d{position:fixed;left:0;top:0;width:6px;height:6px;margin:-3px 0 0 -3px;border-radius:50%;background:var(--or);transition:opacity .3s,scale .4s var(--pm-e)}
.pm-cur-r{position:fixed;left:0;top:0;border:1px solid rgba(255,91,20,.7);border-radius:50%;display:grid;place-items:center;overflow:hidden;transition:background-color .45s var(--pm-e),border-color .45s,opacity .3s}
.pm-cur-r span{font:500 11px/1 var(--f-m);letter-spacing:.1em;text-transform:uppercase;color:#fff;opacity:0;transform:translateY(8px) scale(.9);transition:opacity .3s,transform .5s var(--pm-e);white-space:nowrap}
.pm-cur.lbl .pm-cur-r{background:var(--or);border-color:var(--or)}
.pm-cur.lbl .pm-cur-r span{opacity:1;transform:none}
.pm-cur.lbl .pm-cur-d,.pm-cur.stick .pm-cur-d{opacity:0}
.pm-cur.stick .pm-cur-r{border-color:rgba(255,91,20,.95);background:rgba(255,91,20,.06)}
.pm-cur.txt .pm-cur-r{opacity:0}
.pm-cur.down .pm-cur-d{scale:.5}
@media (hover:none),(pointer:coarse){.pm-cur{display:none}}

/* прогресс-линейка чертежа */
.pm-ruler{position:fixed;right:14px;top:50%;height:min(52vh,520px);width:34px;transform:translateY(-50%);z-index:44;pointer-events:none;opacity:0;transition:opacity .8s,transform .8s var(--pm-e)}
.pm-ruler.on{opacity:1}
.hdr-menu-open .pm-ruler,.menu-open .pm-ruler,.modal-open .pm-ruler,.lb-on .pm-ruler{opacity:0}
.pm-ruler .rl-b{position:absolute;right:0;top:0;bottom:0;width:12px;background:repeating-linear-gradient(180deg,rgba(143,141,135,.75) 0 1px,transparent 1px 10px) right/6px 100% no-repeat,repeating-linear-gradient(180deg,rgba(143,141,135,.95) 0 1px,transparent 1px 50px) right/12px 100% no-repeat}
.pm-ruler .rl-l{position:absolute;right:0;top:0;bottom:0;width:1px;background:rgba(143,141,135,.6)}
.pm-ruler .rl-f{position:absolute;right:0;top:0;height:100%;width:2px;margin-right:-.5px;background:var(--or);transform-origin:top;transform:scaleY(0)}
.pm-ruler .rl-i{position:absolute;right:14px;top:0;display:flex;align-items:center;gap:6px;font:400 10px/1 var(--f-m);letter-spacing:.08em;color:var(--or);transform:translateY(-50%);will-change:transform}
.pm-ruler .rl-i::after{content:"";width:0;height:0;border-left:6px solid var(--or);border-top:4px solid transparent;border-bottom:4px solid transparent}
.pm-ruler .rl-m{position:absolute;right:-8px;width:30px;height:14px;margin-top:-7px;pointer-events:auto;cursor:pointer;display:block}
.pm-ruler .rl-m::before{content:"";position:absolute;right:8px;top:6px;width:18px;height:1.5px;background:rgba(143,141,135,.95);transition:background .3s,width .4s var(--pm-e)}
.pm-ruler .rl-m.act::before{background:var(--or);width:22px}
.pm-ruler .rl-m span{position:absolute;right:38px;top:50%;transform:translate(8px,-50%);font:400 10px/1 var(--f-m);letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;color:var(--txt);background:rgba(15,16,18,.86);padding:6px 8px;opacity:0;transition:opacity .3s,transform .5s var(--pm-e);pointer-events:none}
.pm-ruler .rl-m span b{color:var(--or);font-weight:400;margin-right:8px}
.pm-ruler .rl-m:hover span,.pm-ruler .rl-m:focus-visible span{opacity:1;transform:translate(0,-50%)}
@media (max-width:1100px){.pm-ruler{display:none}}

/* кнопки: заливка из точки входа курсора */
.pm-fine .btn::before,.pm-fine .btn-round::before{inset:auto;left:var(--bx,50%);top:var(--by,100%);width:var(--bd,400px);height:var(--bd,400px);border-radius:50%;transform:translate(-50%,-50%) scale(0);transition:transform .75s var(--pm-e)}
.pm-fine .btn:hover::before,.pm-fine .btn-round:hover::before{transform:translate(-50%,-50%) scale(1)}
.pm-fine .btn .arr{transition:transform .7s var(--pm-e)}

/* шапка */
.pm .hdr{transition:transform .9s var(--pm-e),background .5s}
