.scroll-anim-up-hidden{opacity:0;transform:translateY(30px)}.scroll-anim-up-visible{opacity:1;transform:translateY(0)}.scroll-anim-down-hidden{opacity:0;transform:translateY(-30px)}.scroll-anim-down-visible{opacity:1;transform:translateY(0)}.scroll-anim-left-hidden{opacity:0;transform:translateX(-50px)}.scroll-anim-left-visible{opacity:1;transform:translateX(0)}.scroll-anim-right-hidden{opacity:0;transform:translateX(50px)}.scroll-anim-right-visible{opacity:1;transform:translateX(0)}.scroll-anim-scale-hidden{opacity:0;transform:scale(.9)}.scroll-anim-scale-visible{opacity:1;transform:scale(1)}.hover-lift{transition:transform .3s ease,box-shadow .3s ease}.hover-lift:hover{transform:translateY(-5px);box-shadow:0 20px 40px rgba(0,0,0,.1)}.hover-glow{transition:box-shadow .3s ease}.hover-glow:hover{box-shadow:0 0 30px rgba(8,148,220,.2)}.hover-border{position:relative}.hover-border:before{content:"";position:absolute;inset:0;border-radius:inherit;border:2px solid transparent;background:linear-gradient(135deg,var(--primary-blue),transparent) border-box;-webkit-mask:linear-gradient(#fff 0 0) padding-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transition:opacity .3s ease}.hover-border:hover:before{opacity:1}.animated-gradient{background:linear-gradient(-45deg,var(--primary-blue),#667eea,#764ba2,var(--primary-blue));background-size:400% 400%;animation:gradient-shift 15s ease infinite}@keyframes gradient-shift{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.glow-pulse{animation:glow-pulse 2s ease-in-out infinite}@keyframes glow-pulse{0%,to{box-shadow:0 0 20px rgba(8,148,220,.3)}50%{box-shadow:0 0 40px rgba(8,148,220,.5)}}.floating-orb{animation:float 6s ease-in-out infinite}.floating-orb:nth-child(2){animation-delay:-2s}.floating-orb:nth-child(3){animation-delay:-4s}@keyframes float{0%,to{transform:translateY(0) rotate(0deg)}50%{transform:translateY(-20px) rotate(5deg)}}.animated-underline{position:relative;display:inline-block}.animated-underline:after{content:"";position:absolute;bottom:-2px;left:0;width:0;height:2px;background:var(--primary-blue);transition:width .3s ease}.animated-underline:hover:after{width:100%}.text-shimmer{background:linear-gradient(90deg,var(--primary-blue) 0,#667eea 50%,var(--primary-blue) 100%);background-size:200% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:text-shimmer 3s linear infinite}@keyframes text-shimmer{0%{background-position:0}to{background-position:200%}}.btn-shine{position:relative;overflow:hidden}.btn-shine:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s ease}.btn-shine:hover:before{left:100%}.btn-ripple{position:relative;overflow:hidden}.btn-ripple:after{content:"";position:absolute;top:50%;left:50%;width:5px;height:5px;background:rgba(255,255,255,.5);opacity:0;border-radius:100%;transform:scale(1) translate(-50%,-50%);transform-origin:50% 50%}.btn-ripple:focus:not(:active):after{animation:ripple .6s ease-out}@keyframes ripple{0%{transform:scale(0) translate(-50%,-50%);opacity:1}to{transform:scale(40) translate(-50%,-50%);opacity:0}}.icon-bounce:hover svg{animation:bounce .5s ease}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.icon-spin:hover svg{animation:spin .5s ease}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.icon-pulse:hover svg{animation:icon-pulse .4s ease}@keyframes icon-pulse{0%{transform:scale(1)}50%{transform:scale(1.2)}to{transform:scale(1)}}.skeleton{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%);background-size:200% 100%;animation:skeleton-loading 1.5s infinite}.dark .skeleton{background:linear-gradient(90deg,#2d3748 25%,#4a5568 50%,#2d3748 75%);background-size:200% 100%}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}.spinner{border:3px solid rgba(8,148,220,.1);border-top:3px solid var(--primary-blue);border-radius:50%;animation:spinner .8s linear infinite}@keyframes spinner{to{transform:rotate(1turn)}}.img-zoom{overflow:hidden}.img-zoom img{transition:transform .5s ease}.img-zoom:hover img{transform:scale(1.05)}.img-reveal{position:relative;overflow:hidden}.img-reveal:before{content:"";position:absolute;inset:0;background:var(--primary-blue);transform:translateX(-100%);animation:img-reveal 1s ease forwards}@keyframes img-reveal{0%{transform:translateX(-100%)}50%{transform:translateX(0)}to{transform:translateX(100%)}}.scroll-indicator{animation:scroll-bounce 2s infinite}@keyframes scroll-bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-10px)}60%{transform:translateY(-5px)}}.animate-fade-in{animation:fade-in .5s ease forwards}@keyframes fade-in{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.animate-marquee{animation:marquee 45s linear infinite}@keyframes marquee{0%{transform:translateX(0)}to{transform:translateX(-100%)}}.animate-fade-in-up{animation:fade-in-up .6s ease forwards}@keyframes fade-in-up{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in-down{animation:fade-in-down .6s ease forwards}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in-left{animation:fade-in-left .6s ease forwards}@keyframes fade-in-left{0%{opacity:0;transform:translateX(-50px)}to{opacity:1;transform:translateX(0)}}.animate-fade-in-right{animation:fade-in-right .6s ease forwards}@keyframes fade-in-right{0%{opacity:0;transform:translateX(50px)}to{opacity:1;transform:translateX(0)}}.animate-scale-in{animation:scale-in .5s ease forwards}@keyframes scale-in{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.animate-blur-in{animation:blur-in .6s ease forwards}@keyframes blur-in{0%{opacity:0;filter:blur(10px)}to{opacity:1;filter:blur(0)}}.stagger-1{animation-delay:.1s}.stagger-2{animation-delay:.2s}.stagger-3{animation-delay:.3s}.stagger-4{animation-delay:.4s}.stagger-5{animation-delay:.5s}.stagger-6{animation-delay:.6s}.stagger-7{animation-delay:.7s}.stagger-8{animation-delay:.8s}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}