body{background-color:#1a1a1a;background-image:radial-gradient(circle,#3a3a3a 1px,#0000 1px);background-size:24px 24px}.bg-dot-pattern{background-image:radial-gradient(#ffffff0d 1px,#0000 1px);background-size:24px 24px}.momentum-glow{filter:drop-shadow(0 0 8px #2dd4bf4d)}.card-level-1{background-color:#2a2a2a;border:1px solid #3a3a3a;border-radius:24px}.rounded-card{border-radius:24px}.glow-active{box-shadow:0 0 12px #2dd4bf33}.glow-focus:focus-within{border-color:#2dd4bf;box-shadow:0 0 8px #2dd4bf4d}.no-scrollbar::-webkit-scrollbar{display:none}.hide-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar,.hide-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.smooth-scroll{-webkit-overflow-scrolling:touch;scroll-behavior:smooth}@keyframes page-enter{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.animate-page-enter{animation:.35s cubic-bezier(.16,1,.3,1) forwards page-enter}@keyframes subtle-pulse{0%,to{opacity:1;filter:drop-shadow(0 0 4px #efb5154d);transform:scale(1)}50%{opacity:.85;filter:drop-shadow(0 0 8px #efb51599);transform:scale(.98)}}.animate-campfire{animation:3s ease-in-out infinite subtle-pulse}@keyframes streak-glow{0%,to{filter:drop-shadow(0 0 4px #f973164d)}50%{filter:drop-shadow(0 0 10px #f9731699)}}.animate-streak-glow{animation:2.5s ease-in-out infinite streak-glow}@keyframes check-pop{0%{opacity:0;transform:scale(.6)}70%{transform:scale(1.15)}to{opacity:1;transform:scale(1)}}.animate-check-pop{animation:.4s cubic-bezier(.175,.885,.32,1.275) forwards check-pop}.progress-ring__circle{transform-origin:50%;transition:stroke-dashoffset .8s ease-in-out;transform:rotate(-90deg)}.touch-target{justify-content:center;align-items:center;min-width:48px;min-height:48px;display:inline-flex}.hover-card-glow{transition:transform .2s,border-color .2s,box-shadow .2s}.hover-card-glow:hover{border-color:#2dd4bf66;box-shadow:0 4px 20px #0006,0 0 12px #2dd4bf1f}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
