.fade-in{animation:fadeIn .3s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.slide-up{animation:slideUp .3s ease-out}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.slide-in-right{animation:slideInRight .25s ease-out}@keyframes slideInRight{0%{transform:translate(30px);opacity:0}to{transform:translate(0);opacity:1}}.slide-in-left{animation:slideInLeft .25s ease-out}@keyframes slideInLeft{0%{transform:translate(-30px);opacity:0}to{transform:translate(0);opacity:1}}.scale-in{animation:scaleIn .2s ease-out}@keyframes scaleIn{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}.count-up{transition:all .6s cubic-bezier(.34,1.56,.64,1)}.skeleton{background:linear-gradient(90deg,#f3f4f6 25%,#e5e7eb,#f3f4f6 75%);background-size:200% 100%;animation:skeleton 1.5s infinite}@keyframes skeleton{0%{background-position:200% 0}to{background-position:-200% 0}}.pulse-dot{animation:pulseDot 2s infinite}@keyframes pulseDot{0%,to{opacity:1}50%{opacity:.5}}.page-enter-active,.page-leave-active{transition:all .25s ease-out}.page-enter-from{opacity:0;transform:translate(20px)}.page-leave-to{opacity:0;transform:translate(-10px)}.tab-enter-active,.tab-leave-active{transition:opacity .2s ease}.tab-enter-from,.tab-leave-to{opacity:0}
