:root{--outline:#111;--grass:#5ec43a;--grass-dark:#4aa82c;--water:#2d8cf0;--path:#e8c27a;--panel:#ff9a1f;--lolo:#ff8fbf;--lolo-dark:#ff4f8b;--cap:#ffd23f;--sky:#7fd3ff;--brick:#c0503a;--book:#6b3fd1;--paper:#fffaf0;--tap-min:64px;--block-min:80px;--font-read:"Andika", "Comic Sans MS", sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--sky);color:var(--outline);font-family:var(--font-read);touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}svg.game{display:block}button{font:inherit;color:inherit;cursor:pointer}.music-btn{z-index:6;width:var(--tap-min);height:var(--tap-min);background:#ffffffd9;border:3px solid #111;border-radius:14px;place-items:center;display:grid;position:absolute;top:12px;box-shadow:0 4px #111}.music-btn-map{right:88px}.music-btn-level{right:12px}.bush,.palm{animation:.5s steps(2,end) infinite bop}@keyframes bop{0%{transform:scaleY(1)}50%{transform:scaleY(.85)scaleX(1.1)}}.smoke{animation:1.6s ease-out infinite smoke}@keyframes smoke{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-6px)}}.flame{animation:.3s steps(2,end) infinite flame}@keyframes flame{50%{opacity:.6}}.hop{animation:.3s steps(2,end) infinite hop}@keyframes hop{50%{transform:translateY(-2px)}}.wave{animation:.6s steps(2,end) infinite wave}@keyframes wave{50%{transform:rotate(-25deg)}}.lolo-step{animation:.25s steps(2,end) infinite step}.lolo-step-b{animation-delay:.125s}@keyframes step{50%{transform:translateY(-2px)}}.gills{transform-origin:32px 24px;animation:.4s steps(2,end) infinite gills}@keyframes gills{50%{transform:scaleX(1.06)}}.panel-glow{animation:.8s ease-in-out infinite alternate glow}@keyframes glow{0%{opacity:.25}to{opacity:.9}}.zzz{animation:1.2s ease-in-out infinite zzz}@keyframes zzz{50%{opacity:.6;transform:translateY(-3px)}}@keyframes prop{0%{transform:scaleX(1)}50%{transform:scaleX(.2)}to{transform:scaleX(1)}}.prop-spin{animation:.18s linear infinite prop}.letter-token{animation:1.2s ease-in-out infinite alternate float}@keyframes float{to{transform:translateY(-3px)}}@keyframes dizzy{to{transform:rotate(360deg)}}.dizzy-stars{animation:1.2s linear infinite dizzy}.boss{animation:.9s ease-in-out infinite alternate boss-bob}@keyframes boss-bob{to{transform:translateY(-3px)}}.tentacle-0{animation:.5s steps(2,end) infinite wiggle}@keyframes wiggle{50%{transform:translate(1px)}}.ball-glow{animation:.6s ease-in-out infinite alternate glow}@media (prefers-reduced-motion:reduce){.dizzy-stars,.boss,.tentacle-0,.ball-glow,.prop-spin,.letter-token,.bush,.palm,.smoke,.flame,.hop,.wave,.lolo-step,.gills,.panel-glow,.zzz{animation:none}}.map-screen{background:#111;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative}.map-svg{width:100%;height:100%;max-height:100dvh}.map-node{cursor:pointer}.map-node.locked{cursor:default}.map-btn{min-width:var(--tap-min);min-height:var(--tap-min);background:#ffffffd9;border:3px solid #111;border-radius:14px;place-items:center;padding:6px;display:grid;position:absolute;box-shadow:0 4px #111}.map-btn:active{transform:translateY(3px);box-shadow:0 1px #111}.map-prev{top:50%;left:12px;transform:translateY(-50%)}.map-next{top:50%;right:12px;transform:translateY(-50%)}.map-album{top:12px;right:12px}.level-screen{background:#111;flex-direction:column;width:100%;height:100%;display:flex;position:relative;overflow:hidden}.level-stage{flex:1;justify-content:center;align-items:center;min-height:0;display:flex;position:relative}.level-svg{width:100%;height:100%;overflow:hidden}.level-exit{min-width:var(--tap-min);min-height:var(--tap-min);background:#ffffffd9;border:3px solid #111;border-radius:14px;place-items:center;display:grid;position:absolute;top:10px;left:10px;box-shadow:0 4px #111}.controls{padding:12px 16px calc(12px + env(safe-area-inset-bottom));touch-action:none;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.controls[hidden]{display:none}.controls-move{gap:14px;display:flex}.ctl{touch-action:none;background:#ff8fbf;border:4px solid #111;border-radius:50%;width:76px;height:76px;padding:10px;box-shadow:0 5px #111}.ctl:active{transform:translateY(4px);box-shadow:0 1px #111}.ctl-jump{background:#ffd23f;width:88px;height:88px}@media (orientation:landscape){.controls{pointer-events:none;position:absolute;bottom:0;left:0;right:0}.controls .ctl{pointer-events:auto;opacity:.92}}.challenge-overlay{z-index:5;background:#0006;justify-content:center;align-items:flex-end;display:flex;position:absolute;inset:0}.creature-awake{transition:transform .6s ease-out}.intro-sign{cursor:pointer}.pop-fx{pointer-events:none}.pop-star>*{animation:.7s ease-out forwards pop-rise}.pop-debris .debris{animation:.6s ease-in forwards debris-fly}.pop-debris .debris-0{--dx:-14px}.pop-debris .debris-1{--dx:14px}.pop-debris .debris-2{--dx:-10px}.pop-debris .debris-3{--dx:10px}@keyframes pop-rise{0%{opacity:1;transform:translateY(0)scale(.6)}to{opacity:0;transform:translateY(-30px)scale(1.2)}}@keyframes debris-fly{0%{opacity:1;transform:translate(0)}to{transform:translate(var(--dx), 40px) rotate(90deg);opacity:0}}@media (prefers-reduced-motion:reduce){.pop-star>*,.pop-debris .debris{opacity:0;animation:none}}.boss-speaker{width:var(--tap-min);height:var(--tap-min);background:#8fd8ff;border:3px solid #111;border-radius:50%;place-items:center;display:grid;position:absolute;top:10px;left:50%;transform:translate(-50%);box-shadow:0 4px #111}.lolo-blink{animation:.8s steps(2,end) infinite blink}@keyframes blink{50%{opacity:.35}}@media (prefers-reduced-motion:reduce){.lolo-blink{opacity:.7;animation:none}}.plank-fly>*{animation:.55s cubic-bezier(.3,1.4,.6,1) both plank-fly;animation-delay:inherit}@keyframes plank-fly{0%{transform:translate(var(--from-x), var(--from-y)) rotate(-20deg)}to{transform:translate(0)rotate(0)}}@media (prefers-reduced-motion:reduce){.plank-fly>*{animation:none}}.celebration{pointer-events:none;z-index:4;position:absolute;inset:0}.confetti i{border:2px solid #111;border-radius:2px;width:10px;height:14px;animation:1.8s ease-in forwards confetti-fall;position:absolute;top:-12px}@keyframes confetti-fall{to{transform:translateY(110vh)rotate(540deg)}}.star-counter{font-family:var(--font-read);background:#fffaf0;border:4px solid #111;border-radius:18px;align-items:center;gap:8px;padding:6px 18px;font-size:40px;font-weight:700;animation:.35s ease-out pop;display:flex;position:absolute;top:18px;left:50%;transform:translate(-50%);box-shadow:0 5px #111}@media (prefers-reduced-motion:reduce){.confetti i{animation:none;display:none}}.bubble-rise{transform-box:fill-box;animation:3.2s ease-in infinite bubble-rise}@keyframes bubble-rise{0%{opacity:0;transform:translateY(0)}15%{opacity:1}to{opacity:0;transform:translateY(-120px)}}.seaweed{transform-box:fill-box;transform-origin:50% 100%;animation:3.6s ease-in-out infinite alternate seaweed-sway}@keyframes seaweed-sway{0%{transform:rotate(-4deg)}to{transform:rotate(4deg)}}.jelly{transform-box:fill-box;transform-origin:50% 30%;animation:1.4s ease-in-out infinite jelly-pulse}@keyframes jelly-pulse{50%{transform:scale(1.06,.94)}}@media (prefers-reduced-motion:reduce){.bubble-rise,.seaweed,.jelly{animation:none}}.raindrop{animation:.7s linear infinite rain-fall}@keyframes rain-fall{0%{transform:translate(0)}to{transform:translate(-14px,230px)}}.wind-streak{animation:.8s linear infinite wind-blow}@keyframes wind-blow{0%{opacity:0;transform:translate(-30px)}30%{opacity:1}to{opacity:0;transform:translate(60px)}}.current-flow{animation:1.2s linear infinite current-flow}@keyframes current-flow{to{stroke-dashoffset:-40px}}.windmill-blades{transform-box:fill-box;transform-origin:50%;animation:3s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.firefly{animation:2.4s ease-in-out infinite alternate firefly}@keyframes firefly{0%{opacity:.3;transform:translateY(0)}to{opacity:1;transform:translateY(-8px)}}@media (prefers-reduced-motion:reduce){.raindrop,.wind-streak,.current-flow,.windmill-blades,.firefly{animation:none}}.challenge-card{background:var(--paper);border:4px solid #111;border-radius:24px;flex-direction:column;align-items:center;gap:16px;width:min(100%,720px);margin:0 12px 12px;padding:72px 16px 20px;display:flex;position:relative;box-shadow:0 6px #111}.speaker-btn{width:var(--tap-min);height:var(--tap-min);background:#8fd8ff;border:3px solid #111;border-radius:50%;place-items:center;display:grid;position:absolute;top:10px;left:10px;box-shadow:0 4px #111}.sign-board{font-family:var(--font-read);letter-spacing:.04em;background:#fff;border:4px solid #111;border-radius:14px;padding:4px 28px;font-size:clamp(40px,9vw,64px);font-weight:700}.options{flex-wrap:wrap;justify-content:center;gap:16px;display:flex}.option-block{min-width:var(--block-min);min-height:var(--block-min);font-family:var(--font-read);touch-action:none;background:#ffb000;border:4px solid #111;border-radius:14px;place-items:center;padding:6px 14px;font-size:44px;font-weight:700;transition:opacity .2s;display:grid;box-shadow:0 5px #111}.option-picture{background:#fff;padding:4px}.option-block:active{transform:translateY(3px);box-shadow:0 2px #111}.option-block.is-off{opacity:.3}.option-block[data-revealed=true]{animation:.7s ease-in-out infinite alternate glow-block}.option-block.is-correct{background:#7ad94f;animation:.35s ease-out pop}.option-block.is-shaking{animation:.4s ease-in-out shake}.slots{gap:10px;display:flex}.slot{min-width:var(--block-min);height:64px;font-family:var(--font-read);background:#fff8;border:4px dashed #111;border-radius:12px;place-items:center;padding:0 12px;font-size:40px;font-weight:700;display:grid}.slot.is-filled{background:#ffb000;border-style:solid}@keyframes glow-block{0%{box-shadow:0 5px #111,0 0 #fff27a}to{box-shadow:0 5px #111,0 0 0 10px #fff27a}}@keyframes pop{50%{transform:scale(1.15)}}@keyframes shake{25%{transform:translate(-8px)}75%{transform:translate(8px)}}@media (prefers-reduced-motion:reduce){.option-block[data-revealed=true],.option-block.is-correct,.option-block.is-shaking{animation:none}.option-block[data-revealed=true]{outline:6px solid #fff27a}}@media (orientation:landscape) and (height<=500px){.challenge-card{flex-flow:wrap;justify-content:center;padding-top:16px;padding-left:88px}.option-block{min-width:72px;min-height:72px;font-size:36px}}.prompt-picture{background:#fff;border:4px solid #111;border-radius:16px;padding:4px;box-shadow:0 4px #111}.drum-btn{touch-action:manipulation;background:0 0;border:none;padding:0}.drum-svg{animation:.18s ease-out drum-hit}@keyframes drum-hit{40%{transform:scale(.92,.86)}}.drum-count{min-height:28px;font-family:var(--font-read);align-items:center;gap:8px;font-size:28px;font-weight:700;display:flex}.drum-count-n{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.drum-dot{background:#ffd23f;border:3px solid #111;border-radius:50%;width:22px;height:22px}@media (prefers-reduced-motion:reduce){.drum-svg{animation:none}}.screen-fill{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:20px;padding:16px;display:flex;position:absolute;inset:0}.overlay-dim{z-index:10;background:#0008}.big-card{background:var(--paper);border:4px solid #111;border-radius:24px;flex-direction:column;align-items:center;gap:16px;width:min(100%,560px);padding:24px 16px;display:flex;box-shadow:0 6px #111}.round-btn{background:0 0;border:none;place-items:center;width:96px;height:96px;padding:0;display:grid}.round-btn:active{transform:translateY(3px)}.btn-row{gap:28px;display:flex}.title-screen{background:linear-gradient(#8fd8ff,#c9f0ff 60%,#5ec43a 60%)}.title-logo{font-family:var(--font-read);color:#ff4f8b;-webkit-text-stroke:3px #111;paint-order:stroke fill;margin:0;font-size:clamp(48px,13vw,96px);font-weight:700;line-height:1}.album-grid{grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:12px;width:min(100%,720px);display:grid}.album-slot{aspect-ratio:1;background:#fff6;border:3px dashed #1115;border-radius:14px;place-items:center;display:grid}.album-slot.owned{background:#fff;border:3px solid #111;transform:rotate(-2deg);box-shadow:0 4px #111}.album-slot.owned:nth-child(2n){transform:rotate(2deg)}.album-screen{background:#6b3fd1;justify-content:flex-start;overflow-y:auto}.back-btn{min-width:var(--tap-min);min-height:var(--tap-min);background:#ffffffd9;border:3px solid #111;border-radius:14px;place-items:center;display:grid;position:absolute;top:12px;left:12px;box-shadow:0 4px #111}.hut-screen{background:#fff1d0}.award-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:16px;display:flex}.world-menu-screen{background:linear-gradient(#8fd8ff,#c9f0ff 55%,#5ec43a 55%);gap:18px}.world-menu-title{font-family:var(--font-read);color:#111;margin:0;font-size:clamp(28px,6vw,44px)}.world-menu{flex-wrap:wrap;justify-content:center;gap:20px;display:flex}.world-card{min-width:160px;font-family:var(--font-read);color:#111;cursor:pointer;background:#fff;border:3px solid #111;border-radius:16px;justify-items:center;gap:2px;padding:10px 14px 12px;display:grid;box-shadow:0 4px #111}.world-card:active{transform:translateY(3px);box-shadow:0 1px #111}.world-card:disabled{opacity:.5}.world-card svg{width:128px;height:75px}.world-card-name{font-size:20px;font-weight:700}.world-card-sample{letter-spacing:1px;font-size:24px}.world-card-teaches{color:#555;font-size:13px}.world-mar{background:#e6f8ff}.world-tierra{background:#f0ffe6}@media (height<=480px){.world-menu-screen{gap:10px}.world-card{min-width:116px;padding:4px 10px 6px}.world-card-teaches{display:none}.world-card svg{width:88px;height:52px}}
