@keyframes float{0%,to{transform:translateY(0) rotate(0deg);opacity:.3}50%{transform:translateY(-20px) rotate(180deg);opacity:.8}}@keyframes float-slow{0%,to{transform:translateY(0) rotate(0deg)}50%{transform:translateY(-30px) rotate(1turn)}}@keyframes twinkle{0%,to{opacity:.2;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}}@keyframes gradient-shift{0%{background-position:0 0}50%{background-position:100% 100%}to{background-position:0 0}}@keyframes fade-in-up{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-in-slow{0%{opacity:0}to{opacity:1}}.animate-float{animation:float 6s ease-in-out infinite}.animate-float-slow{animation:float-slow 12s ease-in-out infinite}.animate-twinkle{animation:twinkle 3s ease-in-out infinite}.animate-gradient-shift{animation:gradient-shift 10s ease-in-out infinite;background-size:200% 200%}.animate-fade-in-up{animation:fade-in-up 1s ease-out forwards}.animate-fade-in{animation:fade-in .5s ease-out forwards}.animate-fade-in-slow{animation:fade-in-slow 2s ease-out forwards}.hover\:scale-102:hover{transform:scale(1.02)}@keyframes wave{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}.animate-wave{animation:wave 2s ease-in-out infinite}