@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInFromTop{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInFromLeft{0%{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}@keyframes slideInFromRight{0%{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}@keyframes shimmer{0%{background-position:-468px 0}to{background-position:468px 0}}@keyframes bounce{0%,20%,53%,80%,to{transform:translateZ(0)}40%,43%{transform:translate3d(0,-6px,0)}70%{transform:translate3d(0,-3px,0)}90%{transform:translate3d(0,-1px,0)}}.animate-fadeIn{animation:fadeIn .6s ease-out forwards}.animate-slideInFromTop{animation:slideInFromTop .5s ease-out forwards}.animate-slideInFromLeft{animation:slideInFromLeft .5s ease-out forwards}.animate-slideInFromRight{animation:slideInFromRight .5s ease-out forwards}.animate-scaleIn{animation:scaleIn .4s ease-out forwards}.animate-pulse-slow{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.animate-shimmer{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}.dark .animate-shimmer{background:linear-gradient(90deg,#374151 25%,#4b5563 50%,#374151 75%);background-size:200% 100%}.animate-stagger-in{opacity:0;animation:fadeIn .6s ease-out forwards}.animate-stagger-in:first-child{animation-delay:.1s}.animate-stagger-in:nth-child(2){animation-delay:.2s}.animate-stagger-in:nth-child(3){animation-delay:.3s}.animate-stagger-in:nth-child(4){animation-delay:.4s}.animate-stagger-in:nth-child(5){animation-delay:.5s}.animate-stagger-in:nth-child(6){animation-delay:.6s}.transition-smooth{transition:all .3s cubic-bezier(.4,0,.2,1)}.loading-spinner{border:2px solid #f3f3f3;border-top-color:#3498db;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.card-hover{transition:transform .2s ease-in-out,box-shadow .2s ease-in-out}.card-hover:hover{transform:translateY(-2px);box-shadow:0 10px 25px rgba(0,0,0,.1)}.button-press{transition:transform .1s ease-in-out}.button-press:active{transform:scale(.98)}@keyframes searchResultAppear{0%{opacity:0;transform:translateY(10px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.search-result-appear{animation:searchResultAppear .4s ease-out forwards}@keyframes filterSlide{0%{opacity:0;transform:translateX(-10px)}to{opacity:1;transform:translateX(0)}}.filter-slide{animation:filterSlide .3s ease-out forwards}