/* The scene sits above the page background, below every interactive surface. */
body{isolation:isolate}
.ambient{z-index:-1}
.scene-glows,.scene-decor{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.scene-glow{position:absolute;width:65vw;height:65vw;min-width:550px;min-height:550px;border-radius:50%;filter:blur(65px);mix-blend-mode:multiply;opacity:.55;background:radial-gradient(circle,#91c8ff 0%,#91c8ff00 65%)}
.scene-glow:nth-child(1){left:-22%;top:-38%}
.scene-glow:nth-child(2){background:radial-gradient(circle,#b3a8f4 0%,#b3a8f400 65%);right:-25%;top:5%}
.scene-glow:nth-child(3){background:radial-gradient(circle,#9ce7d8 0%,#9ce7d800 65%);left:12%;bottom:-62%}
.dark .ambient{opacity:1}
.dark .scene-glow{mix-blend-mode:screen;opacity:.17}
.scene-shape{position:absolute;color:#4d83cf;opacity:.2;font-size:var(--shape-size);line-height:1;font-weight:200;will-change:translate,rotate}
.scene-shape>span{display:block}
.dark .scene-shape{color:#8db9ff;opacity:.18}
.scene-star{position:absolute;width:3px;height:3px;background:#4c94ef;border-radius:50%;opacity:.3;box-shadow:0 0 10px #4c94ef66}
.motion-scene .scene-glow:nth-child(1){animation:aura-blue 15s ease-in-out infinite alternate}
.motion-scene .scene-glow:nth-child(2){animation:aura-violet 18s ease-in-out -6s infinite alternate}
.motion-scene .scene-glow:nth-child(3){animation:aura-mint 13s ease-in-out -3s infinite alternate}
.motion-scene .scene-shape>span{animation:shape-drift var(--duration) ease-in-out var(--delay) infinite alternate}
.motion-scene .scene-star{animation:star-glimmer var(--duration) ease-in-out var(--delay) infinite}
.motion-scene .hero-content{translate:calc(var(--pointer-x,0px)) calc(var(--hero-y,0px) + var(--pointer-y,0px));rotate:var(--pointer-rotate,0deg);opacity:var(--hero-opacity,1);will-change:translate,opacity}
.motion-scene .hero-content>.eyebrow{animation:hero-enter .9s .05s both}
.motion-scene .hero h1{animation:hero-enter 1.1s .12s cubic-bezier(.18,.75,.2,1) both}
.motion-scene .hero .subtitle{animation:hero-enter .9s .28s both}
.motion-scene .hero .intro{animation:hero-enter .9s .4s both}
.motion-scene .hero .actions{animation:hero-enter .9s .52s both}
.motion-scene .hero-meta{animation:hero-enter .9s .64s both}
.motion-scene .hero h1 span{background:linear-gradient(110deg,#1677ff 15%,#8c9dff 47%,#25a2ed 70%,#1677ff 90%);background-size:240% 100%;background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;color:transparent;text-shadow:none;animation:spectrum 7s ease-in-out infinite}
.motion-scene .watermark{translate:var(--watermark-x,0px) var(--watermark-y,0px);will-change:translate}
.music-bars{height:16px;display:inline-flex;align-items:center;gap:3px;margin-right:5px}
.music-bars i{height:100%;width:3px;background:var(--blue);border-radius:3px;transform:scaleY(.35)}
.motion-scene .music-bars i{animation:equalizer calc(750ms + var(--bar)*140ms) ease-in-out calc(var(--bar)*-170ms) infinite alternate}
.motion-scene .scroll-cue span{transform-origin:top;animation:scroll-line 1.8s ease-in-out infinite}
.motion-scene .motion-section .reveal{transition:none!important;transform:none!important;opacity:var(--motion-opacity,1)!important}
.motion-scene .motion-section .feature-copy{translate:var(--copy-x,0px) var(--copy-y,0px);will-change:translate,opacity}
.motion-scene .motion-section .phone{--rest-angle:6deg;translate:var(--phone-x,0px) var(--phone-y,0px);rotate:var(--phone-rotate,0deg);scale:var(--phone-scale,1);animation:phone-sway 7s ease-in-out infinite alternate;animation-play-state:paused;will-change:translate,rotate}
.motion-scene .motion-section .phone.secondary{--rest-angle:-10deg;animation-delay:-3s;animation-direction:alternate-reverse}
.motion-scene .motion-section .single .phone{--rest-angle:-5deg}
.motion-scene .motion-section.is-in-view .phone{animation-play-state:running}
.motion-scene .feature-symbol{will-change:rotate}
.motion-scene .source-item{translate:var(--source-x,0px) var(--source-y,0px);rotate:var(--source-rotate,0deg);transition:box-shadow .3s}
.motion-scene .gallery-item{translate:0 65px;opacity:.05;transition:translate .85s cubic-bezier(.18,.75,.2,1),opacity .85s;transition-delay:var(--card-delay,0ms)}
.motion-scene .gallery-item.is-in-view{translate:0 0;opacity:1}
.motion-paused *,.motion-paused *:before,.motion-paused *:after{animation-play-state:paused!important}
@keyframes hero-enter{from{opacity:0;transform:translateY(45px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes aura-blue{from{transform:translate(-6%,-3%) scale(.85)}to{transform:translate(55%,38%) scale(1.2)}}
@keyframes aura-violet{from{transform:translate(5%,-12%) scale(.9)}to{transform:translate(-45%,30%) scale(1.2)}}
@keyframes aura-mint{from{transform:translate(-20%,10%) scale(.9)}to{transform:translate(40%,-45%) scale(1.15)}}
@keyframes shape-drift{from{transform:translateY(-16px) rotate(-18deg)}to{transform:translateY(22px) rotate(28deg)}}
@keyframes star-glimmer{0%,100%{opacity:.12;transform:scale(.6)}50%{opacity:.6;transform:scale(1.3)}}
@keyframes equalizer{0%{transform:scaleY(.25)}100%{transform:scaleY(1)}}
@keyframes scroll-line{0%,100%{transform:scaleY(.35);opacity:.3}50%{transform:scaleY(1);opacity:1}}
@keyframes spectrum{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
@keyframes phone-sway{from{transform:translateY(-8px) rotate(calc(var(--rest-angle) - 1.5deg))}to{transform:translateY(8px) rotate(calc(var(--rest-angle) + 1.5deg))}}
@media(max-width:720px){.scene-glow{filter:blur(45px);opacity:.4}.dark .scene-glow{opacity:.13}.scene-shape{opacity:.12}.dark .scene-shape{opacity:.14}.motion-scene .hero-content{rotate:0deg}.music-bars{height:12px}.motion-scene .gallery-item{translate:0 35px}.motion-scene .gallery-item.is-in-view{translate:0 0}}
@media(prefers-reduced-motion:reduce){.scene-decor,.scene-glows{display:none}.music-bars{display:none}.motion-scene .hero-content,.motion-scene .watermark,.motion-scene .feature-copy,.motion-scene .phone,.motion-scene .source-item,.motion-scene .gallery-item{translate:none!important;rotate:none!important;scale:none!important;opacity:1!important}.motion-scene .hero h1 span{color:var(--blue);background:none}}
