@keyframes slide-in-from-left{0%{transform:translateX(-100%)}to{transform:translateX(0)}}@keyframes slide-in-from-right{0%{transform:translateX(100%)}to{transform:translateX(0)}}@keyframes slide-out{0%{opacity:1}to{opacity:0}}@keyframes shimmer{0%{transform:translateX(-100%)}to{transform:translateX(200%)}}.animate-shimmer{animation:shimmer 2s infinite}@keyframes spin-slow{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.animate-spin-slow{animation:spin-slow 2s linear infinite}@keyframes pulse-scale{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.9}}.animate-pulse-scale{animation:pulse-scale 2s ease-in-out infinite}@keyframes slideDown{0%{opacity:0;max-height:0;transform:translateY(-10px)}to{opacity:1;max-height:500px;transform:translateY(0)}}@keyframes slideUp{0%{opacity:1;max-height:500px;transform:translateY(0)}to{opacity:0;max-height:0;transform:translateY(-10px)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}.animate-slide-down{animation:slideDown .3s ease-out forwards}.animate-slide-up{animation:slideUp .3s ease-out forwards}.animate-fade-in{animation:fadeIn .3s ease-out forwards}.animate-scale-in{animation:scaleIn .2s ease-out forwards}@keyframes wave{0%,to{transform:rotate(0deg)}25%{transform:rotate(20deg)}75%{transform:rotate(-20deg)}}.mascot-wave{animation:wave 2s ease-in-out infinite;transform-origin:bottom center}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.animate-float{animation:float 3s ease-in-out infinite}@keyframes fade-in-up{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in-up{animation:fade-in-up .7s cubic-bezier(.34,1.56,.64,1) forwards}.animate-fade-in-up-delay-1{opacity:0;animation:fade-in-up .7s cubic-bezier(.34,1.56,.64,1) .15s forwards}.animate-fade-in-up-delay-2{opacity:0;animation:fade-in-up .7s cubic-bezier(.34,1.56,.64,1) .3s forwards}.animate-fade-in-up-delay-3{opacity:0;animation:fade-in-up .7s cubic-bezier(.34,1.56,.64,1) .45s forwards}@keyframes subtle-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.85;transform:scale(1.02)}}.animate-subtle-pulse{animation:subtle-pulse 2s ease-in-out infinite}@keyframes progress-glow{0%,to{box-shadow:0 0 8px rgba(89,201,225,.4)}50%{box-shadow:0 0 16px rgba(89,201,225,.7)}}.animate-progress-glow{animation:progress-glow 1.5s ease-in-out infinite}@keyframes bounce-in{0%{opacity:0;transform:scale(.3) translateY(20px)}50%{transform:scale(1.05) translateY(-5px)}70%{transform:scale(.95) translateY(2px)}to{opacity:1;transform:scale(1) translateY(0)}}.animate-bounce-in{animation:bounce-in .6s cubic-bezier(.34,1.56,.64,1) forwards}@keyframes slide-fade-in{0%{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}.animate-slide-fade-in{animation:slide-fade-in .5s ease-out forwards}@keyframes bounce-dot{0%,80%,to{transform:translateY(0)}40%{transform:translateY(-8px)}}.animate-bounce-dot-1{animation:bounce-dot 1.4s ease-in-out infinite}.animate-bounce-dot-2{animation:bounce-dot 1.4s ease-in-out .2s infinite}.animate-bounce-dot-3{animation:bounce-dot 1.4s ease-in-out .4s infinite}@keyframes gradient-shift{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.animate-gradient-text{background:linear-gradient(90deg,#002d4c,#59c9e1,#002d4c,#59c9e1);background-size:300% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:gradient-shift 6s ease-in-out infinite}@keyframes text-shimmer{0%{background-position:-200%}to{background-position:200%}}.animate-text-shimmer{background:linear-gradient(90deg,#64748b,#64748b 40%,#002d4c 50%,#64748b 60%,#64748b);background-size:200% auto;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:text-shimmer 3s linear infinite}@keyframes gentle-float{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.animate-gentle-float{animation:gentle-float 3s ease-in-out infinite}@keyframes glow-pulse{0%,to{text-shadow:0 0 0 transparent}50%{text-shadow:0 0 20px rgba(89,201,225,.3)}}.animate-glow-pulse{animation:glow-pulse 2.5s ease-in-out infinite}