: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}.bush{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,.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}.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}}.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}
