@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-down{0%{opacity:0;transform:translateY(-10px);max-height:0}to{opacity:1;transform:translateY(0);max-height:500px}}@keyframes toggle-bounce{0%,to{transform:translate(0)}50%{transform:translate(2px)}}@keyframes scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes scan{0%{top:0%;opacity:0}10%{opacity:1}90%{opacity:1}to{top:100%;opacity:0}}@keyframes spin-reverse{0%{transform:rotate(360deg)}to{transform:rotate(0)}}@keyframes bounce-slow{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes loading-progress{0%{width:0%}50%{width:70%}to{width:100%}}.animate-fade-in{animation:fade-in .3s ease-out}.animate-slide-up{animation:slide-up .4s ease-out}.animate-scale-in{animation:scale-in .2s ease-out}.animate-slide-down{animation:slide-down .4s ease-out}.animate-scan{animation:scan 2s linear infinite}.animate-spin-reverse{animation:spin-reverse 3s linear infinite}.animate-bounce-slow{animation:bounce-slow 2s ease-in-out infinite}.animate-loading-progress{animation:loading-progress 4s ease-in-out infinite}button[role=switch]:active span{animation:toggle-bounce .3s ease-in-out}.scrollbar-thin::-webkit-scrollbar{width:6px}.scrollbar-thin::-webkit-scrollbar-track{background:transparent}.scrollbar-thin::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:3px}.scrollbar-thin::-webkit-scrollbar-thumb:hover{background:#fff3}.scrollbar-thumb-white\/10::-webkit-scrollbar-thumb{background:#ffffff1a}.perspective-1000{perspective:1000px}
