:root{font-family:'DM Sans',sans-serif;color:#173e32;background:#e9efdc;font-synthesis:none}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit;border:0}button:focus-visible,a:focus-visible{outline:3px solid #e0ac4f;outline-offset:4px}button:hover{filter:brightness(1.05)}button:active{transform:translateY(1px)}#game{width:100%;height:100dvh;min-height:380px;position:relative;overflow:hidden}#world{width:100%;height:100%;display:block;touch-action:none}.vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(245,245,226,.3),transparent 50%),linear-gradient(0deg,rgba(243,242,221,.75),transparent 25%,transparent 85%,rgba(243,242,221,.6))}header{position:absolute;top:max(28px,env(safe-area-inset-top));left:40px;right:40px;display:flex;justify-content:space-between;align-items:center}.brand{text-decoration:none;color:#173e32;display:flex;gap:12px;align-items:center;font:500 25px 'Fraunces',Georgia,serif}.brand i{font-weight:400}.brand small{display:block;font:8px 'DM Sans',sans-serif;letter-spacing:2px;margin-top:6px}.brand-mark{font-size:44px}.top-actions{display:flex;gap:12px;align-items:center}.top-actions>span{font-size:9px;letter-spacing:2px;margin-right:15px}.top-actions button{width:38px;height:38px;border-radius:50%;background:#faf9eecc;border:1px solid #173e3220;font-size:20px}.welcome{position:absolute;left:7%;top:25%;max-width:570px}.eyebrow{font-size:9px;font-weight:700;letter-spacing:2px}.welcome h1{font:500 clamp(36px,4.8vw,70px)/1.11 'Fraunces',Georgia,serif;letter-spacing:-2px;margin:23px 0}.welcome h1 em{color:#618451;font-weight:400}.welcome p{font-size:14px;line-height:1.9;color:#5d6d58;margin-bottom:28px}.primary{background:#214c3a;color:#fffbed;padding:17px 23px;border-radius:9px;min-height:50px;font-size:13px;font-weight:600;box-shadow:0 6px 14px #173e3220}.primary span{margin-left:34px}.welcome-meta{display:flex;gap:24px;font-size:10px;color:#5d6d58;margin-top:27px}.input-note{font-size:10px;margin-top:28px;color:#66745f}.location{position:absolute;bottom:25px;left:40px;display:flex;align-items:center;gap:12px;font-size:9px;font-weight:600;letter-spacing:1.5px}.dot{height:6px;width:6px;border-radius:100%;background:#52805d}.sep{opacity:.4}#location-sub{font-weight:400;color:#66745f}.quest{position:absolute;top:114px;left:30px;width:250px;padding:23px;background:#fffdf0ed;border:1px solid #fff;border-radius:15px;box-shadow:0 10px 40px #243c3010}.quest h2{font:500 24px/1.15 'Fraunces',Georgia,serif;margin:14px 0 10px}.quest p{font-size:12px;line-height:1.7;color:#6c7562}.quest #checklist{font-size:11px;line-height:2.2}.quest #checklist .done{color:#718b4b}.quest #journal{font-size:10px;background:none;padding:15px 0 0;margin-top:12px;border-top:1px solid #dfe1cd;width:100%;text-align:left}.quest #journal span{float:right}.bottom{position:absolute;left:50%;bottom:38px;transform:translateX(-50%);display:flex;gap:25px;align-items:end}.bag{background:#fffdf0ef;padding:16px 18px;border-radius:14px;box-shadow:0 5px 30px #173e3210}.bag .eyebrow{font-size:8px;letter-spacing:1.5px;display:flex;justify-content:space-between}.bag .eyebrow span{color:#90967d;font-weight:400}.slots{display:flex;gap:7px;margin-top:10px}.slot{width:46px;height:45px;border:1px dashed #c9cfb5;border-radius:8px;display:grid;place-items:center;font-size:22px;background:#eeefdf60;position:relative}.slot.filled{border:1px solid #d4d8ba;background:#e5ebd3}.slot b{position:absolute;right:2px;bottom:0;font-size:8px}.companions>.eyebrow{font-size:8px;display:block;margin-bottom:10px}.companions>div{display:flex;gap:7px}.helper{background:#fffdf0f0;display:flex;align-items:center;gap:9px;padding:8px 11px;border-radius:12px;min-width:131px;text-align:left;font-size:12px;font-weight:600}.helper small{display:block;font-size:8px;font-weight:400;color:#7a826a;margin-top:3px}.avatar{width:33px;height:33px;display:grid;place-items:center;border-radius:50%;font-size:24px}.moss{background:#d9e2b4;color:#466636}.pip{background:#efd5ac;color:#b17436}.chat-icon{color:#8e947f;font-size:17px}.keyboard{position:absolute;bottom:90px;left:40px;text-align:center}.keyboard span{display:inline-grid;place-items:center;font-size:9px;width:24px;height:24px;border:1px solid #7a8b6045;border-radius:5px;background:#fffbed70;margin:2px}.keyboard small{font-size:9px;display:block;margin-top:8px;color:#66745f}.interact{position:absolute;left:50%;bottom:168px;transform:translateX(-50%);background:#214c3a;color:#fffce8;border:1px solid #fff5;border-radius:30px;padding:13px 20px;font-size:12px;box-shadow:0 5px 30px #173e3230;white-space:nowrap}.interact span{display:inline-grid;place-items:center;margin-left:14px;width:22px;height:22px;border:1px solid #fff6;border-radius:4px;font-size:10px}.interact:active{transform:translateX(-50%)}#toast{position:absolute;top:100px;left:50%;transform:translateX(-50%);background:#fffdf2f5;box-shadow:0 3px 20px #173e3215;border-radius:30px;padding:13px 24px;font-size:12px;opacity:0;transition:opacity .3s;pointer-events:none;max-width:80%;text-align:center}#toast.show{opacity:1}.hidden{display:none!important}dialog{border:1px solid #d5dbc5;background:#fffdf1;color:#173e32;padding:38px;border-radius:22px;width:min(440px,90vw);box-shadow:0 24px 100px #12362940}dialog::backdrop{background:#173e3266;backdrop-filter:blur(5px)}dialog h2{font:500 31px 'Fraunces',Georgia,serif;margin:12px 0 18px}dialog p{font-size:14px;line-height:1.8;color:#66705b}dialog .close{position:absolute;right:16px;top:12px;background:none;font-size:25px;color:#6e7b61}dialog .choice{display:block;border:1px solid #d8dcc6;border-radius:9px;background:#edf0de;padding:13px;margin-top:9px;width:100%;text-align:left;font-size:13px}dialog .primary{margin-top:16px}dialog .avatar{width:54px;height:54px;font-size:36px}dialog input{width:100%;padding:13px;border:1px solid #c5cdb2;border-radius:8px;background:#fffefa;color:#173e32;font:inherit;font-size:13px}#loading{position:absolute;inset:0;background:#e9efdc;display:grid;place-items:center;font:24px 'Fraunces',Georgia,serif}.joystick{position:absolute;left:28px;bottom:max(35px,env(safe-area-inset-bottom));width:112px;height:112px;border:1px solid #fff8;border-radius:50%;background:#fff9df44;touch-action:none;user-select:none;box-shadow:inset 0 0 25px #35593410}.joystick:after{content:'MOVE';position:absolute;left:0;right:0;text-align:center;bottom:10px;font-size:8px;letter-spacing:2px;opacity:.4;pointer-events:none}#stick{position:absolute;width:47px;height:47px;border-radius:50%;left:32px;top:32px;background:#f9fae5c9;border:1px solid #fff;box-shadow:0 3px 15px #173e3230;pointer-events:none}
@media(pointer:coarse){.keyboard{display:none!important}.joystick:not(.hidden){display:block}.interact{bottom:205px}.interact span{display:none}}
@media(max-width:760px){header{top:max(18px,env(safe-area-inset-top));left:20px;right:20px}.brand{font-size:20px;gap:7px}.brand-mark{font-size:34px}.brand small{font-size:6px;letter-spacing:1.3px}.top-actions{gap:7px}.top-actions>span{display:none}.top-actions button{height:34px;width:34px}.welcome{left:7%;top:24%;max-width:90%}.welcome h1{font-size:44px}.welcome p{font-size:12px}.welcome-meta{font-size:9px;gap:15px}.input-note{font-size:9px;max-width:250px;line-height:1.7}.location{left:20px;bottom:17px;font-size:7px;gap:8px;letter-spacing:1px}.quest{top:89px;left:16px;width:195px;padding:15px;background:#fffdf0e8}.quest .eyebrow{font-size:7px}.quest h2{font-size:20px;margin:10px 0 7px}.quest p{font-size:10px;margin:7px 0}.quest #checklist{font-size:10px;line-height:1.8}.quest #journal{padding-top:9px;margin-top:7px;font-size:9px}.bottom{left:auto;right:15px;bottom:35px;transform:none;flex-direction:column;gap:9px;align-items:end}.bag{padding:11px;border-radius:12px}.slots{gap:5px;margin-top:7px}.slot{width:32px;height:32px;font-size:18px}.bag .eyebrow{font-size:7px}.helper{min-width:84px;padding:6px;gap:5px;font-size:10px;border-radius:9px}.helper small{font-size:7px}.helper .avatar{width:25px;height:25px;font-size:19px}.chat-icon{display:none}.companions>.eyebrow{font-size:7px;margin-bottom:5px}.interact{bottom:190px;font-size:11px;padding:12px 17px}.joystick{left:20px;bottom:45px;width:104px;height:104px}#stick{left:28px;top:28px}#toast{top:82px;max-width:90%;width:max-content;font-size:11px;padding:11px 18px}dialog{padding:28px}.keyboard{left:17px;bottom:80px}}
@media(max-height:550px){.welcome{top:20%}.welcome h1{font-size:36px;margin:12px 0}.welcome p{margin:12px 0;font-size:11px}.welcome-meta,.input-note{margin-top:12px}.quest{top:78px;padding:12px}.quest p,#checklist{display:none}.bottom{bottom:25px}.location{bottom:8px}.joystick{bottom:30px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

body:has(.welcome:not(.hidden)) .vignette{background:linear-gradient(90deg,#f0f1dc 0%,#f0f1dcee 24%,#f0f1dc55 55%,transparent 75%)}@media(max-width:760px){body:has(.welcome:not(.hidden)) .vignette{background:linear-gradient(90deg,#f0f1dcf5,#f0f1dccc 55%,#f0f1dc22),linear-gradient(0deg,#f0f1dc99,transparent)}.keyboard{display:none!important}.joystick:not(.hidden){display:block}.interact span{display:none}}
/* A separate, explorable-feeling workshop with a tactile assembly bench. */
.workshop{position:fixed;inset:0;z-index:100;background:linear-gradient(#dfdbc1 0 57%,#af8e62 57% 59%,#8c704f 59%);overflow:auto;color:#293d31;overscroll-behavior:contain}.room-scenery{position:absolute;inset:0;overflow:hidden;pointer-events:none;background:repeating-linear-gradient(90deg,transparent 0 110px,#4d67420b 110px 112px)}.room-window{position:absolute;top:35px;left:50%;width:200px;height:200px;border:12px solid #8a795d;border-radius:100px 100px 0 0;background:linear-gradient(#cae1cf,#8fb16a);box-shadow:0 0 70px #fff5c3}.room-window:after{content:'';position:absolute;left:47%;height:100%;width:10px;background:#8a795d}.room-window span{font-size:145px;color:#587943;line-height:1.5}.shelf{position:absolute;top:130px;left:8%;font-size:42px;border-bottom:12px solid #8a795d;letter-spacing:10px;color:#6e8855}.room-lamp{position:absolute;right:14%;top:50px;font-size:95px;color:#fff1a9}.room-header{position:relative;inset:auto;display:flex;align-items:center;justify-content:space-between;padding:30px 5%;background:#faf7e6e8}.room-header h1{font:500 31px 'Fraunces',Georgia,serif;margin:8px 0 0}.leave-room{background:#234d3b;color:#fff4df;padding:13px 18px;border-radius:8px;min-height:44px}.workbench{position:relative;width:min(1080px,94%);margin:115px auto 40px;background:#faf4de;border:9px solid #af895c;border-bottom:18px solid #896543;border-radius:15px;box-shadow:0 20px 60px #34251460}.bench-title{padding:17px 24px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #d6cdb1}.recipe-tabs{display:flex;gap:5px}.recipe-tabs button{background:#e8e0c8;border-radius:7px;padding:10px 14px;font-size:12px}.recipe-tabs button[aria-pressed=true]{background:#3c634c;color:#fff8e5}.bench-body{display:grid;grid-template-columns:1fr 1.2fr .8fr;gap:25px;padding:25px}.bench-body h2{font:500 24px 'Fraunces',Georgia,serif;margin:0 0 12px}.bench-body p{font-size:12px;line-height:1.8;color:#6c7059}.parts-tray{display:grid;grid-template-columns:1fr 1fr;gap:8px}.part{background:#eae0c4;border:2px solid transparent;border-radius:9px;padding:9px 5px;min-height:88px;text-align:center;touch-action:manipulation}.part.selected{border-color:#63845c;background:#d9e2bd}.part:disabled{opacity:.4;cursor:default}.part strong{font-size:10px;display:block;margin-top:6px}.part small{display:block;font-size:8px;margin-top:5px}.part-icon{display:inline-block;font:32px Georgia,serif;line-height:1;color:#8b6037;text-shadow:0 1px #fff8}.part-rope{color:#b8954c}.part-pegs{color:#8d6039}.part-bow,.part-shaft{color:#b48a2d}.assembly{text-align:center}.assembly-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:16px auto;width:100%;max-width:285px}.assembly-cell{aspect-ratio:1;border:1px dashed #b6ac8a;background:#e8dfc3;border-radius:7px;display:grid;place-items:center;min-height:48px}.assembly-cell.occupied{background:#d5dfb8;border:1px solid #a1b184}.grid-cross{color:#bdb18b;font-size:19px}.bench-actions{display:flex;justify-content:center;gap:10px;align-items:center}.bench-actions>button{border-radius:8px;min-height:44px;font-size:11px}.bench-actions>#clear-grid{padding:10px;background:#e8dfc3}.bench-actions>.primary{padding:12px 15px}.bench-actions>button:disabled{opacity:.5;cursor:default}.assembly p{min-height:45px}.blueprint{background:#d6e4df;border:1px solid #a7c1ba;border-radius:8px;padding:18px;align-self:start}.blueprint h2{font-size:23px;margin:12px 0}.mini-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;width:130px;max-width:100%;margin:16px auto}.mini-grid span{aspect-ratio:1;border:1px solid #90aca2;display:grid;place-items:center;font:24px Georgia,serif;color:#476e61}.blueprint small{font-size:10px;line-height:1.7;color:#557365;display:block}.craft-button{margin-top:9px;width:100%;background:#e1e7cb;border:1px solid #c6d0ac;border-radius:7px;padding:8px;font-size:10px;min-height:36px}.toolkit{margin-top:8px;font-size:10px;color:#5a7347}.hop-button{position:absolute;bottom:185px;right:35px;width:58px;height:58px;border:1px solid #fff9;background:#fff9dfdd;border-radius:50%;font-size:11px;box-shadow:0 3px 18px #173e3220}.hop-button span{display:block;font-size:21px}.hazard-tip{font-size:10px;line-height:1.6;color:#66745f;margin:10px 0 0}
@media(max-width:760px){.room-header{padding:20px;gap:10px}.room-header h1{font-size:23px}.room-header .eyebrow{font-size:8px}.leave-room{font-size:11px;white-space:nowrap}.workbench{margin:65px auto 25px;border-width:5px;border-bottom-width:12px}.room-window{width:140px;height:150px;top:70px}.shelf,.room-lamp{display:none}.bench-title{padding:12px;gap:8px}.bench-title>.eyebrow{font-size:7px;letter-spacing:1px}.recipe-tabs button{font-size:10px;padding:9px}.bench-body{padding:14px;grid-template-columns:1fr 1.1fr;gap:14px}.parts-panel h2{font-size:19px}.parts-panel p,.bench-body p{font-size:10px}.parts-tray{gap:5px}.part{min-height:75px;padding:7px 3px}.part strong{font-size:9px}.part small{font-size:7px}.part-icon{font-size:27px}.assembly .eyebrow{font-size:7px;letter-spacing:1px}.assembly-grid{gap:5px;margin-top:12px}.assembly-cell{min-height:43px}.bench-actions{flex-direction:column;gap:7px}.bench-actions button{width:100%;font-size:10px}.blueprint{grid-column:1/-1;display:grid;grid-template-columns:1fr 100px;gap:6px 15px;padding:14px}.blueprint .eyebrow{font-size:8px}.blueprint h2{grid-column:1;grid-row:2;font-size:21px;margin:0}.blueprint .mini-grid{grid-column:2;grid-row:1/5;width:95px;margin:0}.blueprint p{grid-column:1;margin:0}.blueprint small{grid-column:1;font-size:9px}.hop-button{bottom:210px;right:23px;width:52px;height:52px;font-size:10px}.craft-button{font-size:9px;min-height:32px;padding:6px}.toolkit{font-size:8px}.bottom{bottom:29px}.interact{bottom:225px;max-width:65vw;white-space:normal;text-align:center}.joystick{bottom:50px}}
.finished-creation{grid-column:1/-1;aspect-ratio:1;background:#dce5c6;border:1px solid #9cb680;border-radius:12px;display:flex;flex-direction:column;justify-content:center;gap:17px;padding:15px}.finished-icon{font:70px Georgia,serif;color:#a67c3e;letter-spacing:-8px}.finished-creation strong{font:24px 'Fraunces',Georgia,serif}.finished-creation small{font-size:11px;color:#5e794b}@media(max-width:760px){.finished-icon{font-size:40px}.finished-creation strong{font-size:18px}.finished-creation small{font-size:9px}.slot{width:28px;height:30px}.slots{gap:4px}}

@media(min-width:761px){.interact{bottom:235px}.workbench{margin-top:85px}.bench-body{padding:20px}.assembly-grid{max-width:240px}.part{min-height:75px}.parts-panel p{margin:8px 0}}

.quest-toggle{position:absolute;top:8px;right:8px;width:44px;height:44px;display:grid;place-items:center;background:#e3e9d1;border:1px solid #ccd6b7;border-radius:50%;font-size:24px;line-height:1;z-index:1;touch-action:manipulation}.quest>.eyebrow{padding-right:36px}.quest h2{padding-right:30px}.quest.collapsed{padding:12px 56px 12px 16px;width:auto;max-width:min(300px,calc(100vw - 32px));min-height:60px}.quest.collapsed>.eyebrow{display:none}.quest.collapsed h2{font-size:17px;line-height:1.3;margin:7px 0;padding:0}.quest #quest-details[hidden]{display:none!important}.quest.collapsed .quest-toggle{top:8px;right:6px}@media(max-width:760px){.quest>.eyebrow{letter-spacing:1px;padding-right:35px}.quest.collapsed{max-width:calc(100vw - 32px)}}

/* Keep inventory and controls at the edge, leaving the central paths clear. */
.bottom{inset:0;left:0;right:0;top:0;bottom:0;transform:none;display:block;width:auto;height:auto;pointer-events:none}.bottom .bag,.bottom .companions{pointer-events:auto}.bottom .bag{position:absolute;right:max(14px,env(safe-area-inset-right));top:50%;transform:translateY(-50%);width:70px;padding:12px 8px;border-radius:14px;max-height:calc(100dvh - 220px);overflow-y:auto;scrollbar-width:thin}.bag .eyebrow{display:block;text-align:center;font-size:7px;letter-spacing:.8px;line-height:1.6}.bag .eyebrow span{display:block;margin-top:3px;font-size:9px}.bag .slots{flex-direction:column;align-items:center;gap:6px;margin-top:9px}.bag .slot{width:40px;height:40px;flex-shrink:0;font-size:22px}.bag .craft-button{font-size:9px;padding:7px 2px;min-height:40px;width:100%;margin-top:10px}.bag .toolkit{font-size:8px;text-align:center;margin-top:8px;line-height:1.5}.bottom .companions{position:absolute;right:max(14px,env(safe-area-inset-right));bottom:max(20px,env(safe-area-inset-bottom));}.companions>.eyebrow{display:none}.companions .helper{min-width:100px;min-height:44px;padding:7px 9px}.companions .chat-icon{display:none}.hop-button{right:max(20px,env(safe-area-inset-right));bottom:max(90px,calc(env(safe-area-inset-bottom) + 70px))}.interact{bottom:max(45px,calc(env(safe-area-inset-bottom) + 25px));max-width:calc(100vw - 280px)}
@media(max-width:760px){.bottom .bag{right:max(9px,env(safe-area-inset-right));width:62px;padding:9px 6px;max-height:calc(100dvh - 245px)}.bag .slot{width:36px;height:36px;font-size:20px}.bag .slots{gap:5px}.bag .eyebrow{font-size:6px}.bag .craft-button{font-size:8px;min-height:36px;margin-top:8px}.bag .toolkit{font-size:7px;margin-top:6px}.bottom .companions{right:max(10px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom))}.companions .helper{min-width:72px;padding:7px 6px;gap:4px;font-size:9px}.companions .helper .avatar{width:24px;height:24px;font-size:18px}.companions .helper small{font-size:6px}.hop-button{right:max(17px,env(safe-area-inset-right));bottom:max(86px,calc(env(safe-area-inset-bottom) + 68px))}.interact{bottom:155px;max-width:calc(100vw - 160px);font-size:10px;padding:11px 14px;left:45%}}
@media(max-height:550px){.bottom .bag{top:88px;transform:none;max-height:calc(100dvh - 160px)}.bag .slots{gap:4px}.bag .slot{width:32px;height:32px;font-size:18px}.bag .eyebrow{display:none}.bag .craft-button{margin-top:7px}.bag .toolkit{margin-top:5px}.bottom .companions{right:90px;bottom:15px}.hop-button{bottom:18px;right:18px}.interact{bottom:25px}}
.score{position:absolute;top:88px;right:max(20px,env(safe-area-inset-right));border:1px solid #d0d9b9;background:#fffbe9ee;border-radius:12px;padding:9px 14px;color:#577140;text-align:center;font-size:17px}.score strong{font-weight:700;margin-left:5px}.score small{display:block;font-size:6px;letter-spacing:1.5px;margin-top:4px}.trick-controls{position:absolute;bottom:max(88px,calc(env(safe-area-inset-bottom) + 68px));right:88px;display:flex;gap:5px;padding:5px;background:#fffbe9dd;border-radius:12px;border:1px solid #d0d9b9}.trick-controls button{min-width:52px;min-height:44px;border-radius:8px;background:transparent;font-size:10px;padding:7px;color:#45603e}.trick-controls button[aria-pressed=true]{background:#365a41;color:#fff9e2}.trick-controls small{display:block;margin-top:4px;font-size:9px}.hop-button{height:64px;width:64px;bottom:max(84px,calc(env(safe-area-inset-bottom) + 64px))}.hop-button>small{display:block;font-size:7px;margin-top:2px}.hop-button>span{font-size:19px}.bottom .bag{max-height:calc(100dvh - 320px);top:47%}.interact{bottom:175px}.keyboard small{max-width:170px;line-height:1.6}
@media(max-width:760px){.score{top:84px;right:10px;padding:7px 10px;font-size:14px}.trick-controls{right:77px;bottom:max(86px,calc(env(safe-area-inset-bottom) + 68px));gap:2px;padding:3px;border-radius:10px}.trick-controls button{min-width:43px;min-height:44px;font-size:8px;padding:6px 4px}.trick-controls small{font-size:8px}.hop-button{right:13px;width:58px;height:58px;bottom:max(84px,calc(env(safe-area-inset-bottom) + 66px))}.bottom .bag{top:45%;max-height:calc(100dvh - 310px)}.interact{bottom:170px}}
@media(max-height:550px){.score{top:20px;right:118px;font-size:12px;padding:6px 10px}.score small{display:none}.bottom .bag{top:88px;max-height:calc(100dvh - 175px)}.trick-controls{bottom:76px;right:85px}.hop-button{bottom:76px}.bottom .companions{right:12px;bottom:16px}.interact{bottom:25px;left:42%}}

.score .lives{display:block;margin-top:7px;color:#bb6e55;font-size:13px;letter-spacing:2px;line-height:1}.hop-button,.trick-controls button{touch-action:none;user-select:none;-webkit-user-select:none}.score{min-width:65px}.bottom .bag{top:49%;max-height:calc(100dvh - 340px)}body[data-chapter="1"] .brand,body[data-chapter="1"] .quest{color:#654c32}body[data-chapter="2"] .brand,body[data-chapter="2"] .quest{color:#5c4938}@media(max-width:760px){.score{top:82px;right:8px;padding:7px 8px;min-width:62px}.score .lives{font-size:11px}.bottom .bag{top:48%;max-height:calc(100dvh - 330px)}}@media(max-height:550px){.score .lives{display:inline-block;margin:0 0 0 8px}.bottom .bag{top:88px;max-height:calc(100dvh - 175px)}}

.level-clock{display:block;margin-top:9px;font-size:16px;line-height:1.2;font-variant-numeric:tabular-nums;color:#43664e}.level-clock.time-low{color:#aa6345;font-weight:700}.score>small:last-child{font-size:6px;letter-spacing:1px}.bottom .bag{top:212px;bottom:175px;transform:none;max-height:none;padding:8px 7px}.bag .slot{width:34px;height:34px;font-size:20px}.bag .slots{gap:4px;margin-top:7px}.bag .craft-button{min-height:36px;margin-top:7px}.bag .toolkit{margin-top:5px}.score .lives{margin-top:6px}body[data-chapter="3"] .brand,body[data-chapter="3"] .quest{color:#35583b}body[data-chapter="4"] .brand,body[data-chapter="4"] .quest{color:#2e6369}@media(max-width:760px){.score{top:82px;min-width:62px}.level-clock{font-size:14px;margin-top:7px}.bottom .bag{top:200px;bottom:165px;max-height:none;padding:8px 6px}.bag .slot{height:32px;width:32px;font-size:18px}.bag .slots{gap:4px}.bag .eyebrow{font-size:6px}.bag .craft-button{min-height:34px}.bag .toolkit{font-size:7px}}@media(max-height:550px){.score{top:20px;right:118px;display:flex;align-items:center;gap:7px;min-width:0}.score>small{display:none}.score .lives{margin:0}.level-clock{display:inline-block;margin:0;font-size:13px}.bottom .bag{top:88px;bottom:150px;max-height:none}}

.zoom-controls{position:absolute;left:40px;bottom:190px;display:flex;align-items:center;gap:3px;background:#fffbe9ed;border:1px solid #cfd8bb;border-radius:12px;padding:4px;box-shadow:0 3px 18px #173e3212;touch-action:manipulation}.zoom-controls>button{height:44px;min-width:44px;padding:5px;border-radius:8px;background:transparent;font-size:24px;color:#31563e}.zoom-controls>button:hover{background:#e3e9d0}.zoom-controls>button:disabled{opacity:.35;cursor:default}.zoom-controls #zoom-reset{min-width:52px;font-size:12px;font-variant-numeric:tabular-nums}.zoom-controls small{display:block;font-size:6px;letter-spacing:1px;margin-top:3px}.zoom-controls button{touch-action:manipulation;-webkit-user-select:none;user-select:none}@media(max-width:760px){.zoom-controls{left:20px;bottom:185px;padding:3px}.zoom-controls>button{height:44px;min-width:40px}.zoom-controls #zoom-reset{min-width:48px;font-size:11px}}@media(max-height:550px){.zoom-controls{left:50%;top:76px;bottom:auto;transform:translateX(-50%);padding:3px}.zoom-controls>button{height:40px;min-width:40px}.zoom-controls #zoom-reset{min-width:48px}}

@media(max-width:760px){.zoom-controls>button{min-width:44px}.interact{bottom:250px}}

/* Two simple vertical zoom buttons. */
.zoom-controls{flex-direction:column;gap:0;bottom:140px;padding:3px;width:52px}.zoom-controls>button{width:44px;min-width:44px;height:44px;padding:0;font-size:25px;border-radius:7px}.zoom-controls>button:first-child{border-bottom:1px solid #d4ddc2;border-bottom-left-radius:0;border-bottom-right-radius:0}.zoom-controls>button:last-child{border-top-left-radius:0;border-top-right-radius:0}.keyboard{left:110px}.jump-guide{background:#e8eed8;border:1px solid #d1dcc0;border-radius:10px;padding:14px 16px;margin:16px 0}.jump-guide h3{font:500 20px 'Fraunces',Georgia,serif;margin:0 0 10px}.jump-guide p{font-size:12px;line-height:1.75;margin:9px 0}.joystick:after{content:'TAP ×2 · JUMP';font-size:6px;letter-spacing:.7px;bottom:8px;opacity:.65}@media(max-width:760px){.zoom-controls{left:20px;bottom:185px;width:52px;padding:3px}.zoom-controls>button{width:44px;min-width:44px;height:44px}.interact{left:50%}.jump-guide{padding:12px}.jump-guide h3{font-size:18px}.jump-guide p{font-size:11px}}@media(max-height:550px){.zoom-controls{left:50%;top:76px;bottom:auto;width:48px;padding:3px}.zoom-controls>button{width:40px;min-width:40px;height:40px}.keyboard{left:110px}}

#world.can-pan{cursor:grab}#world.can-pan.panning{cursor:grabbing}.pan-reset{position:absolute;left:100px;bottom:140px;width:44px;height:44px;border:1px solid #cfd8bb;border-radius:50%;background:#fffbe9ed;font-size:26px;line-height:1;color:#31563e;touch-action:manipulation;box-shadow:0 3px 18px #173e3212}.pan-reset:disabled{opacity:.55;cursor:default}@media(max-width:760px){.pan-reset{left:80px;bottom:185px}}@media(max-height:550px){.pan-reset{left:calc(50% + 33px);top:76px;bottom:auto;width:40px;height:40px}}

/* Movement gestures must not select the page or trigger mobile callouts. */
body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}
input,textarea,[contenteditable=true]{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}

/* The player's own character artwork accompanies both helpers. */
.character-avatar{display:block;background:transparent!important;border-radius:0;flex-shrink:0}
.character-avatar img{display:block;width:100%;height:100%;object-fit:contain;min-width:0;min-height:0;max-height:100%;pointer-events:none}
.companions .helper .character-avatar{width:28px;height:44px}
dialog .helper-portrait{width:64px;height:110px}
@media(max-width:760px){.companions .helper .character-avatar{width:23px;height:38px}}

dialog .choice.wrong-answer{opacity:.55;text-decoration:line-through;cursor:default}

.brand .studio-name{display:block;font:700 11px 'DM Sans',sans-serif;letter-spacing:2.5px;margin:0 0 5px;text-transform:none}
body[data-chapter="5"] .brand,body[data-chapter="5"] .quest{color:#356781}body[data-chapter="6"] .brand,body[data-chapter="6"] .quest{color:#72552f}
@media(max-width:760px){.brand .studio-name{font-size:9px;letter-spacing:1.8px;margin-bottom:3px}}

.release-footer{position:absolute;z-index:8;left:50%;transform:translateX(-50%);bottom:max(3px,env(safe-area-inset-bottom));max-width:96vw;display:flex;align-items:center;justify-content:center;gap:9px;white-space:nowrap;font:9px system-ui,sans-serif;color:#3b5749;background:#faf8e8e8;padding:3px 9px;border-radius:12px;pointer-events:auto}.release-footer a{color:inherit;text-underline-offset:2px}.release-footer a:focus-visible{outline:2px solid #6c8d55;outline-offset:3px}@media(max-width:760px){.release-footer{font-size:8px;gap:7px;padding:3px 7px}}
