@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.animate-shimmer{background:linear-gradient(90deg,#0000 0%,#ffffff4d 50%,#0000 100%) 0 0/1000px 100%;animation:2s linear infinite shimmer}@keyframes redirectProgress{0%{width:0%}to{width:100%}}@keyframes redirectPulseRing{0%{opacity:.75;transform:scale(.85)}50%{opacity:.25;transform:scale(1.15)}to{opacity:.75;transform:scale(.85)}}@keyframes redirectSlideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.animate-redirect-progress{animation:.85s ease-in-out forwards redirectProgress}.animate-redirect-pulse-ring{animation:1.4s ease-in-out infinite redirectPulseRing}.animate-redirect-slide-up{animation:.45s ease-out forwards redirectSlideUp}