html,body{margin:0;padding:0;background:#1a1a1a;overflow:hidden;height:100%;font-family:Fredoka,system-ui,sans-serif;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}#root{height:100vh;width:100vw;display:flex;align-items:center;justify-content:center}button{font-family:inherit}@keyframes mascotBob{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-6px) rotate(-1.5deg)}}@keyframes sparkleBurst{0%{transform:translate(-50%,-50%) scale(0) rotate(0);opacity:1}60%{transform:translate(-50%,-50%) scale(1.2) rotate(180deg);opacity:1}to{transform:translate(-50%,-50%) scale(1) rotate(360deg);opacity:0}}@keyframes hintPulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-10px)}50%{transform:translate(8px)}75%{transform:translate(-6px)}}.stage-wrap{position:relative;width:1180px;height:820px;transform-origin:center center}@keyframes traceRing{0%{transform:scale(.55);opacity:.85}to{transform:scale(2.1);opacity:0}}@keyframes traceDotBreathe{0%,to{transform:scale(1)}50%{transform:scale(1.18)}}@keyframes traceArrow{0%{transform:translate(0);opacity:0}30%{opacity:1}to{transform:translateY(-26px);opacity:0}}@keyframes strokePop{0%{transform:scale(1)}40%{transform:scale(1.045)}to{transform:scale(1)}}@keyframes checkPop{0%{transform:scale(0) rotate(-25deg);opacity:0}60%{transform:scale(1.15) rotate(6deg);opacity:1}to{transform:scale(1) rotate(0);opacity:1}}@keyframes confettiPop{0%{transform:translate(-50%,-50%) scale(0) rotate(0);opacity:1}35%{transform:translate(calc(-50% + var(--dx) * .55),calc(-50% + var(--dy) * .55)) scale(1.25) rotate(160deg);opacity:1}to{transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy) + 26px)) scale(.65) rotate(420deg);opacity:0}}@keyframes blobDrift{0%,to{transform:translate(0) scale(1)}50%{transform:translate(18px,-22px) scale(1.06)}}
