@keyframes float{0%{transform:translateY(0)}50%{transform:translateY(-10px)}to{transform:translateY(0)}}.animate-float{animation:float 4s ease-in-out infinite}@keyframes floating{0%{transform:translateY(0)}50%{transform:translateY(-8px)}to{transform:translateY(0)}}.animate-floating{animation:floating 3s ease-in-out infinite}@keyframes pulse-soft{0%{box-shadow:0 0 0 0 rgba(var(--color-primary),.4)}70%{box-shadow:0 0 0 10px rgba(var(--color-primary),0)}to{box-shadow:0 0 0 0 rgba(var(--color-primary),0)}}.animate-pulse-soft{animation:pulse-soft 2s infinite}@keyframes shimmer{0%{background-position:-100% 0}to{background-position:200% 0}}.animate-shimmer{background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.5),rgba(255,255,255,0));animation:shimmer 2s infinite}@keyframes gradient-flow{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.animate-gradient-flow{animation:gradient-flow 8s ease infinite}@keyframes fade-in-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in-up{animation:fade-in-up .6s ease forwards}@keyframes soft-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-15px)}}.animate-soft-bounce{animation:soft-bounce 2s ease infinite}.perspective{perspective:1000px}.preserve-3d{transform-style:preserve-3d}@keyframes spin-slow{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.animate-spin-slow{animation:spin-slow 20s linear infinite}.bg-noise{background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%' height='100%' filter='url(%23noiseFilter)'/%3E%3C/svg%3E")}@keyframes rotate-3d{0%{transform:rotate3d(1,1,1,0deg)}to{transform:rotate3d(1,1,1,1turn)}}.animate-rotate-3d{animation:rotate-3d 20s linear infinite}.depth-effect{box-shadow:0 5px 15px rgba(0,0,0,.05),0 15px 35px rgba(0,0,0,.1),0 50px 100px rgba(30,64,175,.1)}.animate-shimmer{background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.2),rgba(255,255,255,0));background-size:200% 100%;animation:shimmer 2.5s infinite}@keyframes typing{0%{width:0}to{width:100%}}@keyframes blink-caret{0%,to{border-color:transparent}50%{border-color:rgba(var(--color-primary),1)}}.animate-typing{overflow:hidden;white-space:nowrap;border-right:2px solid transparent;animation:typing 3.5s steps(40),blink-caret .75s step-end infinite}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in-up{animation:fadeInUp .6s ease-out forwards}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in-down{animation:fadeInDown .6s ease-out forwards}@keyframes fadeInLeft{0%{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}.animate-fade-in-left{animation:fadeInLeft .6s ease-out forwards}@keyframes fadeInRight{0%{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}.animate-fade-in-right{animation:fadeInRight .6s ease-out forwards}.hover-lift{transition:transform .3s ease,box-shadow .3s ease}.hover-lift:hover{transform:translateY(-5px);box-shadow:0 10px 25px -5px rgba(var(--color-primary),.15)}@keyframes gradientFlow{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.animate-gradient-flow{background-size:200% 200%;animation:gradientFlow 8s ease infinite}@keyframes slideInFromBottom{0%{transform:translateY(50px);opacity:0}to{transform:translateY(0);opacity:1}}.animate-slide-in-bottom{animation:slideInFromBottom .5s ease-out forwards}.delay-100{animation-delay:.1s}.delay-200{animation-delay:.2s}.delay-300{animation-delay:.3s}.delay-400{animation-delay:.4s}.delay-500{animation-delay:.5s}.delay-700{animation-delay:.7s}.delay-1000{animation-delay:1s}@keyframes revealBorder{0%{width:0}to{width:100%}}.hover-reveal-border{position:relative}.hover-reveal-border:after{content:"";position:absolute;bottom:-2px;left:0;width:0;height:2px;background-color:rgba(var(--color-primary),1);transition:width .3s ease-in-out}.hover-reveal-border:hover:after{width:100%}.hover-3d{transition:transform .3s ease;transform-style:preserve-3d;perspective:1000px}.hover-3d:hover{transform:rotateX(5deg) rotateY(5deg)}