:root{--cream: #fff8ea;--ink: #3b2a1a;--ink-soft: #6b5640;--accent: #ff9a1f;--accent-dark: #c96a00;--red: #d7263d;--panel: rgba(255, 248, 234, .94);--shadow: 0 6px 0 rgba(59, 42, 26, .25), 0 12px 30px rgba(0, 0, 0, .2)}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#fde9c9;font-family:Fredoka,system-ui,sans-serif;color:var(--ink);user-select:none;-webkit-user-select:none}#game,#game canvas{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block}#game canvas{cursor:grab;touch-action:none}body{touch-action:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}#game canvas:active{cursor:grabbing}.hidden{display:none!important}button{font:inherit;font-weight:600;font-size:20px;color:var(--ink);background:var(--cream);border:3px solid var(--ink);border-radius:14px;padding:10px 26px;box-shadow:0 4px 0 var(--ink);cursor:pointer;transition:transform .08s,box-shadow .08s,background .15s}button:hover,button:focus-visible,body.pad button:focus{background:#ffe2b0;outline:none}button:active{transform:translateY(3px);box-shadow:0 1px 0 var(--ink)}body.pad button:not(.link):focus{background:#ffd34d;transform:translateY(-2px) scale(1.06);box-shadow:0 6px 0 var(--ink)}#hud{position:fixed;top:16px;right:16px;bottom:16px;left:16px;pointer-events:none}.inv{display:inline-flex;align-items:stretch;flex-wrap:wrap;max-width:calc(100vw - 230px);background:var(--panel);border:3px solid var(--ink);border-radius:16px;box-shadow:0 3px 0 var(--ink)}.item{display:flex;align-items:center;gap:6px;padding:5px 14px;font-size:21px;white-space:nowrap}.item+.item{border-left:2px dashed rgba(59,42,26,.25)}.item b{font-weight:700}.item small{color:var(--ink-soft);font-size:15px}.item.gear{background:#ffd43b47}.item.gear:first-of-type,.item:not(.gear)+.item.gear{border-left:3px solid var(--ink)}.item.bump{animation:bump .35s}@keyframes bump{40%{transform:scale(1.18)}}.gem-icon{width:20px;height:24px;display:inline-block;flex:none;background:linear-gradient(135deg,#a5ffd9,#14e89a 50%,#0a8f5c);clip-path:polygon(50% 0,100% 40%,50% 100%,0 40%)}#hearts{position:absolute;left:0;top:150px;display:flex;flex-direction:column;gap:6px;filter:drop-shadow(0 3px 0 rgba(59,42,26,.45))}#hearts.bump{animation:bump .35s}.heart,.heart i{width:48px;height:44px;display:block;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 22'%3E%3Cpath d='M12 20.5S3.5 15.4 1.6 10.2C.3 6.6 2.4 2.6 6 2.3c2.4-.2 4.2 1.1 6 3.3 1.8-2.2 3.6-3.5 6-3.3 3.6.3 5.7 4.3 4.4 7.9C20.5 15.4 12 20.5 12 20.5z' fill='%23e63946' stroke='%233b2a1a' stroke-width='1.6' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat}.heart{position:relative;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 22'%3E%3Cpath d='M12 20.5S3.5 15.4 1.6 10.2C.3 6.6 2.4 2.6 6 2.3c2.4-.2 4.2 1.1 6 3.3 1.8-2.2 3.6-3.5 6-3.3 3.6.3 5.7 4.3 4.4 7.9C20.5 15.4 12 20.5 12 20.5z' fill='%23f3e6d6' fill-opacity='0.75' stroke='%233b2a1a' stroke-width='1.6' stroke-linejoin='round'/%3E%3C/svg%3E")}.heart i{position:absolute;top:0;right:0;bottom:0;left:0;clip-path:inset(calc(100% - var(--fill, 100%)) 0 0 0)}.acorn-icon{width:20px;height:24px;display:inline-block;position:relative;background:#b8742f;border-radius:45% 45% 50% 50%/30% 30% 70% 70%;margin-top:4px}.acorn-icon:before{content:"";position:absolute;left:-2px;right:-2px;top:-4px;height:10px;background:#6b4423;border-radius:10px 10px 4px 4px}.objective{margin-top:10px;display:flex;width:fit-content;align-items:center;gap:8px;background:var(--panel);border:3px solid var(--ink);border-radius:12px;padding:6px 12px;font-size:17px;max-width:min(460px,calc(100vw - 32px));box-shadow:0 3px 0 var(--ink)}.objective .label{background:var(--accent);color:#fff;font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:.06em;border-radius:6px;padding:2px 6px}.objective.flash{animation:bump .5s}.level-name{position:absolute;top:0;right:0;font-size:18px;font-weight:600;color:#fff;text-shadow:0 2px 0 rgba(59,42,26,.6)}#minimap{position:absolute;top:32px;right:0;width:172px;height:172px;border-radius:50%;box-shadow:0 3px 0 var(--ink)}#prompt{position:fixed;left:50%;bottom:40px;transform:translate(-50%);background:var(--panel);border:3px solid var(--ink);border-radius:999px;padding:6px 18px 6px 8px;font-size:20px;display:flex;gap:10px;align-items:center;box-shadow:0 3px 0 var(--ink);pointer-events:none}kbd{display:inline-grid;place-items:center;min-width:30px;height:30px;padding:0 6px;background:var(--ink);color:var(--cream);border-radius:8px;font:inherit;font-weight:700;font-size:16px}#log{position:fixed;z-index:6;left:16px;bottom:16px;width:min(440px,calc(100vw - 32px));display:flex;flex-direction:column;gap:2px;pointer-events:none;transition:bottom .25s}#log:not(:empty){background:#261b106b;border-radius:12px;padding:6px 10px}body.talking #log,body.rolling #log{opacity:0}.line{color:#fff8ea;font-size:17px;font-weight:500;line-height:1.35;text-shadow:0 1px 2px rgba(0,0,0,.6);animation:line-in .25s ease-out;transition:opacity .3s}.line:not(:last-child){opacity:.72}.line.temp{animation:line-in .25s ease-out,line-out .8s ease-in forwards;animation-delay:0s,var(--life, 3s)}.line small{font-size:15px;font-weight:400;color:#f3dfbf;margin-left:6px}.line small:before{content:"· "}.line.big{color:#ffd43b;font-weight:600}.inline-icon{height:1.3em;width:auto;vertical-align:-.3em}@keyframes line-in{0%{transform:translate(-12px);opacity:0}}@keyframes line-out{to{opacity:0}}#banner{position:fixed;z-index:5;left:0;right:0;top:22%;text-align:center;pointer-events:none;color:#fff8ea;text-shadow:0 3px 0 rgba(59,42,26,.7);animation:banner 3.4s ease-in-out forwards}#banner b{display:block;font-size:clamp(40px,7vw,72px);color:#ffd43b;-webkit-text-stroke:3px var(--ink);paint-order:stroke fill}#banner span{font-size:20px;letter-spacing:.14em;text-transform:uppercase;font-weight:600}@keyframes banner{0%{opacity:0;transform:translateY(14px)}15%,75%{opacity:1;transform:none}to{opacity:0}}#got{position:fixed;z-index:6;left:50%;top:30%;transform:translate(-50%,-50%);pointer-events:none;width:min(460px,calc(100vw - 32px));text-align:center;opacity:0;background:var(--panel);border:4px solid var(--ink);border-radius:22px;box-shadow:var(--shadow);padding:18px 22px 16px;font-size:24px;font-weight:700;line-height:1.3}#got.show{animation:got 3.2s ease-in-out forwards}#got i{display:block;font-style:normal;font-size:64px;line-height:1.1}#got i:empty{display:none}#got i img{width:72px;height:72px;margin:0;vertical-align:middle}#got p{margin:4px 0 0}#got small{display:block;font-size:17px;font-weight:500;margin-top:6px;opacity:.8}@keyframes got{0%{opacity:0;transform:translate(-50%,-50%) scale(.6)}10%{opacity:1;transform:translate(-50%,-50%) scale(1.06)}16%,80%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-50%) scale(1)}}body.story #got{display:none}#fight{position:fixed;z-index:5;top:16px;left:50%;transform:translate(-50%);width:min(900px,calc(100vw - 32px));display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:12px;pointer-events:none}#fight .name{display:block;font-size:24px;font-weight:700;color:#ffd43b;letter-spacing:.06em;line-height:1.1;margin:0 4px 4px;-webkit-text-stroke:2px var(--ink);paint-order:stroke fill;text-shadow:0 2px 0 rgba(59,42,26,.6)}#fight .foe .name{text-align:right}#fight .bar{position:relative;height:26px;overflow:hidden;background:#5a3a2a;border:3px solid var(--ink);border-radius:12px;box-shadow:0 3px 0 var(--ink)}#fight .bar i{position:absolute;top:0;right:0;bottom:0;left:0;transform:scaleX(var(--hp, 1));transform-origin:left}#fight .foe .bar i{transform-origin:right}#fight .fill{background:linear-gradient(#ffe36a,#f5b21f);transition:transform .12s}#fight .foe .fill{background:linear-gradient(#9be08e,#4fae5c)}#fight .lag{background:#ff7a6a;transition:transform .6s .35s}#fight .low .fill{animation:low .6s ease-in-out infinite alternate}@keyframes low{to{filter:brightness(1.35)}}#fight .vs{font-size:30px;font-weight:700;color:#fff8ea;-webkit-text-stroke:2px var(--ink);paint-order:stroke fill;padding-bottom:0}#fight .tip{grid-column:1 / -1;justify-self:center;text-align:center;margin-top:4px;color:#fff8ea;font-size:15px;text-shadow:0 1px 2px rgba(0,0,0,.7);background:#261b106b;border-radius:10px;padding:4px 10px;animation:line-out .8s ease-in 9s forwards}#fight .tip p{margin:0}.shield-ctl,.fight-ctl{display:none}body.has-shield .shield-ctl{display:inline}body.fighting #pause .controls{display:none}body:not(.pad):not(.touch).fighting #pause .fight-ctl.key-ctl,body.pad.fighting #pause .fight-ctl.pad-ctl,body.touch.fighting #pause .fight-ctl.touch-ctl{display:block}#banner.call{top:26%;animation-duration:1.5s}#banner.call b{font-size:clamp(56px,10vw,104px)}body.fighting #banner span{text-transform:none;letter-spacing:.04em;font-size:22px}#dialogue{position:fixed;left:50%;bottom:24px;transform:translate(-50%);width:min(760px,calc(100vw - 32px));min-height:130px;background:var(--panel);border:4px solid var(--ink);border-radius:22px;padding:26px 26px 20px;box-shadow:var(--shadow);font-size:21px;line-height:1.4}#dialogue .name{position:absolute;top:-20px;left:22px;background:var(--accent);color:#fff;border:3px solid var(--ink);border-radius:12px;padding:2px 14px;font-weight:700;font-size:19px}#dialogue .name:empty{display:none}#dialogue.hero .name{left:auto;right:22px;background:#4a8fe0}#dialogue[data-who=mallie] .name{background:#ec6fa8}#dialogue[data-who=milbert] .name{background:#e0453a}#dialogue[data-who=cindy] .name{background:#3fa45b}#dialogue .more{position:absolute;right:20px;bottom:10px;animation:nudge .8s infinite;color:var(--accent-dark)}#dialogue .more .cont{display:none}body.story #dialogue{top:50%;bottom:auto;transform:translate(-50%,-50%);width:min(640px,calc(100vw - 32px));min-height:0;text-align:center;font-size:25px;line-height:1.45;padding:32px 32px 18px;z-index:7}body.story:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:6;background:#140e0880;animation:picture-in .35s ease-out}body.story #dialogue .more{position:static;margin-top:16px;font-size:16px;color:var(--ink-soft);animation:none}body.story #dialogue .more .arrow{display:none}body.story #dialogue .more .cont{display:inline;animation:cont-pulse 1.6s ease-in-out infinite}@keyframes cont-pulse{50%{opacity:.45}}body.story #banner{display:none}body.story #dialogue.card-in{animation:card-in .4s ease-out}@keyframes card-in{0%{opacity:0;transform:translate(-50%,calc(-50% + 12px))}}#picture{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:start center;padding:24px 16px 0;background:radial-gradient(ellipse at 50% 40%,#281c12e0,#0c0804f5);animation:picture-in .35s ease-out}#picture img{box-sizing:content-box;height:min(calc(100vh - 316px),calc(92vw - 104px));width:auto;object-fit:contain;image-rendering:pixelated;padding:16px;background:#efe6cf;border:22px solid #b3862e;border-image:linear-gradient(135deg,#f6dc84,#c39434 22%,#e8c35a 45%,#9a6f22 70%,#d6aa45 88%,#8a6220) 1;box-shadow:inset 0 0 0 3px #e3bb55,inset 0 0 0 5px #7a5a1c,inset 0 3px 10px 5px #3c280a40,0 0 0 3px #6e4f1a,0 0 0 6px #e3bb55,0 0 0 8px #5a3f14,0 18px 40px #0009}@keyframes picture-in{0%{opacity:0;transform:scale(.97)}}@keyframes nudge{50%{transform:translateY(4px)}}#dialogue .choices{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:6px}#dialogue .choices li{padding:4px 12px;border-radius:10px;cursor:pointer;border:2px solid transparent}#dialogue .choices li:before{content:attr(data-n) ". ";color:var(--ink-soft)}#dialogue .choices li.sel{background:#ffe2b0;border-color:var(--ink)}.screen{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:16px}#title{background:radial-gradient(ellipse at center,#fff8ea1a,#3b2a1a59);align-content:center}.title-card{text-align:center}.logo{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;margin:0 0 40px;font-size:clamp(56px,13vw,128px);font-weight:700;letter-spacing:.02em;line-height:1}.logo span{display:inline-block;color:#ffd43b;-webkit-text-stroke:4px var(--ink);paint-order:stroke fill;text-shadow:0 8px 0 var(--ink);animation:wobble 2.4s ease-in-out infinite;animation-delay:calc(var(--i) * .12s)}.logo span:nth-child(-n+4){color:#fff8ea}.logo .sp{width:.35em}.logo{display:inline-block;position:relative}.logo .three-d{position:absolute;right:-1.1em;top:-.5em;font-size:.6em;font-weight:800;letter-spacing:.01em;color:#ff5a45;-webkit-text-stroke:3px var(--ink);paint-order:stroke fill;text-shadow:.012em .014em 0 #c42d22,.024em .028em 0 #c42d22,.036em .042em 0 #b02719,.048em .056em 0 #9c2216,.06em .07em 0 #871d13,.072em .084em 0 #731810,.084em .098em 0 var(--ink),.096em .112em 0 var(--ink);transform:perspective(240px) rotateY(-26deg) rotateX(14deg) rotate(10deg);animation:three-d 2.4s ease-in-out infinite}@keyframes three-d{50%{transform:perspective(240px) rotateY(-12deg) rotateX(18deg) rotate(12deg) translateY(-6px)}}@media (max-width: 520px){.logo{font-size:11vw;margin-right:.3em}}@keyframes wobble{50%{transform:translateY(-8px) rotate(-3deg)}}.buttons{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}.shelf{margin:30px auto 0;background:var(--panel);border:3px solid var(--ink);border-radius:16px;padding:10px 16px 12px;display:inline-block;box-shadow:0 3px 0 var(--ink)}.shelf-title{font-weight:600;font-size:15px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.08em}.shelf-row{display:flex;gap:14px;margin-top:8px}.slot{width:64px;text-align:center;font-size:12px;color:var(--ink-soft)}.slot .duck{display:block;width:38px;height:38px;margin:0 auto 2px;filter:grayscale(1) opacity(.25)}.slot.found .duck{filter:none}.controls{margin-top:18px;color:#fff;text-shadow:0 1px 0 rgba(59,42,26,.8);font-size:15px}.copyright{position:fixed;bottom:10px;left:0;right:0;text-align:center;font-size:13px;color:#ffffffd9;text-shadow:0 1px 0 rgba(0,0,0,.4);margin:0}#pause,#ending{background:#3b2a1a73}.panel{background:var(--panel);border:4px solid var(--ink);border-radius:24px;padding:26px 34px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:12px;align-items:center;min-width:280px;text-align:center}.panel.wide{max-width:620px}.panel h2{margin:0 0 6px;font-size:32px}.quack-ctl{display:none}body:not(.pad) .pad-ctl,body.pad .key-ctl,body.touch .key-ctl,body:not(.touch) .touch-ctl,body.touch .no-touch{display:none}.hero-pick{display:flex;gap:12px;justify-content:center;margin:-8px 0 16px}.hero-pick.hidden{display:none}button.hero{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 18px 6px;font-size:16px;opacity:.75}button.hero img{width:52px;height:52px}button.hero.chosen{opacity:1;background:#ffe57a;box-shadow:0 4px 0 var(--ink),0 0 0 3px #fff inset}.title-note{min-height:1.3em;margin:10px 0 -10px;color:#fff;font-weight:700;text-shadow:0 1px 0 rgba(59,42,26,.8)}.confirm-text{color:var(--ink-soft);margin:0 0 12px;max-width:340px}body.can-quack .quack-ctl{display:inline}.panel .controls{color:var(--ink-soft);text-shadow:none;margin:6px 0 0}.eyebrow{margin:0;text-transform:uppercase;letter-spacing:.1em;font-weight:600;color:var(--accent-dark)}.stats{display:flex;gap:12px;flex-wrap:nowrap;justify-content:center;margin:4px 0}@media (max-width: 640px){.stats{flex-wrap:wrap}}.stat{display:grid;grid-template-columns:auto auto;align-items:center;column-gap:10px;text-align:left;background:#fff;border:3px solid var(--ink);border-radius:14px;padding:8px 16px 8px 12px;min-width:132px;box-shadow:0 3px 0 var(--ink);animation:stat-in .4s backwards;animation-delay:calc(var(--i) * .25s + .2s)}@keyframes stat-in{0%{transform:translateY(10px) scale(.9);opacity:0}}.stat .icon{grid-row:span 2;width:36px;height:36px;display:grid;place-items:center}.stat .icon .gem-icon{width:28px;height:34px}.stat .icon img{width:38px;height:38px}.stat .icon img.missing{filter:grayscale(1) opacity(.35)}.stat.picture{grid-template-columns:auto;justify-items:center;row-gap:2px;min-width:0;padding:6px 16px}.stat.picture img{width:52px;height:52px}.stat.picture img.missing{filter:grayscale(1) opacity(.3)}.stat b{font-size:28px;line-height:1;font-variant-numeric:tabular-nums;white-space:nowrap;min-width:4.2ch}.stat span{white-space:nowrap}.stat span{font-size:14px;color:var(--ink-soft)}.stat.done b{color:#0a8f5c}.ahead{margin:8px 0 4px;font-size:22px;line-height:1.4;font-style:italic;color:var(--ink);max-width:480px}.demo{margin:4px 0;font-weight:600}button.primary{font-size:24px;padding:12px 34px;background:#ffd43b}button.primary:hover,button.primary:focus-visible,body.pad button.primary:focus{background:#ffe57a}.links{margin:2px 0 0;display:flex;gap:8px;align-items:center;color:var(--ink-soft);font-size:15px}button.link{font:inherit;font-size:15px;font-weight:500;color:var(--ink-soft);background:none;border:none;box-shadow:none;padding:2px 4px;text-decoration:underline;text-underline-offset:3px;cursor:pointer}button.link:hover,button.link:focus-visible,body.pad button.link:focus{background:none;color:var(--ink)}button.link:active{transform:none;box-shadow:none}.copyright button.link{color:inherit;font-size:13px;padding:0 2px;pointer-events:auto}.copyright button.link:focus-visible,body.pad .copyright button.link:focus{color:#ffe57a}#credits{background:#3b2a1a8c;z-index:20}#progress{background:#3b2a1a8c;z-index:15}.progress-pct{margin:-6px 0 0;font-size:18px;font-weight:700;color:var(--accent-dark)}.progress-levels{display:grid;grid-template-columns:repeat(auto-fill,minmax(165px,1fr));gap:10px;width:min(560px,80vw);max-height:60vh;overflow-y:auto}.progress-level{background:#fff;border:3px solid var(--ink);border-radius:14px;padding:8px 10px;text-align:left;box-shadow:0 3px 0 var(--ink)}.progress-level h3{margin:0 0 4px;font-size:16px}.progress-level.unknown{opacity:.55}.progress-level .row{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--ink-soft)}.progress-level .row b{color:var(--ink)}.progress-level .gem-icon{width:14px;height:17px}.progress-level .duck{width:22px;height:22px;filter:grayscale(1) opacity(.3)}.progress-level .duck.found{filter:none}.progress-level ul{list-style:none;margin:4px 0 0;padding:0;font-size:13px;color:var(--ink-soft)}.progress-level li.done{color:var(--ink)}.progress-level.all{background:#fff4c2}button.progress-level{display:flex;flex-direction:column;justify-content:flex-start;width:100%;font:inherit;font-size:inherit;color:inherit;cursor:pointer}button.progress-level:hover,button.progress-level:focus-visible,body.pad button.progress-level:focus{background:#ffe2b0}body.pad button.progress-level:focus{transform:translateY(-2px) scale(1.03)}.progress-hint{margin:-4px 0 0;font-size:14px;color:var(--ink-soft)}.shelf-pct{margin-top:6px;font-size:13px;font-weight:600;color:var(--ink-soft)}.credits{font-size:16px;color:var(--ink-soft);margin:0;line-height:1.5}#loading{background:radial-gradient(ellipse at center,#fde9c9,#e9c99a);z-index:30;overflow:hidden}.loader{text-align:center;font-size:22px;color:var(--ink);width:100%}.loader p{margin:18px 0 0}.walker{height:130px;border-bottom:4px dashed rgba(122,82,40,.35)}.walker-box{width:130px;height:130px;overflow:hidden;animation:walk-across 3s linear infinite;will-change:transform}.walker-strip{display:block;width:520px;height:130px;image-rendering:pixelated;animation:walk-frames .48s steps(4) infinite;will-change:transform}@keyframes walk-across{0%{transform:translate(-140px)}to{transform:translate(100vw)}}@keyframes walk-frames{0%{transform:translate(0)}to{transform:translate(-520px)}}@media (prefers-reduced-motion: reduce){.walker-box{animation:none;margin:0 auto}}#binoculars{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:3}#binoculars:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#140e08f5;--lens: transparent 0 26vmin, #000 27vmin;mask:radial-gradient(circle at calc(50% - 18vmin) 50%,var(--lens)),radial-gradient(circle at calc(50% + 18vmin) 50%,var(--lens));-webkit-mask-composite:source-in;mask-composite:intersect}#binoculars .cross{position:absolute;left:50%;top:50%;width:26px;height:26px;margin:-13px;border:2px solid rgba(255,248,232,.8);border-radius:50%}#binoculars p{position:absolute;left:0;right:0;bottom:18px;margin:0;text-align:center;color:#fff8e8;font-size:18px}#mapview{position:fixed;z-index:4;left:50%;top:12px;transform:translate(-50%);pointer-events:none;background:#7a5236;border:4px solid var(--ink);border-radius:14px;padding:8px;box-shadow:var(--shadow)}#mapview canvas{display:block;width:min(calc(100vh - 250px),calc(100vw - 48px));height:auto;aspect-ratio:1;border-radius:6px}#debug{position:fixed;z-index:60;right:10px;bottom:10px;font:12px ui-monospace,monospace;background:#0009;color:#9f9;padding:6px 8px;border-radius:6px;white-space:pre;pointer-events:auto;cursor:pointer;user-select:none;-webkit-user-select:none}#debug.small{padding:3px 9px;border-radius:999px}body.touch #debug{bottom:auto;right:auto;top:calc(env(safe-area-inset-top) + 6px);left:50%;transform:translate(-50%);font-size:11px}@media (max-width: 600px),(max-height: 500px){#hearts{top:132px;gap:4px}.heart,.heart i{width:30px;height:28px}}@media (max-width: 600px){.item{font-size:17px;padding:4px 10px}.inv{max-width:calc(100vw - 150px)}#dialogue{font-size:18px;padding:22px 18px 18px}.level-name{display:none}#minimap{top:0;width:116px;height:116px}}.no-webgl{background:var(--panel);border:3px solid var(--ink);border-radius:14px;padding:12px 18px;font-size:18px;max-width:520px;margin:0 auto}#console{position:fixed;top:0;left:0;right:0;z-index:50;background:#0c0e0ce0;color:#b8f5b0;font:14px ui-monospace,Menlo,monospace;padding:8px 12px;border-bottom:2px solid #3a5a36}#console .log{max-height:30vh;overflow-y:auto;white-space:pre-wrap}#console input{width:100%;box-sizing:border-box;margin-top:4px;background:transparent;border:none;outline:none;color:#e8ffe4;font:inherit;caret-color:#b8f5b0}#console{padding-left:calc(env(safe-area-inset-left) + 12px);padding-right:calc(env(safe-area-inset-right) + 12px)}#console .close{display:none;float:right;background:none;border:none;box-shadow:none;color:#b8f5b0;font-size:28px;line-height:1;padding:0 4px}body.touch #console .close{display:block}body.touch #console{font-size:12px}body.touch #console input{font-size:13px;padding:6px 0}#gems.none{display:none}#finale{background:none;overflow:hidden}#finale:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transition:opacity 4s ease-in-out;background:radial-gradient(ellipse at 50% 40%,#3a2452eb,#0a0812f7)}#finale.clearing:before{opacity:0}#finale .roll{position:absolute;left:0;right:0;top:30%;padding:0 16px;text-align:center;color:var(--cream);text-shadow:0 2px 0 rgba(0,0,0,.5);animation:roll-in 1.2s ease-out,roll var(--roll-time, 60s) linear 2.5s forwards}#finale .roll h1{font-size:clamp(40px,8vw,80px);color:#ffd43b;-webkit-text-stroke:3px var(--ink);paint-order:stroke fill;margin:0 0 4px}#finale .roll h2{color:#ffd43b;font-size:26px;margin:72px 0 14px}#finale .roll p{font-size:19px;line-height:1.6;margin:0}#finale .roll .big{font-size:26px;margin-top:45vh}#finale .roll .congrats{margin-top:45vh;font-size:clamp(48px,10vw,112px);font-weight:700;line-height:1.1;color:#ffd43b;-webkit-text-stroke:4px var(--ink);paint-order:stroke fill;animation:congrats 1.4s ease-in-out infinite alternate}#finale .roll .thanks{font-size:30px;margin-top:18px}@keyframes congrats{to{transform:scale(1.06)}}#fireworks{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;z-index:19}#finale .roll{transition:opacity 1.5s ease-in-out}#finale.done .roll{opacity:0}#finale .roll small{opacity:.75;font-size:15px}#finale .roll{z-index:1}#finale:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:0;transition:opacity .5s ease-in-out;background:radial-gradient(ellipse 46% 40% at 50% 50%,#0a081200,#0a0812d9)}#finale.spotlight:after{opacity:1}#finale .roll>*{transition:opacity .5s ease-in-out}#finale.spotlight .roll>:not(.quest){opacity:.2}#finale .roll .quest{width:max-content;max-width:100%;box-sizing:border-box;margin:54px auto 0;padding:2px 40px 20px;border-radius:28px;transition:transform .5s ease-in-out,background-color .5s,box-shadow .5s}#finale .roll .quest h2{margin-top:18px}#finale .roll .quest b{color:#ffd43b;font-variant-numeric:tabular-nums}#finale.spotlight .roll .quest{transform:scale(1.15);background-color:#ffd43b1a;box-shadow:0 0 0 2px #ffd43b73,0 0 60px #ffd43b4d}#finale.spotlight .roll .quest p{text-shadow:0 2px 0 rgba(0,0,0,.5),0 0 14px rgba(255,212,59,.35)}#finale .roll .quest.full .pct{animation:congrats .7s ease-in-out infinite alternate}#finale .roll section{display:grid;grid-template-columns:1fr minmax(auto,400px) 1fr;column-gap:30px}#finale .roll section>:not(.pics){grid-column:2}#finale .roll .pics{grid-row:1 / span 9;display:flex;flex-direction:column;gap:22px;padding-top:40px}#finale .roll .pics.l{grid-column:1;align-items:flex-end}#finale .roll .pics.r{grid-column:3;align-items:flex-start;padding-top:110px}#finale .roll .polaroid{margin:0;padding:8px 8px 0;background:#fbf8f0;color:var(--ink);text-shadow:none;box-shadow:0 10px 22px #00000080;transform:translate(var(--nudge)) rotate(var(--tilt))}#finale .roll .polaroid img{display:block;width:112px;height:112px;object-fit:cover;background:radial-gradient(circle at 50% 35%,#fff4dc,#e9c98f)}#finale .roll .polaroid figcaption{font-size:15px;font-weight:600;line-height:30px;text-align:center}#finale .roll .polaroid.wide{justify-self:center;margin:72px auto 0;width:max-content}#finale .roll .polaroid.wide+h2{margin-top:26px}#finale .roll .polaroid.wide img{width:300px;height:188px}@media (max-width: 640px){#finale .roll section{column-gap:8px}#finale .roll .polaroid{padding:4px 4px 0}#finale .roll .polaroid img{width:56px;height:56px}#finale .roll .polaroid figcaption{font-size:11px;line-height:20px}#finale .roll .polaroid.wide img{width:200px;height:125px}}#finale .skip{position:absolute;left:16px;bottom:12px;color:#ffffff80;font-size:14px;margin:0}@keyframes roll{to{transform:translateY(calc(-100% - 30vh))}}@keyframes roll-in{0%{opacity:0}}#binoculars.sightseeing .spot-hint{display:none}#touch{position:fixed;top:0;right:0;bottom:0;left:0;z-index:4;pointer-events:none}#touch button{pointer-events:auto;touch-action:none;font-size:18px;padding:0}#t-pause{position:absolute;top:calc(env(safe-area-inset-top) + 12px);right:calc(env(safe-area-inset-right) + 196px);width:46px;height:46px;border-radius:50%;display:grid;place-items:center;opacity:.85}#t-pause svg{fill:var(--ink)}.t-buttons{position:absolute;right:calc(env(safe-area-inset-right) + 20px);bottom:calc(env(safe-area-inset-bottom) + 20px);display:flex;align-items:flex-end;gap:14px}#touch .t-buttons button:not(#t-done){width:96px;height:96px;border-radius:50%;font-size:21px;line-height:1.1}#t-jump{background:#ffd43b}#t-done{min-width:76px;height:60px;padding:0 16px;border-radius:30px;margin-bottom:18px}#t-act{background:var(--accent);color:#fff}#touch button:active{transform:translateY(3px) scale(.96)}#t-dot,#t-thumb{position:absolute;left:0;top:0;border-radius:50%;pointer-events:none}#t-dot{width:64px;height:64px;margin:-32px;border:3px solid rgba(255,255,255,.45)}#t-thumb{width:26px;height:26px;margin:-13px;background:#ffffff80}body.touch #prompt{display:none}.touch-row{display:flex;gap:10px}#rotate{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:none;place-content:center;text-align:center;gap:18px;padding:24px;background:var(--bg, #7cc35a);color:var(--ink);font-size:22px;font-weight:700}#rotate .phone{width:64px;height:108px;margin:0 auto;border:5px solid var(--ink);border-radius:14px;display:grid;place-items:center;background:var(--panel);animation:turn-phone 2.4s ease-in-out infinite}#rotate .phone img{width:40px;height:40px}#rotate p{margin:0}@keyframes turn-phone{0%,25%{transform:rotate(0)}55%,to{transform:rotate(-90deg)}}@media (orientation: portrait) and (pointer: coarse){#rotate{display:grid}}.install{display:none;max-width:440px;margin:0 auto;text-align:center}.install img.icon{width:84px;height:84px;border-radius:20px;box-shadow:var(--shadow)}.install h2{margin:10px 0 6px;font-size:24px}.install ol{text-align:left;margin:8px auto 12px;padding-left:24px;font-size:17px;line-height:1.5;display:inline-block}.install .share{display:inline-block;width:18px;height:22px;vertical-align:-4px}body.ask-install .install{display:block}body.ask-install #title :is(.hero-pick,.buttons,.title-note,.shelf,.controls){display:none!important}@media (max-height: 500px){body.ask-install .install{display:grid;grid-template-columns:auto 1fr;column-gap:18px;align-items:center;text-align:left;max-width:560px;padding:12px 20px}.install img.icon{width:64px;height:64px;border-radius:15px;grid-row:span 2}.install h2{font-size:19px;margin:0}.install ol{font-size:15px;margin:4px 0 0;line-height:1.35}.install p{grid-column:1 / -1;text-align:center;margin:6px 0 0}}body.fighting #t-pause{top:calc(env(safe-area-inset-top) + 76px);right:calc(env(safe-area-inset-right) + 16px)}@media (max-height: 500px){.logo{font-size:clamp(40px,10vw,72px);margin-bottom:18px}.shelf{margin-top:12px;padding:6px 12px 8px}.slot .duck{width:28px;height:28px}.controls{margin-top:8px;font-size:13px}.copyright{position:static;margin-top:10px}#title .controls,#title .copyright,#title .copyright button.link{font-size:11px}#title{overflow-y:auto;align-content:start}.panel{padding:16px 24px;gap:8px;max-height:calc(100dvh - 24px);overflow-y:auto}.panel h2{font-size:24px;margin:0}.panel button{font-size:17px;padding:6px 20px}#pause .panel{display:grid;grid-template-columns:1fr 1fr;gap:6px 10px}#pause .panel>:is(h2,.controls){grid-column:1 / -1}body.touch #pause .touch-row{display:contents}.level-name{display:none}#minimap{top:0;width:116px;height:116px}#t-pause{right:calc(env(safe-area-inset-right) + 140px);width:40px;height:40px}.t-buttons{right:calc(env(safe-area-inset-right) + 12px);bottom:calc(env(safe-area-inset-bottom) + 10px);gap:10px}#touch .t-buttons button:not(#t-done){width:70px;height:70px;font-size:17px}#t-done{min-width:60px;height:44px;padding:0 12px;border-radius:22px;margin-bottom:13px;font-size:15px}#dialogue{font-size:15px;line-height:1.35;padding:16px 16px 12px;min-height:96px}#dialogue .name{font-size:15px;top:-16px;padding:1px 10px}body.story #dialogue{font-size:19px;padding:22px 22px 14px}#progress .panel{width:min(720px,calc(100vw - 32px));max-width:none}.progress-levels{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;width:100%;max-height:none;overflow:visible}.progress-level{padding:5px 8px}.progress-level h3{font-size:14px;margin-bottom:2px}.progress-level .row{font-size:13px}.progress-level ul{font-size:12px}.item{font-size:15px;padding:3px 8px;gap:4px}.item small{font-size:12px}.item b.name{display:none}#picture{padding-top:14px}#picture img{height:calc(100dvh - 172px);max-width:calc(100vw - 92px);border-width:12px;padding:8px}body.picture #dialogue{font-size:14px;line-height:1.3;padding:12px 14px 10px;min-height:0;bottom:8px}}.cross-ribbon{position:absolute;top:0;right:0;width:200px;height:200px;overflow:hidden;pointer-events:none}.cross-ribbon a{position:absolute;top:62px;right:-62px;width:284px;transform:rotate(45deg);pointer-events:auto;padding:7px 0;text-align:center;text-decoration:none;font-weight:700;font-size:18px;letter-spacing:.02em;border-top:2px solid #ffd43b;border-bottom:2px solid #ffd43b;box-shadow:0 3px #00000059;background:#2a1a10;color:#ffd43b}.cross-ribbon a:hover,.cross-ribbon a:focus-visible{filter:brightness(1.12)}@media (max-width: 640px),(max-height: 500px){.cross-ribbon{width:140px;height:140px}.cross-ribbon a{top:44px;right:-46px;width:204px;font-size:12px;padding:5px 0}}
