.portal-ambient-pulse{animation:3s ease-in-out infinite portalAmbient}@keyframes portalAmbient{0%,to{opacity:.5}50%{opacity:1}}.portal-flank-left{animation:2.5s ease-in-out infinite portalFlankL}.portal-flank-right{animation:2.5s ease-in-out infinite portalFlankR}@keyframes portalFlankL{0%,to{opacity:.3;transform:translate(calc(-50% - 4px))}50%{opacity:.8;transform:translate(calc(-50% - 6px))}}@keyframes portalFlankR{0%,to{opacity:.3;transform:translate(calc(4px - 50%))}50%{opacity:.8;transform:translate(calc(6px - 50%))}}.portal-scanner{animation:2.8s cubic-bezier(.4,0,.2,1) infinite portalScan}@keyframes portalScan{0%{opacity:0;top:-2%}5%{opacity:1}90%{opacity:1}to{opacity:0;top:102%}}.portal-scanner-reverse{animation:3.4s cubic-bezier(.4,0,.2,1) 1.2s infinite portalScanReverse}@keyframes portalScanReverse{0%{opacity:0;top:auto;bottom:-2%}5%{opacity:.7}90%{opacity:.7}to{opacity:0;top:auto;bottom:102%}}.portal-particle{opacity:0;animation:2.5s ease-out infinite portalParticle}@keyframes portalParticle{0%{opacity:0;transform:translate(-50%)translateY(0)}10%{opacity:1}70%{opacity:.6}to{transform:translateX(calc(-50% + var(--drift,8px)))translateY(-120px);opacity:0}}.portal-particle:nth-child(odd){--drift:-10px;bottom:10%}.portal-particle:nth-child(2n){--drift:12px;bottom:30%}.portal-particle:nth-child(3n){--drift:-6px;bottom:50%}.portal-particle:nth-child(4n){--drift:15px;bottom:60%}.portal-orb-glow{animation:2s ease-in-out infinite portalOrbGlow}@keyframes portalOrbGlow{0%,to{filter:brightness();transform:scale(1)}50%{filter:brightness(1.3);transform:scale(1.2)}}.portal-pulse-ring{animation:2.4s ease-out infinite portalPulseRing}.portal-pulse-ring-delayed{animation:2.4s ease-out 1.2s infinite portalPulseRing}@keyframes portalPulseRing{0%{opacity:.8;transform:translate(-2px,-2px)scale(.8)}to{opacity:0;transform:translate(-2px,-2px)scale(2.5)}}.portal-center-spin{animation:8s linear infinite portalDiamondSpin}@keyframes portalDiamondSpin{0%{transform:translate(-50%,-50%)scale(1)}25%{transform:translate(-50%,-50%)scale(1.1)}50%{transform:translate(-50%,-50%)scale(1)}75%{transform:translate(-50%,-50%)scale(.95)}to{transform:translate(-50%,-50%)scale(1)}}.portal-ripple-1{animation:3s ease-out infinite portalRipple}.portal-ripple-2{animation:3s ease-out 1.5s infinite portalRipple}@keyframes portalRipple{0%{opacity:.6;transform:scale(.5)}to{opacity:0;transform:scale(3)}}
.src-bone{position:relative;overflow:hidden}.src-bone:after{content:"";background:linear-gradient(90deg,#0000 0%,#ffffff0d 35%,#ffffff1a 50%,#ffffff0d 65%,#0000 100%) 0 0/200% 100%;animation:1.8s ease-in-out infinite src-bone-shimmer;position:absolute;inset:0}@keyframes src-bone-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}
.landing-orb-1{animation:12s ease-in-out infinite landing-orb-float-1}.landing-orb-2{animation:15s ease-in-out infinite landing-orb-float-2}.landing-orb-3{animation:18s ease-in-out infinite landing-orb-float-3}@keyframes landing-orb-float-1{0%,to{transform:translate(0)scale(1)}25%{transform:translate(60px,40px)scale(1.1)}50%{transform:translate(-30px,80px)scale(.95)}75%{transform:translate(40px,-20px)scale(1.05)}}@keyframes landing-orb-float-2{0%,to{transform:translate(0)scale(1)}33%{transform:translate(-50px,60px)scale(1.08)}66%{transform:translate(40px,-40px)scale(.92)}}@keyframes landing-orb-float-3{0%,to{transform:translate(0)scale(1)}20%{transform:translate(30px,-50px)scale(1.06)}40%{transform:translate(-60px,20px)scale(.97)}60%{transform:translate(20px,60px)scale(1.03)}80%{transform:translate(-40px,-30px)scale(.99)}}.landing-sparkle{animation:3s ease-in-out infinite landing-sparkle-float}@keyframes landing-sparkle-float{0%,to{opacity:0;transform:translateY(0)scale(.5)}15%{opacity:1;transform:translateY(-5px)scale(1)}50%{opacity:.7;transform:translateY(-15px)scale(1.2)}85%{opacity:.3;transform:translateY(-25px)scale(.8)}}@keyframes landing-gradient-shift{0%,to{background-position:0%}50%{background-position:100%}}.landing-badge-enter{animation:.7s cubic-bezier(.34,1.56,.64,1) .1s both landing-badge-pop}@keyframes landing-badge-pop{0%{opacity:0;filter:blur(4px);transform:translateY(12px)scale(.9)}to{opacity:1;filter:blur();transform:translateY(0)scale(1)}}.landing-title-line-1{animation:.8s cubic-bezier(.22,1,.36,1) .25s both landing-title-reveal}.landing-title-line-2{animation:.8s cubic-bezier(.22,1,.36,1) .4s both landing-title-reveal}.landing-title-line-3{animation:.8s cubic-bezier(.22,1,.36,1) .55s both landing-title-reveal}@keyframes landing-title-reveal{0%{opacity:0;filter:blur(6px);transform:translateY(30px)skewY(2deg)}60%{opacity:1;filter:blur()}to{opacity:1;filter:blur();transform:translateY(0)skewY(0)}}.landing-subtitle{animation:.9s cubic-bezier(.22,1,.36,1) .65s both landing-subtitle-in}@keyframes landing-subtitle-in{0%{opacity:0;filter:blur(4px);transform:translateY(16px)}to{opacity:1;filter:blur();transform:translateY(0)}}.landing-buttons-enter{animation:.8s cubic-bezier(.22,1,.36,1) .8s both landing-buttons-in}@keyframes landing-buttons-in{0%{opacity:0;filter:blur(3px);transform:translateY(20px)}to{opacity:1;filter:blur();transform:translateY(0)}}.landing-btn-shine{background:linear-gradient(105deg,#0000 30%,#ffffff26 45%,#ffffff40 50%,#ffffff26 55%,#0000 70%) 0 0/250% 100%;animation:4s ease-in-out infinite landing-shine-sweep}@keyframes landing-shine-sweep{0%,to{background-position:200%}50%{background-position:-50%}}.landing-badge-dot span:first-child{animation:1.5s cubic-bezier(0,0,.2,1) infinite ping}.fade-up-2a{animation:.8s cubic-bezier(.22,1,.36,1) .25s both landing-title-reveal}.fade-up-2b{animation:.8s cubic-bezier(.22,1,.36,1) .4s both landing-title-reveal}.fade-up-2c{animation:.8s cubic-bezier(.22,1,.36,1) .55s both landing-title-reveal}.fade-up-4{animation:.8s cubic-bezier(.22,1,.36,1) .8s both landing-buttons-in}
