*{box-sizing:border-box}body{margin:0;background:#101d25;color:#f5eddd;font:15px system-ui,sans-serif}main{max-width:1120px;margin:auto;padding:28px 28px 20px}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.eyebrow{font-size:10px;letter-spacing:2.5px;color:#9dcaba}h1{font:500 43px Georgia,serif;margin:10px 0 0}h1 em{color:#ecb69f;font-weight:400}.edition{font-size:10px;letter-spacing:2px;color:#a8b4b2}.mission{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid #35434a;padding:16px 0}.mission p{margin:0;color:#ded9cc}.items{display:flex;gap:9px;font-size:12px}.items span{padding:7px 10px;border:1px solid #3c5657;border-radius:20px;white-space:nowrap}.items .done{background:#345b50;border-color:#79b39e}.stage{position:relative;overflow:hidden;border:1px solid #405452;border-radius:14px;background:#253b46;box-shadow:0 18px 50px #0003}canvas{display:block;width:100%;aspect-ratio:2;touch-action:none}.overlay{position:absolute;inset:0;background:linear-gradient(90deg,#10242aec,#10242ace);display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:20px}.overlay[hidden]{display:none}h2{font:500 34px Georgia;margin:12px 0}.overlay p{line-height:1.6;margin:5px 0 15px}.overlay .hint{font-size:12px;max-width:440px;color:#aecfc1}button{min-height:48px;border:1px solid #638f80;border-radius:10px;padding:12px 18px;background:#9cc9b7;color:#132d2c;font:600 14px system-ui;cursor:pointer;touch-action:none;user-select:none}button:active,.held{background:#efd1a3}button:focus-visible{outline:3px solid #eeb27d;outline-offset:3px}button:disabled{opacity:.45;cursor:default}.quiet{background:transparent;color:#b8d1c6;font-size:12px;min-height:36px;padding:7px 12px}.status{display:flex;justify-content:space-between;align-items:center;min-height:62px;gap:16px}.status span{font-size:13px;color:#efd1ac}.meters{display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:11px;color:#acc2bb;margin:0 0 20px}.meters label{display:flex;align-items:center;gap:10px}progress{width:140px;height:9px;accent-color:#ed9c73}.controls{display:flex;justify-content:space-between;gap:14px}.movement,.actions{display:flex;gap:10px}.movement button{min-width:72px;font-size:23px;padding:7px}.actions button{background:#263f40;color:#e6ecde}.actions button:active,.actions .held{background:#48685c}footer{font-size:11px;color:#90a29c;line-height:1.7;margin:18px 0}details{max-width:680px}summary{cursor:pointer;color:#b6c7bd}footer p{margin:10px 0} @media(max-width:700px){main{padding:18px 12px}header{margin-bottom:16px}h1{font-size:30px}.edition{display:none}.mission{display:block}.mission p{font-size:12px;margin-bottom:12px}.items{gap:6px}.stage{border-radius:9px}h2{font-size:23px}.overlay p{font-size:12px;margin-bottom:9px}.overlay .hint{display:none}.overlay .eyebrow{display:none}.overlay button{min-height:42px;padding:8px 14px}.overlay{padding:10px}.controls{gap:8px}.movement,.actions{gap:5px}.movement button{min-width:44px}.actions button{padding:9px 8px;font-size:11px}.meters{gap:8px;font-size:10px;flex-wrap:wrap}progress{width:90px}.status{min-height:68px}.status span{font-size:12px}.eyebrow{font-size:8px;letter-spacing:1.7px}}


:root{color-scheme:dark}body{background:radial-gradient(ellipse at 20% 0,#294342,#101e2a 58%);min-height:100vh}main{max-width:1210px;padding-top:22px}header{margin-bottom:16px}h1{font-size:39px}.edition{text-align:right;line-height:1.8}.mission{padding:12px 0}.stage{border-radius:18px}canvas{aspect-ratio:16/9}.overlay{background:linear-gradient(100deg,#122b30f5,#152633dc);z-index:2}.overlay .eyebrow{color:#9fcab6}.overlay p{max-width:530px}.overlay h2{font-size:36px;color:#f4dbbb}.overlay .hint{display:block;max-width:600px;color:#c1d8c5}.overlay .paw{font-size:33px;color:#e8bb8d;margin-bottom:7px}.overlay .buttons{display:flex;gap:9px;flex-wrap:wrap;justify-content:center}.overlay button{min-width:150px}.topbar{display:flex;gap:8px;align-items:center}.status{min-height:56px}.status span{max-width:820px}.meters{margin-bottom:14px}.controls{align-items:center;gap:12px}.dpad{display:grid;grid-template-columns:48px 48px 48px;gap:4px}.dpad button{min-width:0;padding:4px;font-size:22px}.dpad #up{grid-column:2}.dpad #left{grid-column:1}.dpad #down{grid-column:2}.dpad #right{grid-column:3}.dpad.side{display:flex}.dpad.side #up,.dpad.side #down{display:none}.dpad.side button{width:65px;height:50px}.actions{flex-wrap:wrap;justify-content:flex-end}.actions button{min-height:48px;padding:8px 12px}.actions small{display:block;font-weight:400;font-size:10px;color:#b6c7bd}.actions #interact{background:#b9d2b6;color:#203936}.actions #puff{border-color:#9c819f}.actions #toy{border-color:#ae965e}.actions button:disabled{opacity:.35}.settings{display:flex;gap:22px;flex-wrap:wrap;align-items:center;border-top:1px solid #35494d;padding-top:14px}.settings label{display:flex;align-items:center;gap:8px}.settings input[type=range]{width:95px;accent-color:#c8d5b1}.settings select{padding:6px;color:#e4e7d4;background:#263d40;border:1px solid #52665b;border-radius:5px}.chapter-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;width:100%;max-width:900px}.chapter-grid button{text-align:left;font-size:12px;min-height:83px;padding:10px;background:#2b4646;color:#e8e6d7}.chapter-grid button strong{display:block;font-size:20px;color:#e8be8f;margin-bottom:4px}.chapter-grid button.done{border-color:#b6d7ad}.chapter-grid button:disabled{opacity:.43}.map-overlay h2{margin:3px 0 10px}.map-overlay p{margin:0 0 12px;font-size:12px}.map-overlay .buttons{margin-top:10px}.chip{background:#284f49;border:1px solid #567b64;padding:5px 10px;border-radius:20px;font-size:11px;color:#d5e7c7}.mobile-hint{display:none}button{transition:background .15s}button[hidden]{display:none}.overlay[hidden]{display:none}#pause:disabled{opacity:.4}footer{max-width:none}footer details{max-width:100%}.tools{display:flex;gap:7px}.result-stars{font-size:26px;letter-spacing:10px;color:#f3c977} .items{font-size:11px}
@media(max-width:700px){main{padding:12px 9px}header{gap:6px;margin-bottom:10px}h1{font-size:27px}.eyebrow{font-size:8px}.topbar button{font-size:10px;padding:6px 8px}.mission{padding:9px 0}.mission p{margin-bottom:8px}.items{font-size:10px}.items span{padding:4px 8px}.stage{border-radius:10px}.overlay{padding:10px}.overlay h2{font-size:22px;margin:2px 0 5px}.overlay p{font-size:11px;line-height:1.4;margin:4px 0 7px;max-width:92%}.overlay .hint{font-size:10px;margin:3px 0 7px}.overlay .paw{display:none}.overlay button{min-height:36px;min-width:120px;padding:6px 10px;font-size:11px}.overlay .eyebrow{display:none}.controls{gap:6px}.dpad{grid-template-columns:42px 42px 42px;gap:2px}.dpad button{height:42px;min-height:42px}.dpad.side button{width:45px}.actions{gap:4px}.actions button{font-size:10px;padding:5px 7px;min-height:45px}.actions small{font-size:9px}.status{min-height:58px}.meters{font-size:10px;gap:6px}.settings{gap:12px}.settings input[type=range]{width:80px}.chapter-grid{grid-template-columns:repeat(5,1fr);gap:3px}.chapter-grid button{padding:4px;font-size:8px;min-width:0;min-height:57px;line-height:1.2}.chapter-grid button strong{font-size:15px;margin-bottom:3px}.map-overlay h2{font-size:19px}.map-overlay p{display:none}.map-overlay .buttons{margin-top:6px}.mobile-hint{display:inline;color:#bfd0be}.result-stars{font-size:17px}footer{font-size:10px}#carry{max-width:150px}}
@media(max-height:520px) and (orientation:landscape){main{padding:4px 12px;max-width:1000px}footer,.mission,.meters,header>div:first-child{display:none}header{position:fixed;top:7px;left:7px;z-index:5}.topbar{flex-direction:column}.edition{display:none}.topbar button{width:100px;font-size:10px;min-height:32px;padding:4px}.stage{width:min(76vw,calc((100vh - 60px)*16/9));margin:auto}.controls{position:fixed;left:6px;right:6px;bottom:7px;pointer-events:none}.controls button{pointer-events:auto;opacity:.9}.status{min-height:28px;width:60%;margin:auto}.status span{font-size:9px;max-width:75%}.status button{position:fixed;right:8px;top:10px;z-index:5;min-height:32px;padding:3px 8px}.actions{max-width:230px}.dpad button{height:42px;min-height:42px}.actions button{min-height:42px}.overlay p{font-size:12px}}

/* Mobile browsers must treat held controls as game input, never as selectable content. */
.stage,.stage *, .controls,.controls *,button,button *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-user-drag:none}
.stage,.controls,button{touch-action:none;-webkit-tap-highlight-color:transparent}
.controls button>*{pointer-events:none}
