@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.animate-shimmer{animation:2s infinite shimmer}@keyframes progress-bar{0%{transform:translate(-100%)}to{transform:translate(100%)}}.animate-progress-bar{animation:1.5s ease-in-out infinite progress-bar}@keyframes toast-progress{0%{width:100%}to{width:0%}}.animate-toast-progress{animation:linear forwards toast-progress}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.animate-in.fade-in{animation:.5s ease-out fade-in}@keyframes slide-in-from-bottom{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-in.slide-in-from-bottom{animation:.5s ease-out slide-in-from-bottom}@keyframes slide-in-from-right-full{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.animate-in.slide-in-from-right-full{animation:.3s ease-out slide-in-from-right-full}@keyframes zoom-in-95{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.animate-in.zoom-in-95{animation:.5s ease-out zoom-in-95}@keyframes pulse-enhanced{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.05)}}.animate-pulse-enhanced{animation:2s cubic-bezier(.4,0,.6,1) infinite pulse-enhanced}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-spin{animation:1s linear infinite spin}@keyframes bounce{0%,to{animation-timing-function:cubic-bezier(0,0,.2,1);transform:translateY(0)}50%{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}}.animate-bounce{animation:1s infinite bounce}@keyframes gradient-shift{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}.animate-gradient{background-size:200% 200%;animation:3s infinite gradient-shift}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-10px)}20%,40%,60%,80%{transform:translate(10px)}}.animate-shake{animation:.5s ease-in-out shake}@keyframes scale-success{0%{opacity:0;transform:scale(0)}50%{transform:scale(1.1)}to{opacity:1;transform:scale(1)}}.animate-scale-success{animation:.5s ease-out scale-success}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.5}}.animate-skeleton-pulse{animation:2s cubic-bezier(.4,0,.6,1) infinite skeleton-pulse}.card-hover-lift{transition:transform .2s ease-in-out,box-shadow .2s ease-in-out}.card-hover-lift:hover{transform:translateY(-4px);box-shadow:0 20px 25px -5px #0000004d,0 10px 10px -5px #0003}.transition-all-smooth{transition:all .3s cubic-bezier(.4,0,.2,1)}[data-stagger]{animation-delay:calc(var(--stagger-index,0)*.1s)}@keyframes loading-spinner{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-spinner{border:3px solid #ffffff1a;border-top-color:#0ff;border-radius:50%;animation:.8s linear infinite loading-spinner}@keyframes draw-checkmark{0%{stroke-dashoffset:100px}to{stroke-dashoffset:0}}.animate-checkmark{stroke-dasharray:100;animation:.5s ease-out forwards draw-checkmark}.backdrop-blur-custom{-webkit-backdrop-filter:blur(8px)}.smooth-scroll{scroll-behavior:smooth;overflow-y:auto}.hide-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.hide-scrollbar::-webkit-scrollbar{display:none}.custom-scrollbar::-webkit-scrollbar{width:8px;height:8px}.custom-scrollbar::-webkit-scrollbar-track{background:#1e293b80;border-radius:4px}.custom-scrollbar::-webkit-scrollbar-thumb{background:#64748b80;border-radius:4px}.custom-scrollbar::-webkit-scrollbar-thumb:hover{background:#94a3b8b3}
