/* NOVA motion layer — transform/opacity only; disabled for prefers-reduced-motion */
.sprog{position:fixed;top:0;left:0;right:0;height:2px;z-index:50;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(90deg,#7C5CFF,#A78BFA,#4ADE80);box-shadow:0 0 12px #8B6CFFaa;pointer-events:none}
.top{transition:background .35s,border-color .35s,box-shadow .35s}
.top .wrap{transition:height .35s cubic-bezier(.2,.8,.2,1)}
.top.scrolled{background:#0A0814e6;border-bottom-color:#2A2738;box-shadow:0 10px 40px #0006}
.top.scrolled .wrap{height:56px}
.top .logo i{transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.top.scrolled .logo i{transform:scale(.85)}
.links a{position:relative}
.links a:after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:1px;background:var(--v3);transform:scaleX(0);transform-origin:left;transition:transform .3s}
.links a:hover:after{transform:scaleX(1)}
/* hero glow accents */
.hero{position:relative;overflow:hidden}
.hero .orb{position:absolute;border-radius:50%;filter:blur(70px);pointer-events:none;z-index:-1;will-change:transform;opacity:.55}
.hero .orb.a{width:520px;height:520px;left:-120px;top:-80px;background:radial-gradient(circle,#7C5CFF,transparent 65%);animation:orbA 16s ease-in-out infinite alternate}
.hero .orb.b{width:460px;height:460px;right:-120px;top:120px;background:radial-gradient(circle,#4ADE8055,transparent 65%);animation:orbB 19s ease-in-out infinite alternate}
@keyframes orbA{to{transform:translate3d(120px,80px,0) scale(1.15)}}
@keyframes orbB{to{transform:translate3d(-100px,-60px,0) scale(.9)}}
.hero h1 .grey{background:linear-gradient(90deg,#6E6A7C,#A78BFA,#7C5CFF,#6E6A7C);background-size:300% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shine 8s linear infinite}
@keyframes shine{to{background-position:300% 0}}
.persp .win{will-change:transform}
/* reveal */
.m-on .rv{opacity:0;transform:translate3d(0,28px,0) scale(.985);filter:blur(8px);transition:opacity .9s cubic-bezier(.2,.8,.2,1),transform .9s cubic-bezier(.2,.8,.2,1),filter .9s cubic-bezier(.2,.8,.2,1);transition-delay:calc(var(--i,0)*90ms)}
.m-on .rv.in{opacity:1;transform:none;filter:none}
.m-on .fade{opacity:1;transform:none}
/* cards */
.card{position:relative;transition:transform .35s cubic-bezier(.2,.8,.2,1),border-color .35s,box-shadow .35s}
.card.hov:before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .3s;background:radial-gradient(380px circle at var(--mx,50%) var(--my,50%),#8B6CFF22,transparent 60%)}
.card.hov:hover:before{opacity:1}
.card.hov:hover{transform:translate3d(0,-4px,0);border-color:#8B6CFF88;box-shadow:0 18px 50px #7C5CFF22}
#pricing .card.hov:hover{transform:translate3d(0,-6px,0) scale(1.015)}
.step .n{transition:transform .4s cubic-bezier(.2,.8,.2,1)}
.step:hover .n{transform:translate3d(4px,0,0)}
.btn{transition:transform .2s cubic-bezier(.2,.8,.2,1),box-shadow .25s,border-color .25s}
.btn:hover{transform:translate3d(0,-2px,0)}
.btn:active{transform:scale(.97)}
.btn.p{position:relative;overflow:hidden}
.btn.p:after{content:"";position:absolute;top:0;bottom:0;width:40%;left:-60%;background:linear-gradient(100deg,transparent,#fff4,transparent);transform:skewX(-20deg);transition:left .6s}
.btn.p:hover:after{left:130%}
footer .word{will-change:transform}
@media (prefers-reduced-motion:reduce){
 .hero .orb,.hero h1 .grey{animation:none}
 .m-on .rv{opacity:1;transform:none;filter:none;transition:none}
 .card,.btn,.top .wrap{transition:none}.card.hov:hover,.btn:hover{transform:none}
 .sprog{display:none}
}
/* batch window: photos pop in synced with progress bar */
.tile.ph{background:#15131F}
.tile.ph img{display:block;width:100%;height:100%;object-fit:cover;border-radius:inherit}
.m-on .tile.ph{opacity:0;transform:scale(.82) translate3d(0,14px,0);transition:opacity .6s cubic-bezier(.2,.8,.2,1),transform .7s cubic-bezier(.34,1.56,.64,1);transition-delay:calc(var(--k)*.25s + .15s)}
.m-on .win.go .tile.ph{opacity:1;transform:none}
.m-on .prog i{width:0;transition:width 1.15s linear .15s}
.m-on .win.go .prog i{width:100%}
@media (prefers-reduced-motion:reduce){.m-on .tile.ph{opacity:1;transform:none;transition:none}.m-on .prog i{width:100%;transition:none}}
