:root{--ink:#4a2f27;--paper:#fff8ee;color:var(--ink);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:"Baloo 2",Comic Sans MS,Chalkboard SE,Segoe Print,Segoe UI,system-ui,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{-webkit-tap-highlight-color:transparent;background:#bfe8ff;margin:0;overflow:hidden}button{font-family:inherit}.stage{-webkit-user-select:none;user-select:none;touch-action:manipulation;cursor:pointer;background:linear-gradient(#a8e0ff 0%,#d7f2ff 30%,#fff6c9 62%,#ffd9ec 100%);flex-direction:column;height:100svh;display:flex;position:relative;overflow:hidden}.stage:before,.stage:after{content:"";pointer-events:none;border-radius:50%;position:absolute}.stage:before{background:radial-gradient(circle,#fffffff2,#fff0 70%);width:52vmin;height:52vmin;animation:14s ease-in-out infinite alternate drift;top:-14vmin;left:-10vmin}.stage:after{background:radial-gradient(circle,#fffc,#fff0 70%);width:46vmin;height:46vmin;animation:17s ease-in-out infinite alternate-reverse drift;bottom:-12vmin;right:-10vmin}@keyframes drift{to{transform:translate(7vmin,5vmin)scale(1.12)}}.topbar{z-index:3;justify-content:space-between;align-items:center;padding:clamp(12px,2.5vmin,24px) clamp(16px,3vmin,32px);display:flex;position:relative}.logo{color:#4a2f27;text-shadow:0 2px #ffffffbf;margin:0;font-size:clamp(22px,3.8vmin,34px)}.sound-toggle{cursor:pointer;background:#fff8ee;border:3px solid #4a2f27;border-radius:50%;width:2em;height:2em;font-size:clamp(18px,2.8vmin,26px);line-height:1;transition:transform .15s;box-shadow:0 4px #4a2f2747}.sound-toggle:hover{transform:scale(1.08)}.sound-toggle:active{transform:translateY(2px)scale(.98)}.sound-toggle:focus-visible{outline-offset:3px;outline:3px dashed #4a2f27}.playground{z-index:2;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:clamp(10px,2vmin,22px);padding-bottom:7vmin;display:flex;position:relative}.speech{text-align:center;background:#fff8ee;border:3px solid #4a2f27;border-radius:24px;min-width:5.5em;margin:0;padding:.35em 1.1em .45em;font-size:clamp(22px,4.2vmin,40px);font-weight:700;animation:.45s cubic-bezier(.2,2.2,.5,1) both speech-pop;position:relative;box-shadow:0 6px #4a2f272e}.speech:after{content:"";background:#fff8ee;border-bottom:3px solid #4a2f27;border-right:3px solid #4a2f27;width:18px;height:18px;position:absolute;bottom:-13px;left:50%;transform:translate(-50%)rotate(45deg)}@keyframes speech-pop{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}.hand-idle{filter:drop-shadow(0 14px #e88b4b2e);animation:3.4s ease-in-out infinite hand-bob}@keyframes hand-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}.tinyhand{width:clamp(200px,34vmin,320px);height:auto;display:block}.tinyhand-body rect{fill:#ffc48c;stroke:#e88b4b;stroke-width:4px;stroke-linejoin:round}.tinyhand-face .eye{fill:#4a2f27}.tinyhand-face .eye-glint{fill:#fff;opacity:.9}.tinyhand-face .mouth{fill:none;stroke:#4a2f27;stroke-width:7px;stroke-linecap:round}.tinyhand-face .blush{fill:#ff9a9a;opacity:.55}.hand-react{transform-origin:50% 82%}.hand-react.wave{animation:1s ease-in-out hand-wave}.hand-react.jump{animation:.95s cubic-bezier(.3,.8,.4,1) hand-jump}.hand-react.spin{animation:.9s ease-in-out hand-spin}.hand-react.wiggle{animation:.8s ease-in-out hand-wiggle}.hand-react.pop{animation:.6s cubic-bezier(.2,2.5,.4,1) hand-pop}@keyframes hand-wave{0%,to{transform:rotate(0)}15%{transform:rotate(-16deg)}35%{transform:rotate(12deg)}55%{transform:rotate(-16deg)}75%{transform:rotate(8deg)}}@keyframes hand-jump{0%{transform:translateY(0)scale(1)}12%{transform:translateY(0)scale(1.12,.86)}40%{transform:translateY(-56px)scale(.94,1.1)}62%{transform:translateY(0)scale(1.1,.86)}78%{transform:translateY(-10px)scale(.98,1.03)}to{transform:translateY(0)scale(1)}}@keyframes hand-spin{0%{transform:rotate(0)scale(1)}50%{transform:rotate(180deg)scale(1.12)}to{transform:rotate(360deg)scale(1)}}@keyframes hand-wiggle{0%,to{transform:rotate(0)}20%{transform:rotate(-10deg)}40%{transform:rotate(10deg)}60%{transform:rotate(-8deg)}80%{transform:rotate(8deg)}}@keyframes hand-pop{0%{transform:scale(1)}40%{transform:scale(1.28)rotate(4deg)}70%{transform:scale(.94)rotate(-2deg)}to{transform:scale(1)}}.hint{color:#7a5c50;text-align:center;margin:0;font-size:clamp(16px,2.6vmin,24px);font-weight:700;animation:1.8s ease-in-out infinite hint-pulse}@keyframes hint-pulse{0%,to{opacity:.85;transform:scale(1)}50%{opacity:1;transform:scale(1.06)}}.bubbles{pointer-events:none;z-index:4;position:absolute;inset:0;overflow:hidden}.bubble-rise{will-change:transform, opacity;animation-name:bubble-rise;animation-timing-function:linear;animation-fill-mode:forwards;position:absolute;bottom:-22vmin}@keyframes bubble-rise{0%{opacity:0;transform:translateY(0)scale(.5)}8%{opacity:1}14%{transform:translateY(-14vmin)scale(1)}88%{opacity:1}to{opacity:0;transform:translateY(-135vmin)scale(1.05)}}.bubble{aspect-ratio:1;background:radial-gradient(circle at 32% 28%, #fffffff2, hsl(var(--hue), 95%, 80%) 58%);border:4px solid hsl(var(--hue), 70%, 58%);border-radius:50%;justify-content:center;align-items:center;width:clamp(64px,11vmin,110px);animation:2.4s ease-in-out infinite alternate bubble-sway;display:flex;box-shadow:inset -6px -10px #ffffff59,0 8px #4a2f271f}@keyframes bubble-sway{0%{transform:rotate(-6deg)translate(-8px)}to{transform:rotate(6deg)translate(8px)}}.bubble-char{color:#4a2f27;text-shadow:0 2px #fffc;font-size:clamp(30px,5.4vmin,52px);font-weight:800;line-height:1}.sparkles{pointer-events:none;z-index:5;position:absolute;inset:0}.sparkle{will-change:transform, opacity;font-size:clamp(20px,3vmin,30px);animation:.95s ease-out forwards sparkle-fly;position:absolute;top:52%;left:50%}@keyframes sparkle-fly{0%{opacity:1;transform:translate(-50%,-50%)scale(.3)rotate(0)}to{transform:translate(calc(-50% + var(--dx)), calc(-50% + var(--dy))) scale(1.15) rotate(var(--rot));opacity:0}}@media (prefers-reduced-motion:reduce){.hand-idle,.hint,.stage:before,.stage:after,.bubble{animation:none}}
