.hint-hand{position:absolute;z-index:35;font-size:38px;pointer-events:none;filter:drop-shadow(0 3px 4px rgba(0,0,0,.25));animation:hint-nudge var(--t-hint-nudge) ease-in-out infinite}@keyframes hint-nudge{0%,to{transform:translate(0)}50%{transform:translate(var(--hint-dx),var(--hint-dy))}}#mute-btn .mute-x{display:none}#mute-btn.is-muted .mute-x,#mute-btn .mute-wave{display:block}#mute-btn.is-muted .mute-wave{display:none}.start-screen{background:linear-gradient(var(--sky-top),var(--sky-bottom));display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:manipulation}.start-top{position:absolute;top:14px;left:14px;right:14px;display:flex;justify-content:space-between;align-items:center}.lang-pill{height:44px;padding:0 18px;border:none;border-radius:22px;background:var(--ui-bg);box-shadow:0 4px 0 var(--ui-shadow);color:var(--ink);font-family:var(--font);font-weight:700;font-size:15px}.start-slots{display:flex;gap:14px;align-items:center;justify-content:center}.avatar-slot{width:min(var(--avatar-slot-w),26vw);aspect-ratio:1;border:none;border-radius:50%;background:var(--card);box-shadow:0 5px 0 var(--ui-shadow);display:flex;align-items:center;justify-content:center;padding:0;touch-action:manipulation}.avatar-slot.empty{background:transparent;box-shadow:none}.avatar-svg{width:72%;height:72%}.profile-confirm-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;display:flex;align-items:center;justify-content:center;background:#14283c59}.profile-confirm-card{background:var(--win-card-bg);border-radius:22px;box-shadow:0 8px 0 var(--win-card-sh);padding:20px 26px;display:flex;flex-direction:column;align-items:center;gap:16px}.profile-confirm-avatar .avatar-svg{width:72px;height:72px}.profile-confirm-row{display:flex;gap:22px;align-items:center}.profile-confirm-cancel,.profile-confirm-delete{border:none;border-radius:50%;display:flex;align-items:center;justify-content:center;padding:0}.profile-confirm-cancel{width:64px;height:64px;background:var(--ui-bg);box-shadow:0 4px 0 var(--ui-shadow)}.profile-confirm-cancel svg{width:30px;height:30px}.profile-confirm-delete{width:46px;height:46px;background:#ffecec;box-shadow:0 3px #e8b8b8}.profile-confirm-delete svg{width:20px;height:20px}.map-scroll{position:absolute;top:0;right:0;bottom:0;left:0;overflow-y:auto;overscroll-behavior:contain}.map-track{min-height:100%;background:var(--map-mood);display:flex;flex-direction:column;padding:90px 0 110px}.map-band{display:flex;flex-direction:column;align-items:center;gap:22px;padding:22px 0}.map-node{width:var(--node-w);height:var(--node-w);border-radius:50%;border:none;padding:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;background:var(--node-bg);box-shadow:0 5px 0 var(--node-sh)}.map-node.zig-a{align-self:flex-start;margin-left:22%}.map-node.zig-b{align-self:flex-end;margin-right:22%}.map-node.milestone{width:var(--node-w-milestone);height:var(--node-w-milestone)}.map-node.state-locked{background:var(--node-locked-bg);box-shadow:0 4px 0 var(--node-locked-sh)}.map-node.state-locked .node-lock{width:34%;height:34%}.map-node.state-current{border:var(--node-current-border);animation:mapNodePulse var(--t-pulse) ease-in-out infinite}.map-node.milestone.state-unlocked,.map-node.milestone.state-current{border:var(--node-milestone-border)}.map-node.milestone.state-current{border:var(--node-current-border)}.node-num{font-weight:700;font-size:14px;line-height:1;color:var(--ink)}.map-node.state-locked .node-num{color:var(--node-lock-ink)}.map-node.milestone .node-num{font-size:15px}.node-stars{display:flex;gap:2px}.node-stars .star{width:14px;height:14px}.node-stars .star svg{width:100%;height:100%;display:block}.map-topbar{position:absolute;top:12px;left:14px;right:14px;display:flex;justify-content:space-between;z-index:5}.map-avatar-btn svg,.map-avatar-btn .avatar-svg{width:30px;height:30px}.map-screen>.confetti.map-celebration{z-index:6}@keyframes mapNodePulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.obj{position:absolute;top:0;left:0;cursor:grab}.obj.drifting{transition:transform var(--t-cloud-drift) ease-out}.obj.dragging{z-index:30;cursor:grabbing;transition:none}.obj.dragging .motion.bob{animation:none}.obj.dragging.rail-pull-ease{transition:transform .1s ease-out}.obj.bouncing{transition:transform var(--t-shake) ease-out}.drop{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;box-sizing:border-box;border-style:solid;border-width:var(--drop-outline-w);border-radius:50% 50% 46% 46%/58% 58% 44% 44%;overflow:hidden}.drop.spawn{animation:spawn var(--t-spawn) var(--ease-pop) both}.drop.pop{animation:scoopPop var(--t-scoop) var(--ease-pop)}.drop .swirl{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;animation:swirlSpin var(--t-merge-swirl) ease-out forwards}.drop .gloss{position:absolute;top:10%;left:16%;width:30%;height:18%;background:var(--drop-gloss);border-radius:50%;transform:rotate(-22deg)}.drop .eyes{display:flex;margin-bottom:-2px;animation:blink var(--t-blink) infinite}.drop .eyes i{display:block;border-radius:50%;background:var(--drop-eye-light)}.drop .eyes.eye-dark i{background:var(--drop-eye-dark)}.drop .num{font-weight:700;line-height:.95}.drop.v1{background:radial-gradient(circle at 34% 28%,var(--v1-hi),var(--v1-bg) 70%);border-color:var(--v1-out);box-shadow:0 5px 0 var(--v1-sh)}.drop.v1 .num{color:var(--v1-ink)}.drop.v2{background:radial-gradient(circle at 34% 28%,var(--v2-hi),var(--v2-bg) 70%);border-color:var(--v2-out);box-shadow:0 5px 0 var(--v2-sh)}.drop.v2 .num{color:var(--v2-ink)}.drop.v3{background:radial-gradient(circle at 34% 28%,var(--v3-hi),var(--v3-bg) 70%);border-color:var(--v3-out);box-shadow:0 5px 0 var(--v3-sh)}.drop.v3 .num{color:var(--v3-ink)}.drop.v4{background:radial-gradient(circle at 34% 28%,var(--v4-hi),var(--v4-bg) 70%);border-color:var(--v4-out);box-shadow:0 5px 0 var(--v4-sh)}.drop.v4 .num{color:var(--v4-ink)}.drop.v5{background:radial-gradient(circle at 34% 28%,var(--v5-hi),var(--v5-bg) 70%);border-color:var(--v5-out);box-shadow:0 5px 0 var(--v5-sh)}.drop.v5 .num{color:var(--v5-ink)}.drop.v6{background:radial-gradient(circle at 34% 28%,var(--v6-hi),var(--v6-bg) 70%);border-color:var(--v6-out);box-shadow:0 5px 0 var(--v6-sh)}.drop.v6 .num{color:var(--v6-ink)}.drop.v7{background:radial-gradient(circle at 34% 28%,var(--v7-hi),var(--v7-bg) 70%);border-color:var(--v7-out);box-shadow:0 5px 0 var(--v7-sh)}.drop.v7 .num{color:var(--v7-ink)}.drop.v8{background:radial-gradient(circle at 34% 28%,var(--v8-hi),var(--v8-bg) 70%);border-color:var(--v8-out);box-shadow:0 5px 0 var(--v8-sh)}.drop.v8 .num{color:var(--v8-ink)}.drop.v9{background:radial-gradient(circle at 34% 28%,var(--v9-hi),var(--v9-bg) 70%);border-color:var(--v9-out);box-shadow:0 5px 0 var(--v9-sh)}.drop.v9 .num{color:var(--v9-ink)}.cloud{position:relative}.cloud.spawn{animation:spawn var(--t-spawn) var(--ease-pop) both}.cloud-svg{display:block;width:100%;height:100%}.cloud-back{fill:var(--cloud-sh)}.cloud-front{stroke:var(--cloud-out);stroke-width:3px}.cloud-num{font-family:var(--font);font-weight:var(--fw-cloud-num);font-size:22px;fill:var(--v10)}.momo{position:relative;width:100%;height:100%}.momo-body{display:block;width:100%;height:100%}.mouth-group{transform-box:fill-box;transform-origin:top center;transition:transform .18s ease}.momo.open .mouth-group{transform:scaleY(1.42)}.motion.bob{animation:bob var(--t-bob) ease-in-out infinite}.motion.shake,.motion.bob.shake{animation:shake var(--t-shake)}.motion.happy,.motion.bob.happy{animation:momoBounce var(--t-happy) both}.poof-ring{position:absolute;width:80px;height:80px;border:5px solid #fff;border-radius:50%;pointer-events:none;z-index:25;animation:poofRing var(--t-poof) ease-out forwards}.poof-sparkle{position:absolute;font-size:20px;color:#fff;pointer-events:none;z-index:26;animation:poofSparkle var(--t-poof) ease-out forwards}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}@keyframes blink{0%,91%,to{transform:scaleY(1)}94%{transform:scaleY(.12)}}@keyframes spawn{0%{transform:scale(0)}to{transform:scale(1)}}@keyframes scoopPop{0%{transform:scale(1)}50%{transform:scale(1.16)}to{transform:scale(1)}}@keyframes swirlSpin{0%{transform:rotate(0);opacity:1}to{transform:rotate(220deg);opacity:0}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-7px)}50%{transform:translate(7px)}75%{transform:translate(-4px)}}@keyframes momoBounce{0%,to{transform:translateY(0)}30%{transform:translateY(-24px)}60%{transform:translateY(0)}80%{transform:translateY(-10px)}}@keyframes poofRing{0%{opacity:.95;transform:scale(.3)}to{opacity:0;transform:scale(2.1)}}@keyframes poofSparkle{0%{opacity:1;transform:translate(0) scale(1)}to{opacity:0;transform:translate(var(--dx),var(--dy)) scale(.4)}}.bubble{position:absolute;left:50%;top:-6px;transform:translate(-50%,-100%);pointer-events:none;z-index:20}.bubble-card{position:relative;min-width:44px;min-height:36px;padding:6px 16px;display:flex;align-items:center;justify-content:center;background:var(--card);border-radius:16px;box-shadow:0 4px 0 var(--ui-shadow);font-weight:700;font-size:var(--fs-bubble);color:var(--bubble-ink);white-space:nowrap}.bubble-tail{position:absolute;bottom:-7px;left:50%;transform:translate(-50%);border:8px solid transparent;border-top-color:var(--card);border-bottom:0}.bubble-card.tick{animation:tickPulse .22s ease-out}.bubble-digits{display:flex}.digit-slot{position:relative;display:inline-block;overflow:hidden;max-width:1.05em;text-align:center;transition:max-width var(--t-digit-drop) ease}.digit-slot.collapsed{max-width:0}.digit-slot .digit-cur{display:inline-block}.digit-slot .digit-out{position:absolute;left:0;top:0;animation:digitFallOut var(--t-digit-drop) ease-in forwards}.digit-slot .digit-in{animation:digitDropIn var(--t-digit-drop) var(--ease-pop)}.bubble-reveal-wrap{position:relative}.bubble-reveal{display:flex;align-items:flex-end;gap:3px}.bubble-digits.pre-reveal{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;opacity:0;transform:scale(.3)}.bubble-card.revealing .bubble-reveal{animation:revealIconsOut var(--t-reveal) ease-in forwards}.bubble-card.revealing .bubble-digits.pre-reveal{animation:revealDigitsIn var(--t-reveal) var(--ease-pop) forwards}.reveal-cloud{display:inline-block;width:20px;height:13px;border-radius:50%;background:var(--cloud-fill);border:2px solid var(--cloud-out)}.reveal-drop{display:inline-block;width:9px;height:11px;border-radius:50% 50% 40% 40%;background:var(--v1-bg);border:2px solid var(--v1-out)}.win-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;align-items:center;justify-content:center}.win-scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:#1e4d6359}.win-card{position:relative;display:flex;flex-direction:column;align-items:center;background:var(--win-card-bg);border-radius:28px;padding:30px 38px;text-align:center;box-shadow:0 8px 0 var(--win-card-sh);animation:spawn var(--t-spawn) var(--ease-pop) both}.win-stars{display:flex;gap:10px;justify-content:center;margin-bottom:24px}.win-stars .star{width:44px;height:44px;opacity:0;animation:starPop var(--t-star-pop) var(--ease-pop) both}.win-stars .star:nth-child(1){animation-delay:0ms}.win-stars .star:nth-child(2){animation-delay:var(--t-star-stagger)}.win-stars .star:nth-child(3){animation-delay:calc(var(--t-star-stagger) * 2)}.win-btn-row{display:flex;align-items:center;gap:18px}.btn-next{width:76px;height:76px;padding:0;border:3px solid var(--btn-next-out);border-radius:50%;background:radial-gradient(circle at 34% 28%,var(--btn-next-hi),var(--btn-next) 70%);box-shadow:0 6px 0 var(--btn-next-sh);display:flex;align-items:center;justify-content:center;cursor:pointer;animation:pulse var(--t-pulse) ease-in-out infinite}.btn-next:active{transform:translateY(3px);box-shadow:0 2px 0 var(--btn-next-sh)}.btn-next svg{width:30px;height:30px;margin-left:4px}.btn-replay{width:56px;height:56px;padding:0;border:3px solid var(--ink);border-radius:50%;background:var(--ui-bg);box-shadow:0 4px 0 var(--ui-shadow);display:flex;align-items:center;justify-content:center;cursor:pointer}.btn-replay:active{transform:translateY(2px);box-shadow:0 2px 0 var(--ui-shadow)}.btn-replay svg{width:24px;height:24px}.confetti{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none}.confetti-piece{position:absolute;top:-16px;width:9px;height:13px;opacity:.95;animation-name:confettiFall;animation-timing-function:linear;animation-fill-mode:forwards}@keyframes tickPulse{0%{transform:scale(1)}40%{transform:scale(1.12)}to{transform:scale(1)}}@keyframes digitFallOut{0%{transform:translateY(0) rotate(0);opacity:1}to{transform:translateY(120%) rotate(14deg);opacity:0}}@keyframes digitDropIn{0%{transform:translateY(-120%)}to{transform:translateY(0)}}@keyframes revealIconsOut{0%,40%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.4)}}@keyframes revealDigitsIn{0%,45%{opacity:0;transform:scale(.3)}to{opacity:1;transform:scale(1)}}@keyframes starPop{0%{opacity:0;transform:scale(0) rotate(-35deg)}to{opacity:1;transform:scale(1) rotate(0)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}@keyframes confettiFall{0%{transform:translateY(0) rotate(0);opacity:1}to{transform:translateY(115vh) rotate(360deg);opacity:0}}
