:root{color-scheme:light;--ink:#193e37;--muted:#63796b;--paper:#f5f4e9;--line:#d5dfce;--green:#225c45;--yellow:#efc65b;--radius:14px;font-family:'Trebuchet MS','Segoe UI',sans-serif;color:var(--ink);background:var(--paper)}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;border:0;border-radius:9px;padding:11px 16px;background:#e7ecdf;color:var(--ink);font-weight:700;transition:background .12s}button:hover{background:#d7e2cd}button:disabled{opacity:.45;cursor:default}button:focus-visible,a:focus-visible,canvas:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #db9341;outline-offset:3px}.primary{background:var(--green);color:#fff9df}.primary:hover{background:#327859}.outline{border:1px solid #bfd0bb;background:transparent}.text-button{background:transparent;font-size:14px;text-decoration:underline}.wide{width:100%;margin-top:10px}.topbar{height:102px;max-width:1440px;margin:auto;padding:0 48px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;gap:12px;color:var(--ink);text-decoration:none;font-family:Georgia,serif;font-size:32px;font-weight:700;letter-spacing:-1.5px;align-items:center}.brand-light{font-weight:400}.brand small{display:block;letter-spacing:2px;font:10px 'Trebuchet MS',sans-serif;margin-top:5px}.brand canvas{width:48px;height:48px;image-rendering:pixelated}.topbar nav{display:flex;gap:10px}.topbar nav>button:not(.primary){background:transparent}main{max-width:1440px;padding:30px 48px 15px;margin:auto}.adventure-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.eyebrow{font-size:11px;font-weight:800;letter-spacing:2px;color:var(--muted)}h1{font:700 30px Georgia,serif;letter-spacing:-.6px;margin:6px 0 0}h2{font:700 29px/1.12 Georgia,serif;letter-spacing:-.5px}h3{font-size:16px;margin:0}.inventory{display:flex;gap:19px;align-items:center;font-size:14px}.inventory b{font-size:18px}#hearts{font-size:25px;color:#cf6c54;letter-spacing:5px}.divider{width:1px;height:25px;background:var(--line)}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:27px;align-items:start}.game-frame{position:relative;border:7px solid #294e3c;border-radius:16px;background:#406845;overflow:hidden;box-shadow:0 7px 0 #173b2e}#game{display:block;width:100%;aspect-ratio:3/2;image-rendering:pixelated;outline-offset:-6px;touch-action:none}.location-label{position:absolute;left:18px;top:16px;background:#143c32dd;color:#f3efd6;padding:9px 12px;border-radius:6px;font-size:12px;pointer-events:none;display:flex;gap:8px;align-items:center}.location-dot{width:6px;height:6px;background:var(--yellow);border-radius:50%}.pause-button{position:absolute;right:14px;top:14px;background:#143c32dd;color:#f3efd6;padding:8px 13px}.quest{padding:8px 0 22px;border-bottom:1px solid var(--line)}.quest h2{margin:12px 0}.quest p{font-size:15px;line-height:1.55;color:var(--muted);margin:0}.quest ol{list-style:none;margin:22px 0;padding:0;display:flex;flex-direction:column;gap:13px}.quest li{display:flex;gap:9px;align-items:center;font-size:14px}.quest li>span{background:#e4e8d7;border-radius:50%;width:23px;height:23px;display:grid;place-items:center;font-size:12px;font-weight:700;flex-shrink:0}.quest li.done{color:#378455}.quest li.done>span{background:#d1e6c1}.hint{border-radius:9px;background:#e9ead8;padding:12px;font-size:13px;line-height:1.6}.hero-picker{padding-top:20px}.section-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;gap:10px}.section-heading>span{font-size:12px;color:var(--muted)}.character-list{display:flex;gap:7px;margin:14px 0}.character-list button{flex:1;padding:7px 1px;border:2px solid transparent;background:#e5eadc;border-radius:9px;font-size:11px}.character-list button[aria-pressed=true]{border-color:var(--green);background:#dce9ca}.character-list canvas{display:block;width:40px;height:40px;margin:auto;image-rendering:pixelated}.name-label{font-size:12px;color:var(--muted);display:block;margin:5px 0}.hero-picker input{width:100%;border:1px solid #cbd7c1;border-radius:7px;background:#fffdf3;padding:8px 10px;font-size:14px}.save-note{font-size:12px;color:var(--muted);line-height:1.5;margin-top:17px}.game-footer{display:flex;align-items:center;gap:28px;font-size:12px;color:var(--muted);padding:22px 0}.game-footer>div{display:flex;gap:5px;align-items:center}.game-footer span{margin:0 7px}kbd{font:11px 'Trebuchet MS',sans-serif;display:inline-block;border:1px solid #bcccaf;border-bottom-width:2px;background:#fcfbef;border-radius:4px;padding:3px 5px;color:var(--ink)}.footer-tip{margin-left:auto!important;font-family:Georgia,serif;font-style:italic}.game-message{position:absolute;bottom:24px;left:5%;width:90%;background:#fff9e6;border:3px solid #264e3c;border-radius:10px;padding:18px 22px;font-size:16px;line-height:1.5;box-shadow:0 4px 0 #173b2e44;cursor:pointer}.game-message strong{display:block;color:#956333;font-size:13px;margin-bottom:4px}.game-message small{display:block;text-align:right;margin-top:8px;color:var(--muted);font-size:11px}.pause-overlay{position:absolute;inset:0;background:#143c32da;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff9df}.pause-overlay h2{font-size:38px;margin:0}.pause-overlay button{background:var(--yellow);color:var(--ink);margin-top:18px}[hidden]{display:none!important}.touch-controls{display:none;position:absolute;left:12px;right:12px;bottom:12px;justify-content:space-between;pointer-events:none}.touch-controls button{pointer-events:auto;background:#fff5d9d9;padding:12px 16px;touch-action:none}.dpad{display:grid;grid-template-columns:repeat(3,40px);gap:3px}.dpad button{padding:7px}.dpad button:first-child{grid-column:2}.dpad button:nth-child(2){grid-column:1}.touch-actions{align-self:end;display:flex;gap:7px}dialog{border:1px solid #b6c8ac;border-radius:20px;background:var(--paper);color:var(--ink);box-shadow:0 22px 90px #102f3270;max-height:94dvh}dialog::backdrop{background:#102f32b0;backdrop-filter:blur(3px)}#studio{width:1060px;max-width:96vw;padding:25px 30px}.studio-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:20px;border-bottom:1px solid var(--line)}.studio-header h2{margin:6px 0 0;font-size:34px}.studio-layout{display:grid;grid-template-columns:190px minmax(260px,1fr) 214px;gap:27px;padding-top:23px}.asset-panel>label{display:block;font-weight:700;font-size:14px;margin-bottom:10px}.asset-panel select{width:100%;font-size:13px;border:1px solid var(--line);border-radius:6px;padding:8px;background:#fffcf0;color:var(--ink)}.asset-list{display:grid;grid-template-columns:1fr 1fr;gap:6px;max-height:454px;overflow:auto;margin-top:12px;padding-right:4px}.asset-list button{padding:7px 3px;font-size:11px;border:2px solid transparent;background:#e5eadc;min-height:65px}.asset-list button[aria-pressed=true]{border-color:var(--green);background:#d5e5bf}.asset-list canvas{width:35px;height:35px;image-rendering:pixelated;display:block;margin:auto}.drawing-panel{min-width:0}#pixel-editor{width:100%;max-width:384px;display:block;aspect-ratio:1;touch-action:none;image-rendering:pixelated;border:2px solid #93ab8b;border-radius:3px;margin:auto}.editor-tools{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-top:14px}.editor-tools button{padding:10px 2px;font-size:12px}.editor-tools button[aria-pressed=true]{background:var(--green);color:#fff9df}.editor-actions{display:flex;flex-wrap:wrap;gap:4px;margin-top:9px}.editor-actions button{font-size:12px;padding:7px}.editor-actions label{font-size:12px;display:flex;align-items:center;margin-top:8px}.paint-panel h3{margin:0 0 12px}.palette{display:grid;grid-template-columns:repeat(6,1fr);gap:5px;margin-bottom:12px}.palette button{height:27px;padding:0;border:2px solid #0001;border-radius:5px}.palette button[aria-pressed=true]{outline:2px solid var(--ink);outline-offset:2px}.custom-color{display:flex;justify-content:space-between;align-items:center;font-size:12px;margin-bottom:24px}.custom-color input{width:35px;height:28px;padding:1px;border:1px solid var(--line);background:transparent}.preview-scene{background:#83b067;border-radius:10px;text-align:center;border-bottom:6px solid #668e4d}.preview-scene canvas{height:110px;width:110px;image-rendering:pixelated}.studio-note{font-size:12px;line-height:1.5;color:var(--muted)}.backup-tools{display:flex;gap:7px;border-top:1px solid var(--line);padding-top:13px;margin-top:12px}.backup-tools button{font-size:12px;padding:8px;flex:1}.studio-status{border-top:1px solid var(--line);padding-top:14px;font-size:13px;color:var(--muted);margin-bottom:0}#help{max-width:520px;padding:30px}#help h2{font-size:34px}#help p,#help li{font-size:16px;line-height:1.6}#help li{margin:12px 0}#help ul{padding-left:20px}@media(min-width:1550px){main,.topbar{max-width:1540px}.game-layout{grid-template-columns:minmax(0,1fr) 280px;gap:36px}}@media(max-width:1050px){main{padding:24px}.topbar{padding:0 24px;height:90px}.game-layout{grid-template-columns:minmax(0,1fr) 220px;gap:18px}.inventory{gap:10px}.game-footer{gap:8px;flex-wrap:wrap}.footer-tip{display:none}.studio-layout{grid-template-columns:140px minmax(220px,1fr) 180px;gap:16px}#studio{padding:20px}}@media(max-width:760px){.topbar{padding:0 16px;height:83px}.brand{font-size:26px}.brand small{font-size:8px;letter-spacing:1px}.brand canvas{width:36px;height:36px}.topbar nav{gap:2px}.topbar nav button{padding:9px;font-size:12px}#sound-button{display:none}main{padding:22px 12px}.adventure-bar{gap:10px}.inventory{font-size:11px;gap:7px}.inventory b{font-size:14px}#hearts{font-size:16px;letter-spacing:1px}.inventory .divider{display:none}h1{font-size:25px}.eyebrow{font-size:9px}.game-layout{grid-template-columns:1fr}.side-panel{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:8px}.quest{border:0}.quest h2{font-size:24px}.hero-picker{padding-top:8px}.save-note{grid-column:1/-1;margin:0}.location-label{top:9px;left:9px;padding:6px 8px;font-size:9px}.game-message{font-size:13px;padding:12px;bottom:88px}.game-footer{display:none}.studio-layout{grid-template-columns:110px minmax(0,1fr);gap:12px}.paint-panel{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:10px 20px}.paint-panel h3,.paint-panel .studio-note{display:none}.palette{grid-template-columns:repeat(6,1fr)}.preview-scene{grid-column:2;grid-row:1/3}.paint-panel .wide{margin:0}.paint-panel .custom-color{margin:0}.backup-tools{margin:0}.studio-header h2{font-size:27px}.studio-header>button{font-size:11px;padding:9px}.asset-list{max-height:350px}.asset-list button{font-size:10px}.asset-panel>label{font-size:12px}.editor-tools{grid-template-columns:1fr 1fr}.studio-status{font-size:12px}#studio{padding:15px}.drawing-panel .section-heading{flex-wrap:wrap}.side-panel .quest li{font-size:12px}}@media(pointer:coarse){.touch-controls{display:flex}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
@media(min-width:761px) and (max-height:850px){.topbar,main{max-width:min(1200px,calc(150dvh + 30px))}.topbar{height:80px}main{padding-top:20px}.adventure-bar{margin-bottom:16px}.game-layout{grid-template-columns:minmax(0,1fr) 240px}.game-footer{padding:17px 0}.quest ol{margin:16px 0}.quest h2{font-size:26px}.hero-picker{padding-top:15px}}
/* Keep every explorer visible, including in the narrow in-app browser. */
main,.side-panel,.hero-picker,.quest,.asset-panel,.paint-panel{min-width:0}
.character-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(56px,1fr));gap:7px}
.character-list button{min-width:0;width:100%;padding:8px 3px;font-size:12px}
.hero-picker .section-heading{flex-wrap:wrap}
.asset-list{grid-template-columns:repeat(2,minmax(0,1fr));scrollbar-gutter:stable;overscroll-behavior:contain}
.asset-list button{min-width:0;overflow-wrap:anywhere}
@media(max-width:760px){.side-panel{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:420px){.side-panel{grid-template-columns:1fr}.character-list{grid-template-columns:repeat(auto-fit,minmax(56px,1fr))}}
/* The adventure owns the screen; tools and details live in Pause / Menu. */
body.play-mode{background:#142d27;overflow:hidden}
.play-mode main.play-shell{width:100%;height:100dvh;max-width:none;margin:0;padding:8px;display:grid;place-items:center}
.play-shell .game-frame{width:min(calc(150dvh - 24px),calc(100vw - 16px));border:0;border-radius:10px;box-shadow:none;isolation:isolate}
.play-shell #game{width:100%;height:auto;aspect-ratio:3/2}
.play-hud{position:absolute;inset:12px 14px auto;display:flex;justify-content:space-between;align-items:start;pointer-events:none;gap:12px}
.place-name{padding:9px 12px;background:#143c32e8;color:#fff3ce;border-radius:8px}
.place-name h1{font:700 clamp(15px,1.8vw,24px) Georgia,serif;margin:0;color:#fff3ce}
.place-name>span{display:block;margin-top:4px;font-size:12px;color:#d6e1b9}
.play-hud .pause-button{position:static;pointer-events:auto;background:#fff3ce;color:#193e37;box-shadow:0 3px 0 #122f2580;font-size:14px}
.play-inventory{position:absolute;top:85px;left:14px;display:flex;gap:14px;align-items:center;background:#143c32e8;border-radius:7px;color:#fff3ce;padding:7px 11px;font-size:14px;pointer-events:none}
.play-inventory #hearts{font-size:18px;letter-spacing:1px;color:#ff977d;white-space:nowrap}
.goal-strip{position:absolute;inset:auto 14px 12px;display:flex;justify-content:space-between;align-items:center;gap:18px;background:#143c32e8;color:#fff3ce;padding:10px 12px;border-radius:8px;pointer-events:none;font-size:13px;line-height:1.4}
.quick-controls{font-size:11px;white-space:nowrap;color:#d6e1b9}
.race-status{position:absolute;top:85px;right:14px;background:#fff3ce;color:#193e37;border-radius:7px;padding:9px 12px;font-size:16px;font-weight:700}
.play-shell .game-message{bottom:65px;z-index:4}
.pause-menu{width:850px;max-width:96vw;padding:26px;max-height:94dvh;overflow:auto}
.pause-heading{display:flex;justify-content:space-between;align-items:center;gap:14px;border-bottom:1px solid var(--line);padding-bottom:18px}
.pause-heading .brand{font-size:28px}.pause-heading small{letter-spacing:1px}
.menu-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:18px 0}
.menu-actions button{font-size:14px;padding:12px 7px}.menu-actions #sound-button{display:block}
.pause-columns{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:28px}
.pause-columns .quest{border:0;padding:10px 0}.pause-columns .quest h2{font-size:27px}.pause-columns .quest li b{font-weight:400}.pause-columns .hero-picker{padding-top:10px}.pause-columns .hint{font-size:14px}.pause-columns .quest p{font-size:14px;margin-top:12px}.pause-columns .character-list{grid-template-columns:repeat(auto-fit,minmax(54px,1fr))}
.supply-shop{margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}.supply-shop h2{font-size:25px;margin:0}.supply-shop p{font-size:14px;color:var(--muted);line-height:1.5}.supply-shop .section-heading>span{font-size:14px}
.shop-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.shop-grid button{display:block;width:100%;text-align:left;font-size:14px}.shop-grid span{display:block;font-size:13px;line-height:1.4;margin:6px 5px;color:var(--muted)}
.pause-footnote{border-top:1px solid var(--line);padding-top:14px;font-size:14px;line-height:1.6;color:var(--muted)}
.restart-dialog{width:490px;max-width:94vw;padding:28px}.restart-dialog p{line-height:1.6}.restart-actions{display:flex;gap:10px;margin-top:22px;flex-wrap:wrap}
@media(max-width:1000px){.quick-controls{display:none}.goal-strip{font-size:12px}.play-inventory{top:75px}}
@media(max-width:600px){.play-mode main.play-shell{padding:0}.play-shell .game-frame{width:min(150dvh,100vw);border-radius:0}.play-hud{inset:7px 7px auto;gap:7px}.place-name{padding:7px}.place-name>span{display:none}.play-hud .pause-button{font-size:12px;padding:8px}.play-inventory{top:46px;left:7px;font-size:11px;gap:7px;padding:5px 7px}.play-inventory #hearts{font-size:13px}.goal-strip{inset:auto 7px 6px;padding:6px;font-size:10px}.race-status{top:80px;right:7px;font-size:12px;padding:6px}.pause-menu{padding:18px}.pause-heading .brand{font-size:23px}.pause-heading .brand small{font-size:8px}.pause-heading>button{font-size:13px;padding:10px}.menu-actions{grid-template-columns:1fr 1fr}.pause-columns{grid-template-columns:1fr;gap:12px}.shop-grid{gap:10px}.play-shell .game-message{bottom:40px;padding:10px;font-size:13px}.pause-columns .character-list{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(pointer:coarse){.play-shell .goal-strip{bottom:90px}.play-shell .game-message{bottom:125px}.play-shell .touch-controls{bottom:10px}}
.recent-color-section{margin:0 0 20px;min-width:0}
.paint-panel .recent-color-section h3{display:block;font-size:14px;margin:0 0 10px}
.recent-colors{max-height:112px;overflow-y:auto;overflow-x:hidden;padding:4px;grid-template-columns:repeat(6,minmax(0,1fr));scrollbar-gutter:stable;overscroll-behavior:contain}
.recent-colors button{min-width:0;min-height:27px}
.recent-color-section p{font-size:12px;line-height:1.5;color:var(--muted);margin:6px 0}
@media(max-width:760px){.recent-color-section{grid-column:1/-1;margin:4px 0 8px}.recent-colors{grid-template-columns:repeat(8,minmax(0,1fr));max-height:108px}.paint-panel .preview-scene{grid-row:1/3}}
.full-save-panel{padding-top:16px;margin-top:12px;border-top:1px solid var(--line)}.full-save-panel h2{font-size:24px;margin:0}.full-save-panel p,.save-manager p{font-size:15px;line-height:1.6}.save-manager{width:540px;max-width:94vw;padding:26px}.save-manager-actions{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0}#full-save-status{overflow-wrap:anywhere;color:var(--muted)}
