/* Motion enhances fully visible, usable content; no dependency on scroll reveals. */
.motion-reveal{animation:studio-arrive .7s cubic-bezier(.2,.7,.2,1) both;animation-delay:var(--entrance-delay,0ms)}
@keyframes studio-arrive{from{opacity:.25;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
.app-stage{max-width:1136px;margin:auto;position:relative;perspective:1400px}
.app-stage::before{content:"";position:absolute;inset:8% -3%;border-radius:50%;background:radial-gradient(ellipse,#9d74ec28,transparent 70%);filter:blur(26px);pointer-events:none;animation:studio-halo 7s ease-in-out infinite}
.app-stage .app-window{position:relative;transform:rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transform-origin:center;transition:transform .45s cubic-bezier(.2,.65,.3,1),border-color .3s,box-shadow .3s;backface-visibility:hidden}
.app-stage .app-window::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(circle at var(--light-x,50%) var(--light-y,30%),#d6c4ff09,transparent 45%);opacity:var(--light-opacity,0);transition:opacity .4s}
@keyframes studio-halo{0%,100%{opacity:.45;transform:scale(.97)}50%{opacity:.85;transform:scale(1.03)}}
.download,.pay{position:relative;overflow:hidden;isolation:isolate}
.download::after,.pay::after{content:"";position:absolute;inset:-60% -45%;background:linear-gradient(110deg,transparent 40%,#ffffff40 49%,transparent 58%);transform:translateX(-80%);pointer-events:none;transition:transform .7s ease}
.download:hover::after,.pay:hover:not(:disabled)::after{transform:translateX(80%)}
.brand svg{transition:transform .4s cubic-bezier(.2,.8,.2,1),filter .4s}.brand:hover svg{transform:rotate(-9deg) scale(1.07);filter:drop-shadow(0 0 7px #ad91ff60)}
.premium-link,.language button,.secondary,.result-close{transition:background .2s,border-color .2s,box-shadow .2s,transform .2s}.premium-link:hover{box-shadow:0 0 20px #7edbb51c;background:#7edbb50b}.premium-strip .arrow{transition:transform .25s}.premium-strip:hover .arrow{transform:translateX(5px)}
.benefits article .icon{display:inline-block;transition:transform .3s}.benefits article:hover .icon{transform:translateY(-3px) rotate(-8deg)}
.plan .radio{transition:border-width .2s,border-color .2s,background .2s}.plan[aria-pressed=true]{animation:studio-plan .35s ease-out}
@keyframes studio-plan{from{box-shadow:0 0 0 3px #ad91ff30}to{box-shadow:0 0 0 0 #ad91ff00}}
.checkout{transition:border-color .3s,box-shadow .3s}.checkout:focus-within{border-color:#957abd;box-shadow:0 0 45px #8864c91e,0 20px 60px #0002}.checkout input{transition:border-color .2s,box-shadow .2s}.checkout input:focus{border-color:#a78bd9;box-shadow:0 0 0 3px #a78bd912}
.currency-menu:not([hidden]){animation:studio-menu .18s ease-out;transform-origin:top right}
@keyframes studio-menu{from{opacity:0;transform:translateY(-5px) scale(.98)}to{opacity:1;transform:none}}
.payment-result:not([hidden]){animation:studio-arrive .4s ease-out}.pay{transition:filter .2s,box-shadow .2s,transform .2s}.pay:hover:not(:disabled){transform:translateY(-2px)}
@media(hover:none),(pointer:coarse){.app-stage .app-window{transform:none!important}.app-stage::before{animation:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.app-stage .app-window{transform:none!important}}
