@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translateX(-30px)}to{opacity:1;transform:translateX(0)}}@keyframes slideInRight{0%{opacity:0;transform:translateX(30px)}to{opacity:1;transform:translateX(0)}}@keyframes slideOut{0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(-30px)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes pulse-soft{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.02)}}@keyframes bounce{0%,to{transform:translateY(0);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:translateY(-25%);animation-timing-function:cubic-bezier(0,0,.2,1)}}@keyframes shake{0%,to{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-4px)}20%,40%,60%,80%{transform:translateX(4px)}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes spin-slow{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes progress{0%{background-position:100% 0}to{background-position:-100% 0}}@keyframes skeleton{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes scale-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}@keyframes slide-up{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes slide-down{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}@keyframes toast-enter{0%{opacity:0;transform:translateY(-100%) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes toast-exit{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-100%) scale(.9)}}@keyframes hamburger-top{0%{transform:translateY(0) rotate(0)}50%{transform:translateY(6px) rotate(0)}to{transform:translateY(6px) rotate(45deg)}}@keyframes hamburger-bottom{0%{transform:translateY(0) rotate(0)}50%{transform:translateY(-6px) rotate(0)}to{transform:translateY(-6px) rotate(-45deg)}}@keyframes hamburger-middle{0%{opacity:1}50%{opacity:0}to{opacity:0}}.animate-fade-in{animation:fadeIn .3s ease forwards}.animate-fade-in-up{animation:fadeInUp .4s ease forwards}.animate-fade-in-down{animation:fadeInDown .4s ease forwards}.animate-slide-in{animation:slideIn .4s ease forwards}.animate-slide-in-right{animation:slideInRight .4s ease forwards}.animate-slide-up{animation:slide-up .4s ease forwards}.animate-scale-in{animation:scale-in .3s ease forwards}.animate-scale-out{animation:scale-out .2s ease forwards}.animate-pulse-soft{animation:pulse-soft 2s cubic-bezier(.4,0,.6,1) infinite}.animate-bounce{animation:bounce 1s infinite}.animate-shake{animation:shake .5s ease}.animate-spin{animation:spin 1s linear infinite}.animate-spin-slow{animation:spin-slow 3s linear infinite}.animate-float{animation:float 3s ease-in-out infinite}.animate-hover-lift{transition:transform .2s ease-out,box-shadow .2s ease-out}.animate-hover-lift:hover{transform:translateY(-4px);box-shadow:0 10px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1)}.animate-press:active{transform:scale(.98)}.animate-press{transition:transform .1s ease-out}.page-transition-enter{opacity:0;transform:translateY(10px)}.page-transition-enter-active{opacity:1;transform:translateY(0);transition:opacity .3s,transform .3s}.page-transition-exit{opacity:1}.page-transition-exit-active{opacity:0;transition:opacity .2s}.animate-skeleton{background:linear-gradient(90deg,rgb(var(--color-skeleton-start,243 244 246)) 25%,rgb(var(--color-skeleton-mid,229 231 235)) 50%,rgb(var(--color-skeleton-end,243 244 246)) 75%);background-size:200% 100%;animation:skeleton 1.5s ease-in-out infinite}.dark .animate-skeleton{--color-skeleton-start:55 65 81;--color-skeleton-mid:75 85 99;--color-skeleton-end:55 65 81}.animate-toast-enter{animation:toast-enter .3s ease forwards}.animate-toast-exit{animation:toast-exit .2s ease forwards}.animate-progress{background:linear-gradient(90deg,#3b82f6,#9333ea 50%,#3b82f6);background-size:200% 100%;animation:progress 2s linear infinite}.stagger-1{animation-delay:.05s}.stagger-2{animation-delay:.1s}.stagger-3{animation-delay:.15s}.stagger-4{animation-delay:.2s}.stagger-5{animation-delay:.25s}.stagger-6{animation-delay:.3s}.stagger-7{animation-delay:.35s}.stagger-8{animation-delay:.4s}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.animate-skeleton{animation:none;background:rgb(var(--color-skeleton-start,243 244 246))}.animate-bounce,.animate-float,.animate-pulse-soft{animation:none}.animate-hover-lift:hover{transform:none}}@media (max-width:768px){.animate-fade-in,.animate-fade-in-down,.animate-fade-in-up{animation-duration:.25s}.animate-slide-in,.animate-slide-in-right,.animate-slide-up{animation-duration:.3s}@media (hover:none){.animate-hover-lift:hover{transform:none;box-shadow:none}.animate-press:active{transform:scale(.97)}}}.loading-shimmer{position:relative;overflow:hidden}.loading-shimmer:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.4),transparent);transform:translateX(-100%);animation:shimmer 2s infinite}@keyframes shimmer{to{transform:translateX(100%)}}.dark .loading-shimmer:after{background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.1),transparent)}