@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes slideInFromRight{0%{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}:focus-visible{outline:2px solid #2196f3;outline-offset:2px}html{scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.custom-scrollbar{scrollbar-width:thin;scrollbar-color:rgba(33,150,243,.3) transparent}.custom-scrollbar::-webkit-scrollbar{width:6px;height:6px}.custom-scrollbar::-webkit-scrollbar-track{background:transparent}.custom-scrollbar::-webkit-scrollbar-thumb{background:rgba(33,150,243,.3);border-radius:3px}.custom-scrollbar::-webkit-scrollbar-thumb:hover{background:rgba(33,150,243,.5)}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media (prefers-contrast:high){a,button{border:2px solid}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.animate-shimmer{background:linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.1) 50%,hsla(0,0%,100%,0));background-size:200% 100%;animation:shimmer 3s linear infinite}@keyframes shooting-star{0%{transform:translateX(0) translateY(0) rotate(-45deg) scale(1);opacity:1}70%{opacity:1}to{transform:translateX(300px) translateY(300px) rotate(-45deg) scale(0);opacity:0}}.animate-shooting-star{animation:shooting-star 3s ease-out infinite}@keyframes nebula-pulse{0%{transform:scale(1);opacity:.3}50%{transform:scale(1.1);opacity:.5}to{transform:scale(1);opacity:.3}}.animate-nebula-pulse{animation:nebula-pulse 8s ease-in-out infinite}@keyframes rotate-border{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.animate-rotate-border{animation:rotate-border 4s linear infinite}.animate-spin-slow{animation:spin 8s linear infinite}@keyframes slideUpFade{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.animate-slide-up-fade{animation:slideUpFade .8s cubic-bezier(.16,1,.3,1) forwards}