@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:fadeIn .8s ease-out forwards}.animate-fade-in-delay{animation:fadeIn .8s ease-out .3s forwards;opacity:0}.animate-fade-in-up{animation:fadeInUp .6s ease-out forwards;opacity:0}@keyframes blob{0%,to{transform:translate(0) scale(1)}25%{transform:translate(20px,-50px) scale(1.1)}50%{transform:translate(-20px,20px) scale(.9)}75%{transform:translate(50px,50px) scale(1.05)}}.animate-blob{animation:blob 20s ease-in-out infinite}.animation-delay-2000{animation-delay:2s}.animation-delay-4000{animation-delay:4s}.animation-delay-6000{animation-delay:6s}@keyframes subtle-pan{0%{transform:translateZ(0) scale(1)}50%{transform:translate3d(-1.5%,-1.5%,0) scale(1.02)}to{transform:translateZ(0) scale(1)}}.animate-subtle-pan{animation:subtle-pan 20s ease-in-out infinite;will-change:transform}.animate-subtle-pan-slower{animation:subtle-pan 35s ease-in-out infinite;will-change:transform}@keyframes purple-drift{0%,to{background-position:0 50%}50%{background-position:100% 50%}}.animate-purple-drift{animation:purple-drift 15s ease infinite}@keyframes marquee{0%{transform:translateX(0)}to{transform:translateX(-50%)}}.animate-marquee{animation:marquee 30s linear infinite}@keyframes bounce-x{0%,to{transform:translateX(0)}25%{transform:translateX(-2px)}75%{transform:translateX(2px)}}.animate-bounce-x{animation:bounce-x 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.animate-pulse-slow{animation:pulse 3s cubic-bezier(.4,0,.6,1) infinite}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}.animate-ping{animation:ping 1s cubic-bezier(0,0,.2,1) infinite}@keyframes scale{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.animate-scale{animation:scale 2s ease-in-out infinite}.hover-scale:hover{transform:scale(1.05);transition:transform .3s ease}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.duration-700{transition-duration:.7s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}@keyframes slideUp{0%{opacity:0;transform:translateX(-50%) translateY(100%)}to{opacity:1;transform:translateX(-50%) translateY(0)}}@keyframes slideDown{0%{opacity:1;transform:translateX(-50%) translateY(0)}to{opacity:0;transform:translateX(-50%) translateY(100%)}}.animate-slide-up{animation:slideUp .3s ease-out}.animate-slide-down{animation:slideDown .3s ease-out}@keyframes rotate{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.animate-rotate{animation:rotate 1s linear infinite}@keyframes gentle-glow{0%,to{box-shadow:0 4px 6px -1px rgba(139,92,246,.1),0 2px 4px -1px rgba(139,92,246,.06);transform:scale(1)}50%{box-shadow:0 8px 25px -3px rgba(139,92,246,.2),0 4px 6px -2px rgba(139,92,246,.1);transform:scale(1.02)}}.animate-gentle-glow{animation:gentle-glow 2s ease-in-out infinite}