.custom-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;background:#0ea5e9;border-radius:50%;cursor:pointer;margin-top:-6px;border:1px solid white;box-shadow:0 0 0 1px #0ea5e9}.custom-slider::-moz-range-thumb{width:16px;height:16px;background:#0ea5e9;border-radius:50%;cursor:pointer;border:1px solid white;box-shadow:0 0 0 1px #0ea5e9}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.cta-button{position:relative;overflow:hidden;z-index:1;transition:all .3s cubic-bezier(.25,.8,.25,1)}.cta-button:hover{background-color:#0369a1;transform:translateY(-2px);box-shadow:0 10px 20px #00000030,0 6px 6px #0000003b,0 0 30px #38bdf899}.cta-button:after{content:"";position:absolute;top:0;left:0;transform:translate(-100%) skew(-25deg);width:150%;height:100%;background-image:linear-gradient(to right,transparent,rgba(255,255,255,.25),transparent)}.cta-button:hover:after{transform:translate(100%) skew(-25deg);transition:transform 1.2s cubic-bezier(.7,0,.3,1)}.goal-reached-glow{animation:glow-animation 2s ease-in-out infinite alternate}@keyframes glow-animation{0%{box-shadow:0 0 5px #10b981,0 0 10px #10b981,0 0 15px #34d399}to{box-shadow:0 0 10px #10b981,0 0 20px #34d399,0 0 30px #6ee7b7}}.shimmer-effect{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(100deg,#fff0 20%,#fff6,#fff0 80%);animation:shimmer-animation 2.5s ease-in-out infinite;border-radius:9999px}@keyframes shimmer-animation{0%{transform:translate(-100%)}to{transform:translate(100%)}}.sparkle-container{position:absolute;top:0;left:0;height:100%;pointer-events:none;overflow:hidden;border-radius:9999px}.sparkle{position:absolute;bottom:2px;width:3px;height:3px;background-color:#a7f3d0;border-radius:50%;animation:float-up-animation ease-out infinite;opacity:0}@keyframes float-up-animation{0%{transform:translateY(0) translate(0);opacity:1}to{transform:translateY(-50px) translate(var(--x-drift));opacity:0}}
