@keyframes fadeInDown{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(50px)}to{opacity:1;transform:translateY(0)}}@keyframes shake{0%,to{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-5px)}20%,40%,60%,80%{transform:translateX(5px)}}.animate-fadeInDown{animation:fadeInDown 1s ease-out}.animate-fadeInUp{animation:fadeInUp 1s ease-out}.animate-fadeIn{animation:fadeIn .3s ease-out}.animate-slideUp{animation:slideUp .4s ease-out}.animate-shake{animation:shake .5s ease-in-out}.animation-delay-200{animation-delay:.2s;animation-fill-mode:backwards}.animation-delay-400{animation-delay:.4s;animation-fill-mode:backwards}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}@keyframes logoEntrance{0%{opacity:0;transform:scale(.6) rotate(-8deg);filter:blur(4px)}50%{opacity:.8;transform:scale(1.08) rotate(1deg);filter:blur(0)}to{opacity:1;transform:scale(1) rotate(0deg);filter:blur(0)}}.animate-logoEntrance{animation:logoEntrance .8s cubic-bezier(.34,1.56,.64,1) forwards}@keyframes gradientShift{0%{background-position:0}50%{background-position:100%}to{background-position:0}}