.animate-on-scroll{opacity:0;transform:translateY(24px);transition:opacity 0.7s cubic-bezier(.4,0,.2,1),transform 0.7s cubic-bezier(.4,0,.2,1)}.animate-on-scroll.animated{opacity:1;transform:translateY(0)}.animate-fade-left{opacity:0;transform:translateX(-40px);transition:opacity 0.7s cubic-bezier(.4,0,.2,1),transform 0.7s cubic-bezier(.4,0,.2,1)}.animate-fade-left.animated{opacity:1;transform:translateX(0)}.animate-fade-right{opacity:0;transform:translateX(40px);transition:opacity 0.7s cubic-bezier(.4,0,.2,1),transform 0.7s cubic-bezier(.4,0,.2,1)}.animate-fade-right.animated{opacity:1;transform:translateX(0)}.animate-scale{opacity:0;transform:scale(.85);transition:opacity 0.7s cubic-bezier(.4,0,.2,1),transform 0.7s cubic-bezier(.4,0,.2,1)}.animate-scale.animated{opacity:1;transform:scale(1)}.animate-rotate{opacity:0;transform:rotate(-5deg) scale(.9);transition:opacity 0.7s cubic-bezier(.4,0,.2,1),transform 0.7s cubic-bezier(.4,0,.2,1)}.animate-rotate.animated{opacity:1;transform:rotate(0deg) scale(1)}.animate-stagger{transition-delay:calc(var(--i, 0) * 0.12s)}@keyframes heroSlideInLeft{from{opacity:0;transform:translateX(-60px)}to{opacity:1;transform:translateX(0)}}@keyframes heroSlideInRight{from{opacity:0;transform:translateX(60px)}to{opacity:1;transform:translateX(0)}}@keyframes heroFadeUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes heroScaleIn{from{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes heroBounceIn{0%{opacity:0;transform:scale(.3)}50%{transform:scale(1.05)}70%{transform:scale(.95)}100%{opacity:1;transform:scale(1)}}@keyframes heroRotateIn{from{opacity:0;transform:rotate(-10deg) scale(.8)}to{opacity:1;transform:rotate(0deg) scale(1)}}@keyframes float1{0%,100%{transform:translateY(0) rotate(0deg)}25%{transform:translateY(-12px) rotate(2deg)}50%{transform:translateY(-6px) rotate(-1deg)}75%{transform:translateY(-15px) rotate(1deg)}}@keyframes float2{0%,100%{transform:translateY(0) translateX(0)}33%{transform:translateY(-10px) translateX(5px)}66%{transform:translateY(-5px) translateX(-5px)}}@keyframes float3{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-8px) scale(1.02)}}@keyframes pulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.05);opacity:.8}}@keyframes shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}@keyframes gradientShift{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}@keyframes textReveal{from{clip-path:inset(0 100% 0 0);opacity:0}to{clip-path:inset(0 0 0 0);opacity:1}}@keyframes wordSlideUp{from{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes letterFade{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes cardSlideIn{from{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes cardFlip{from{transform:perspective(800px) rotateY(10deg);opacity:0}to{transform:perspective(800px) rotateY(0deg);opacity:1}}@keyframes iconBounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes iconSpin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}@keyframes iconPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.2)}}@keyframes countUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.skeleton{background:linear-gradient(90deg,#f0f2f5 25%,#e8ecf1 37%,#f0f2f5 63%);background-size:400% 100%;animation:shimmer 1.4s ease infinite}@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}@keyframes spinReverse{from{transform:rotate(360deg)}to{transform:rotate(0deg)}}@keyframes tickerScroll{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}@keyframes tickerPulse{0%,100%{background:var(--accent)}50%{background:#ff8f00}}.glow{box-shadow:0 0 20px rgb(26 115 232 / .3);animation:glowPulse 2s ease-in-out infinite}@keyframes glowPulse{0%,100%{box-shadow:0 0 10px rgb(26 115 232 / .2)}50%{box-shadow:0 0 25px rgb(26 115 232 / .5)}}.gradient-animate{background-size:200% 200%;animation:gradientShift 3s ease infinite}.typewriter-effect{overflow:hidden;border-right:3px solid var(--primary);white-space:nowrap;width:0;animation:typewriter 3s steps(40) 1s forwards,blinkCaret 0.75s step-end infinite}@keyframes typewriter{from{width:0}to{width:100%}}@keyframes blinkCaret{from,to{border-color:#fff0}50%{border-color:var(--primary)}}.parallax-hover{transition:transform 0.3s ease-out}.parallax-hover:hover{transform:perspective(1000px) rotateX(2deg) rotateY(-2deg) scale(1.02)}.hover-lift{transition:transform 0.3s ease,box-shadow 0.3s ease}.hover-lift:hover{transform:translateY(-6px);box-shadow:0 12px 40px rgb(0 0 0 / .15)}.focus-ring:focus{outline:none;box-shadow:0 0 0 0 rgb(26 115 232 / .4);animation:focusRing 0.6s ease forwards}@keyframes focusRing{to{box-shadow:0 0 0 4px rgb(26 115 232 / .2)}}.marquee{display:flex;animation:marquee 20s linear infinite}@keyframes marquee{0%{transform:translateX(0%)}100%{transform:translateX(-50%)}}.hover-spring{transition:transform 0.4s cubic-bezier(.34,1.56,.64,1)}.hover-spring:hover{transform:scale(1.05)}.btn-press:active{transform:scale(.96);transition:transform 0.1s}.list-stagger>*{opacity:0;transform:translateX(-20px);animation:listSlideIn 0.5s ease forwards}.list-stagger>*:nth-child(1){animation-delay:0.1s}.list-stagger>*:nth-child(2){animation-delay:0.2s}.list-stagger>*:nth-child(3){animation-delay:0.3s}.list-stagger>*:nth-child(4){animation-delay:0.4s}.list-stagger>*:nth-child(5){animation-delay:0.5s}.list-stagger>*:nth-child(6){animation-delay:0.6s}.list-stagger>*:nth-child(7){animation-delay:0.7s}.list-stagger>*:nth-child(8){animation-delay:0.8s}@keyframes listSlideIn{from{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}@keyframes wobble{0%,100%{transform:rotate(0deg)}15%{transform:rotate(5deg)}30%{transform:rotate(-5deg)}45%{transform:rotate(3deg)}60%{transform:rotate(-3deg)}75%{transform:rotate(1deg)}}@keyframes slideUpReveal{from{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}img{transition:opacity 0.4s ease}img.loading{opacity:0}img.loaded{opacity:1}