@keyframes blurInUp{0%{opacity:0;transform:translateY(40px) scale(.95);filter:blur(10px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}@keyframes elasticScale{0%{opacity:0;transform:scale(.5)}60%{opacity:1;transform:scale(1.05)}to{transform:scale(1)}}@keyframes float{0%{transform:translateY(0)}50%{transform:translateY(-10px)}to{transform:translateY(0)}}@keyframes gradientFlow{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}@keyframes glowPulse{0%{box-shadow:0 0 0 0 rgba(249,115,22,.4)}70%{box-shadow:0 0 0 10px rgba(249,115,22,0)}to{box-shadow:0 0 0 0 rgba(249,115,22,0)}}@keyframes marquee{0%{transform:translateX(0)}to{transform:translateX(calc(-100% - var(--gap)))}}@keyframes marquee-vertical{0%{transform:translateY(0)}to{transform:translateY(calc(-100% - var(--gap)))}}.animate-blur-in{animation:blurInUp 1s cubic-bezier(.2,.8,.2,1) forwards}.animate-elastic{animation:elasticScale .8s cubic-bezier(.34,1.56,.64,1) forwards}.animate-float{animation:float 6s ease-in-out infinite}.animate-glow{animation:glowPulse 2s infinite}.animate-marquee{animation:marquee var(--duration) linear infinite}.animate-marquee-vertical{animation:marquee-vertical var(--duration) linear infinite}.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}.opacity-0{opacity:0}.hover-card-3d{transition:transform .3s ease,box-shadow .3s ease}.hover-card-3d:hover{transform:translateY(-10px) scale(1.02);box-shadow:0 20px 40px -10px rgba(0,0,0,.15)}.text-gradient-animate{background-size:200% auto;animation:gradientFlow 3s linear infinite}