::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:#e2e8f0}::-webkit-scrollbar-thumb{background:#94a3b8;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#64748b}.dark ::-webkit-scrollbar-track{background:#1e293b}.dark ::-webkit-scrollbar-thumb{background:#475569}.dark ::-webkit-scrollbar-thumb:hover{background:#64748b}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}html,body{-webkit-overflow-scrolling:touch;overscroll-behavior-y:none}*{-webkit-tap-highlight-color:transparent}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.animate-fade-in{animation:fadeIn .5s ease-out forwards}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.animate-fade-out{animation:fadeOut .5s ease-in forwards}@keyframes slideInUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.animate-slide-in-up{animation:slideInUp .5s ease-out forwards}@keyframes slideInDown{0%{transform:translateY(-100%)}to{transform:translateY(0)}}.animate-slide-in-down{animation:slideInDown .5s ease-out forwards}@keyframes slideOutUp{0%{transform:translateY(0)}to{transform:translateY(-100%)}}.animate-slide-out-up{animation:slideOutUp .5s ease-in forwards}@keyframes slideOutDown{0%{transform:translateY(0);opacity:1}to{transform:translateY(20px);opacity:0}}.animate-slide-out-down{animation:slideOutDown .5s ease-in forwards}@keyframes fade-out-up{0%{transform:translateY(0);opacity:1}to{transform:translateY(-20px);opacity:0}}.animate-fade-out-up{animation:fade-out-up .4s ease-in forwards}@keyframes pulse-glow{0%,to{box-shadow:0 0 0 var(--glow-color)}50%{box-shadow:0 0 25px 8px var(--glow-color)}}.animate-pulse-glow{animation:pulse-glow .75s infinite ease-in-out}@keyframes pop{0%{transform:scale(1)}50%{transform:scale(1.25)}to{transform:scale(1)}}.animate-pop{animation:pop .3s ease-in-out}@keyframes xp-gain{0%{transform:translateY(0) scale(.8);opacity:1}to{transform:translateY(-40px) scale(1.2);opacity:0}}.animate-xp-gain{animation:xp-gain 1.5s ease-out forwards}@keyframes heartbeat{0%{transform:scale(1);box-shadow:0 0 #dc262666}25%{transform:scale(1.01);box-shadow:0 0 15px 5px #dc262699}50%{transform:scale(1);box-shadow:0 0 #dc262600}75%{transform:scale(1.01);box-shadow:0 0 15px 5px #dc262699}to{transform:scale(1);box-shadow:0 0 #dc262600}}.animate-heartbeat{animation:heartbeat 1.2s infinite cubic-bezier(.215,.61,.355,1);border-color:#ef444499!important}.text-shadow{text-shadow:1px 1px 3px rgba(0,0,0,.4)}.reveal{position:relative;transform:translateY(100px);opacity:0;transition:.8s all cubic-bezier(.25,.46,.45,.94)}.reveal.active{transform:translateY(0);opacity:1}
