.reveal-up,.reveal-scale,.text-3d,.text-opacity{will-change:transform,opacity}.magnetic{will-change:transform}.device-front{animation:float 7s ease-in-out infinite}.device-back{animation:floatBack 9s ease-in-out infinite}.orbit-a{animation:spin 26s linear infinite}.orbit-b{animation:spinReverse 35s linear infinite}.hero-glow-a{animation:pulseGlow 8s ease-in-out infinite}
@keyframes float{0%,100%{transform:translate(42px,-2px) rotateY(-11deg) rotateZ(3deg)}50%{transform:translate(42px,-18px) rotateY(-7deg) rotateZ(2deg)}}
@keyframes floatBack{0%,100%{transform:translate(-115px,54px) rotateY(18deg) rotateZ(-9deg)}50%{transform:translate(-115px,36px) rotateY(14deg) rotateZ(-7deg)}}
@keyframes spin{to{transform:rotate(360deg)}}@keyframes spinReverse{from{transform:rotate(30deg)}to{transform:rotate(-330deg)}}@keyframes pulseGlow{50%{opacity:.55;transform:scale(1.06)}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}.cursor-orb{display:none}}
.portal-transition.portal-fallback-active{opacity:1;visibility:visible;animation:portalFade 2.3s ease both}.portal-transition.portal-fallback-active .portal-ring{animation:portalRing 1.7s cubic-bezier(.5,0,.25,1) both}.portal-transition.portal-fallback-active .portal-core{animation:portalCore 1.45s .55s cubic-bezier(.7,0,.7,1) both}@keyframes portalFade{0%{opacity:0}10%,72%{opacity:1}100%{opacity:0}}@keyframes portalRing{0%{transform:scale(.12);opacity:0}35%{transform:scale(1);opacity:1}100%{transform:scale(15);opacity:.12}}@keyframes portalCore{0%{transform:scale(.2);opacity:0}45%{opacity:1}100%{transform:scale(35);opacity:0}}
.fallback-ready{opacity:0;transition:opacity .9s ease,transform .9s cubic-bezier(.2,.8,.2,1)}.reveal-up.fallback-ready{transform:translateY(38px)}.reveal-scale.fallback-ready{transform:scale(.93)}.fallback-ready.fallback-visible{opacity:1;transform:none}.char{will-change:transform,opacity}
