:root{--cream:#fff0cf;--gold:#efbb69;--muted:#aac1b5;color-scheme:dark;font-family:'Trebuchet MS',system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;color:var(--cream);background:radial-gradient(ellipse at 35% 0,#2b4743,#102326 75%);min-height:100vh}main{max-width:1360px;margin:auto;padding:24px 32px}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.wordmark small{display:block;letter-spacing:4px;font-weight:bold;font-size:12px;color:var(--gold);margin-bottom:5px}.wordmark strong{font-size:32px;letter-spacing:-1px}nav{display:flex;gap:8px}button{font-family:inherit;cursor:pointer;background:var(--gold);color:#293d35;border:1px solid #f7d48b;border-radius:7px;padding:11px 15px;font-weight:bold;font-size:14px;box-shadow:0 3px 0 #a97637}button:hover{filter:brightness(1.1)}button:disabled{opacity:.5;cursor:default}button:focus-visible,canvas:focus-visible{outline:3px solid #fff3b1;outline-offset:3px}nav button,.secondary{background:#294440;border:1px solid #49635a;color:var(--cream);box-shadow:none}kbd{font-size:11px;font-family:monospace;padding:2px 4px;background:#0002;border-radius:3px;margin-left:5px}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 258px;gap:20px;align-items:start}.game-shell{border:3px solid #577164;border-radius:11px;overflow:hidden;box-shadow:0 14px 40px #0004;background:#1c3634}.location{display:flex;justify-content:space-between;align-items:center;padding:13px 18px}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:bold;color:var(--gold);margin:0 0 8px}h1{font-size:22px;margin:3px 0 0}#progress{font-size:12px;color:#d2debc;border:1px solid #5d7460;border-radius:30px;padding:7px 12px;white-space:nowrap}.viewport{position:relative;aspect-ratio:4/3;background:#152c2d}#world{width:100%;height:100%;display:block;image-rendering:pixelated;touch-action:none}.objective{display:flex;gap:12px;align-items:center;padding:12px 15px;min-height:74px}.objective>span{font-size:23px;color:var(--gold)}.objective p{margin:0;font-size:14px;line-height:1.45;flex:1}.objective button{white-space:nowrap}aside{display:flex;flex-direction:column;gap:14px}.panel{background:#233d38;border:1px solid #415d51;border-radius:9px;padding:17px}.panel h2{font-size:17px;margin:0}.player-info{display:flex;align-items:center;gap:8px}.player-info canvas{width:64px;height:72px;image-rendering:pixelated;object-fit:contain}.player-info p{font-size:11px;color:var(--muted);line-height:1.5;margin:5px 0}.party{display:flex;gap:3px;margin-top:12px}.friend{width:39px;height:45px;background:#162e2c;border-radius:7px;display:grid;place-items:center;color:#748e7c;font-size:22px}.friend canvas{width:39px;height:43px;image-rendering:pixelated}.panel-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.panel-title span{font-size:10px;color:var(--muted)}#bag{display:grid;gap:7px}.bag-item{padding:9px;border-radius:5px;background:#182f2d;font-size:12px;display:flex;align-items:center;gap:10px}.bag-item span{font-size:20px}.empty{font-size:12px;line-height:1.7;color:var(--muted);margin:0}.trail-panel p:not(.eyebrow){font-size:13px;color:#d2decd;line-height:1.6}.trail-panel button{background:transparent;border:0;color:var(--gold);padding:3px 0;box-shadow:none;font-size:12px}.bottom-bar{display:flex;justify-content:space-between;align-items:center;margin-top:18px}.bottom-bar p{color:#d3dec9;font-size:12px;line-height:1.8;margin:0}.bottom-bar p span{color:#91aa9e}.dpad{display:flex;gap:5px}.dpad button{background:#2b4942;color:var(--cream);border-color:#456353;box-shadow:none;touch-action:none;padding:9px 16px}footer{margin-top:24px;color:#789487;font-size:10px;text-align:center}.overlay{position:absolute;inset:0;display:none;z-index:3;background:#102626bd;padding:20px;align-items:center;justify-content:center;overflow:auto}.overlay.open{display:flex}.card{max-width:590px;width:100%;background:#fff0d4;color:#29403a;border:3px solid #c99a55;border-radius:11px;padding:24px;box-shadow:0 7px 0 #10282655;max-height:100%;overflow:auto}.card .eyebrow{color:#8b643b}.card h2{font-size:29px;line-height:1.13;margin:4px 0 12px}.card p{font-size:17px;line-height:1.55;margin:10px 0 18px}.card .choices{display:flex;flex-wrap:wrap;gap:9px}.card .secondary{background:#e4d8b9;color:#344c40;border:1px solid #c5b791}.card small{display:block;font-size:11px;line-height:1.5;color:#766c54}.title-card{text-align:center}.title-card h2{font-size:42px}.title-card .choices{justify-content:center}.cast-row{height:100px;display:flex;justify-content:center}.cast-row canvas{height:100px;width:90px;image-rendering:pixelated}.select-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.select-grid button{padding:8px 3px;background:#e6dabb;border-color:#cdb87e}.select-grid canvas{width:100%;height:105px;object-fit:contain;image-rendering:pixelated}.map-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.map-grid button{text-align:left;background:#294940;color:var(--cream);border-color:#527c62;box-shadow:none;padding:11px}.map-grid button strong{display:block}.map-grid button small{color:#c9d7b9;margin-top:5px}.map-thumb{width:100%;aspect-ratio:2.5;display:block;border-radius:4px;margin-bottom:7px;image-rendering:pixelated}.encounter{justify-content:flex-end;background:#10262a40;align-items:flex-end}.encounter .card{width:62%;padding:19px}.encounter .card h2{font-size:26px}.encounter .card p{font-size:16px}.journal-list{display:grid;gap:12px}.journal-entry{display:grid;grid-template-columns:75px 1fr;gap:12px;background:#ecdfbd;border-radius:7px;padding:12px}.journal-entry canvas{width:75px;height:90px;object-fit:contain;image-rendering:pixelated}.journal-entry h3{margin:0;font-size:18px}.journal-entry p{font-size:13px;margin:7px 0;line-height:1.5}.journal-entry .origin{font-size:10px;letter-spacing:1px;color:#806342}#area-toast{position:absolute;top:15px;left:50%;transform:translateX(-50%);pointer-events:none;background:#15362be6;border:1px solid #a6ad7b;color:#fff0c5;border-radius:30px;padding:8px 18px;font-size:12px;opacity:0;transition:opacity .4s;white-space:nowrap}#area-toast.show{opacity:1}.settings-row{display:flex;justify-content:space-between;align-items:center;margin:15px 0;font-size:16px}.settings-row input{width:24px;height:24px;accent-color:#476746}.source-note{font-size:11px!important;color:#7b725e}.teacher-question{border-left:3px solid #bb9152;padding-left:12px;font-weight:bold}@media(max-width:950px){main{padding:18px}.game-layout{grid-template-columns:1fr}aside{display:grid;grid-template-columns:1fr 1fr}.trail-panel{display:none}.party{margin-top:5px}.panel{padding:12px}.player-info canvas{height:54px;width:50px}#bag{grid-template-columns:1fr 1fr}.wordmark strong{font-size:27px}}@media(max-width:580px){main{padding:12px 8px}.wordmark strong{font-size:21px}.wordmark small{font-size:9px;letter-spacing:2px}nav{gap:4px}nav button{padding:8px;font-size:11px}nav kbd{display:none}.location{padding:9px 12px}h1{font-size:18px}.objective{padding:9px;gap:6px}.objective p{font-size:12px}.objective button{font-size:12px;padding:9px}.objective>span{display:none}.overlay{padding:9px}.card{padding:13px}.card h2{font-size:22px}.card p{font-size:13px;margin:8px 0 12px}.card button{font-size:12px;padding:8px}.title-card h2{font-size:28px}.cast-row{height:70px}.cast-row canvas{height:70px;width:65px}.select-grid{gap:4px}.select-grid canvas{height:75px}.encounter .card{padding:10px;width:66%}.encounter .card h2{font-size:20px}.encounter .card p{font-size:12px}.map-grid{gap:6px}.map-grid button{padding:7px}.map-thumb{display:none}.panel h2{font-size:14px}.bag-item{font-size:11px;padding:5px}.friend{width:30px;height:35px}.friend canvas{width:30px;height:34px}.bottom-bar{align-items:start;gap:8px}.bottom-bar p{font-size:10px}.dpad button{padding:9px 11px}.journal-entry{grid-template-columns:50px 1fr}.journal-entry canvas{width:50px;height:65px}#bag{grid-template-columns:1fr}.player-info{gap:2px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
/* GBC presentation: flat colors, square double borders and a single pixel scale. */
:root{--cream:#fff0cf;--gold:#e2c88d;--muted:#aca79c;font-family:'Courier New',monospace}body{background:#394050}main{max-width:1210px}header{margin-bottom:15px}.wordmark strong{font-family:'Courier New',monospace;font-size:28px;letter-spacing:-1px}.wordmark small{font-size:11px;letter-spacing:3px}.game-layout{grid-template-columns:minmax(0,1fr) 240px;gap:16px}.game-shell{border:4px solid #202038;border-radius:0;box-shadow:0 0 0 3px #aca79c,5px 7px 0 #202038;background:#fff0cf}.location,.objective{background:#fff0cf;color:#202038}.location{border-bottom:4px double #202038}.location .eyebrow{color:#67546a}.location h1{font-size:20px}.objective{border-top:4px double #202038}.objective p{font-weight:bold;font-size:13px}.objective>span{color:#a5643f}.viewport{background:#202038}#world{image-rendering:pixelated}.panel{border:4px double #202038;background:#fff0cf;color:#202038;border-radius:0;box-shadow:3px 3px 0 #202038}.panel .eyebrow{color:#67546a}.panel-title span,.player-info p,.empty{color:#67546a}.bag-item{background:#efdeb0;color:#202038;border-radius:0;border-bottom:2px solid #c3a364}.friend{border-radius:0;background:#d6d2ba;color:#67546a}.trail-panel p:not(.eyebrow){color:#493238}.trail-panel button{color:#513567}button{border-radius:0;border:2px solid #202038;box-shadow:2px 2px 0 #202038;background:#efdeb0;color:#202038;font-family:inherit}button:hover{background:#fff8e0;filter:none}nav button,.secondary,.dpad button{border:2px solid #202038;background:#d6d2ba;color:#202038;box-shadow:2px 2px 0 #202038}.card{border:6px double #202038;border-radius:0;background:#fff8e0;color:#202038;box-shadow:5px 5px 0 #202038;padding:20px}.card .eyebrow{color:#67546a}.card h2{font-size:25px;font-family:inherit}.card p{font-size:16px;line-height:1.5}.card .secondary{border:2px solid #202038;background:#d6d2ba;color:#202038}.title-card h2{font-size:34px}.overlay{background:#20203866}.select-grid button{border:2px solid #202038;background:#efdeb0}.map-grid button{border:2px solid #202038;background:#efdeb0;color:#202038}.map-grid button small{color:#67546a}.map-thumb{border-radius:0}.journal-entry{background:#efdeb0;border-radius:0}.encounter{align-items:flex-end;background:#fff0cf22}.encounter .card{width:63%;padding:15px}.encounter .card h2{font-size:23px}#progress{border:2px solid #67546a;border-radius:0;color:#493238}#area-toast{border:3px double #202038;border-radius:0;background:#fff0cf;color:#202038;font-weight:bold}.bottom-bar p{color:#fff0cf}.bottom-bar p span,footer{color:#d6d2ba}.settings-row input{accent-color:#628447}.map-grid,.select-grid{gap:8px}.party canvas,.player-info canvas{image-rendering:pixelated}kbd{background:#20203815}.source-note{color:#67546a!important}@media(max-width:950px){.game-layout{grid-template-columns:1fr}}@media(max-width:580px){.wordmark strong{font-size:19px}.card h2{font-size:20px}.card p{font-size:12px}.title-card h2{font-size:25px}.card{padding:11px}.encounter .card{padding:9px}.encounter .card h2{font-size:18px}.objective p{font-size:11px}.location h1{font-size:17px}}
/* Encounters use a dedicated field above a classic full-width dialogue box. */
.overlay.encounter{background:transparent;padding:0;align-items:flex-end}.encounter .card{width:100%;max-width:none;max-height:39%;min-height:38%;border:6px double #202038;box-shadow:none;padding:10px 16px;display:grid;grid-template-columns:1fr 1fr;column-gap:18px}.encounter .card>.eyebrow{display:none}.encounter .card h2{font-size:17px;margin:0 0 4px;grid-column:1}.encounter .card .body{grid-column:1;grid-row:2}.encounter .card p{font-size:13px;line-height:1.35;margin:0}.encounter .card small{font-size:10px}.encounter .choices{grid-column:2;grid-row:1/3;align-content:center;display:grid;grid-template-columns:1fr 1fr;gap:6px}.encounter .choices button{font-size:11px;padding:7px;text-align:left;box-shadow:none;border:1px solid #a27e42}.encounter .choices button:hover:before{content:'▶ '}.encounter .choices button:focus-visible{outline-color:#513567}@media(max-width:580px){.encounter .card{padding:7px;column-gap:7px}.encounter .card h2{font-size:12px}.encounter .card p{font-size:10px}.encounter .choices{gap:4px}.encounter .choices button{font-size:9px;padding:4px}.encounter .card small{font-size:8px}}
.encounter .card{grid-template-rows:auto 1fr;align-content:start}.encounter .card .body{align-self:start;padding-top:10px}.encounter .card p{font-size:16px}.encounter .choices{align-self:center}.encounter .choices button{font-size:13px;padding:9px}.encounter .card small{font-size:12px}@media(max-width:580px){.encounter .card p{font-size:11px}.encounter .choices button{font-size:10px;padding:5px}.encounter .card small{font-size:9px}}
/* Warm cartridge menus, with a bundled, offline pixel font. */
@font-face{font-family:ForestPixel;src:url('assets/press-start-2p.ttf') format('truetype');font-display:swap}
:root{font-family:ForestPixel,monospace;--cream:#fff0cf;--gold:#e2c88d}body{background:#42604b}button,kbd,.wordmark strong{font-family:inherit}button{font-size:10px;line-height:1.7;padding:10px;border-color:#493238;box-shadow:3px 3px 0 #493238}button:focus-visible{outline:3px solid #a5643f;outline-offset:3px}button:hover{background:#fff0cf}.wordmark strong{font-size:21px;letter-spacing:0}.wordmark small{font-size:9px;letter-spacing:1px;margin-bottom:12px}nav button{font-size:9px}kbd{font-size:8px}.game-shell,.panel,.card{border-color:#493238;box-shadow:4px 4px 0 #293d35}.panel{padding:13px}.panel h2{font-size:12px;line-height:1.8}.eyebrow{font-size:8px;letter-spacing:0;line-height:1.8}.location h1{font-size:14px;line-height:1.7}#progress{font-size:8px;padding:8px}.objective p{font-size:10px;line-height:1.8;font-weight:normal}.objective button{font-size:9px}.card{background:#fff0cf;padding:20px}.card h2,.title-card h2{font-size:19px;line-height:1.6}.card p{font-size:11px;line-height:1.9}.card small{font-size:8px;line-height:1.8}.card .eyebrow{font-size:8px}.card button{font-size:9px}.player-info p,.empty,.trail-panel p:not(.eyebrow){font-size:8px;line-height:1.9}.panel-title{gap:8px}.panel-title span{font-size:7px;line-height:1.8}.bag-item{font-size:8px;line-height:1.8;padding:4px;gap:7px}.item-icon{width:36px;height:36px;image-rendering:pixelated;flex-shrink:0;vertical-align:middle}.pickup-icon{width:96px;height:96px;image-rendering:pixelated;display:block;margin:auto}.bottom-bar p{font-size:8px;line-height:2}footer{font-size:7px;line-height:2}.trail-panel button{font-size:8px;line-height:1.9}.journal-entry h3{font-size:12px;line-height:1.7}.journal-entry p{font-size:9px;line-height:1.9}.journal-entry .origin,.source-note{font-size:8px!important;line-height:1.9}.settings-row{font-size:10px;line-height:1.8;gap:12px}#area-toast{font-size:9px;max-width:94%;white-space:normal;text-align:center;line-height:1.7}
.forest-map{position:relative;aspect-ratio:600/330;margin:20px 0;border:4px solid #628447;background:#bed278}.forest-map svg{display:block;width:100%;height:100%;shape-rendering:crispEdges}.map-place{position:absolute;transform:translate(-50%,-50%);width:27%;font-size:8px!important;line-height:1.8;padding:6px!important;background:#efdeb0}.map-place.current{background:#fff8e0;outline:3px solid #a5643f}.map-place:disabled{opacity:1;background:#aca79c;color:#493238}.encounter .card{border-color:#493238;padding:9px 12px;column-gap:12px}.encounter .card h2{font-size:11px;line-height:1.8}.encounter .card p{font-size:9px;line-height:1.9}.encounter .card small{font-size:7px;line-height:1.6}.encounter .choices button{font-size:8px;line-height:1.5;padding:5px;display:flex;align-items:center;gap:5px;border:2px solid #c3a364}.encounter .choices button:hover:before{content:none}.encounter .item-icon{width:27px;height:27px}.encounter .card .body{padding-top:3px}.encounter .choices{gap:4px}
@media(max-width:580px){header{flex-wrap:wrap;gap:15px}.wordmark strong{font-size:17px}nav button{font-size:8px}.location h1{font-size:10px}#progress{font-size:7px}.objective{flex-wrap:wrap}.objective p{font-size:8px}.card{padding:10px}.card h2,.title-card h2{font-size:13px}.card p{font-size:9px}.card button{font-size:8px}.select-grid{grid-template-columns:repeat(2,1fr)}.map-place{font-size:6px!important;padding:3px!important}.encounter .card{max-height:48%;min-height:42%;padding:6px;column-gap:6px}.encounter .card h2{font-size:8px}.encounter .card p{font-size:7px;line-height:1.7}.encounter .choices button{font-size:6px;padding:3px}.encounter .item-icon{width:18px;height:18px}.encounter .card small{font-size:6px}.panel h2{font-size:10px}.bottom-bar{flex-wrap:wrap}.bag-item{font-size:7px}}
.overhead-map{aspect-ratio:5/3;background:#42684c;overflow:visible;margin:24px 0 35px}.overhead-map>canvas{width:100%;height:100%;display:block;image-rendering:pixelated}.overhead-map .map-place{width:30%;font-size:7px!important;padding:4px!important;line-height:1.7}.lake-chart{position:relative;height:250px;background:#42684c;border:4px solid #628447;margin:20px 0}.lake-chart svg{width:100%;height:100%}.lake-node{position:absolute;transform:translate(-50%,-50%);padding:6px;background:#fff0cf;border:2px solid #493238;color:#493238;font-size:8px;max-width:95px;line-height:1.8;text-align:center}.lake-node.current{background:#e2c88d;outline:3px solid #a5643f}.select-grid{grid-template-columns:repeat(3,1fr)}.select-grid button{font-size:8px;line-height:1.8}.select-grid button:disabled{opacity:.6}.select-grid small{font-size:6px;line-height:1.8}.viewport::after{content:'';position:absolute;inset:0;pointer-events:none;z-index:8;opacity:0}.viewport.wrong-answer::after{background:#d34d3a;animation:wrong-flash .5s ease-out}.viewport.right-answer::after{background:#8fbb61;box-shadow:inset 0 0 0 9px #8fbb61;animation:right-glow .55s ease-out}.viewport.wrong-answer{animation:wrong-shake .26s steps(2,end)}@keyframes wrong-flash{0%{opacity:.3}100%{opacity:0}}@keyframes right-glow{0%,30%{opacity:.32}100%{opacity:0}}@keyframes wrong-shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}body[data-motion=off] .viewport.wrong-answer{animation:none}body[data-motion=off] .viewport.wrong-answer::after,body[data-motion=off] .viewport.right-answer::after{animation:none;background:transparent;opacity:1;box-shadow:inset 0 0 0 6px #a5643f}body[data-motion=off] .viewport.right-answer::after{box-shadow:inset 0 0 0 6px #628447}@media(prefers-reduced-motion:reduce){.viewport.wrong-answer{animation:none}.viewport.wrong-answer::after,.viewport.right-answer::after{animation:none;background:transparent;opacity:1;box-shadow:inset 0 0 0 6px #a5643f}.viewport.right-answer::after{box-shadow:inset 0 0 0 6px #628447}}@media(max-width:580px){.overhead-map .map-place{font-size:6px!important}.select-grid{grid-template-columns:repeat(2,1fr)}.lake-node{font-size:6px;max-width:70px}.lake-chart{margin:20px 15px}.encounter .card{max-height:48%}}
#bag{max-height:390px;overflow-y:auto;scrollbar-color:#a27e42 #efdeb0}.encounter .card .body{overflow-wrap:anywhere}.forest-map .map-place:focus-visible{z-index:2}
.map-card{padding:12px;max-width:520px}.map-card>.eyebrow{display:none}.map-card h2{font-size:15px;margin:0 0 6px}.map-card p{font-size:9px;line-height:1.6;margin:5px 0 8px}.map-card .forest-map{width:min(100%,420px);margin:8px auto 12px}.map-card button{font-size:8px;padding:7px}.map-card .choices{margin-top:5px}

.settings-row input[type=range]{width:120px;height:24px;flex:1;max-width:180px}.settings-row output{font-size:9px;min-width:40px}.music-now{font-size:9px!important;line-height:1.8!important;border-top:3px double #a27e42;padding-top:12px}

.story-picture{display:block;width:100%;max-width:576px;height:auto;image-rendering:pixelated;border:3px solid #493238;margin:0 auto 14px;box-sizing:border-box}.story-card{max-width:660px}.story-card .body{overflow:visible}

.story-figure{margin:0 auto 16px;max-width:480px;border:3px solid #493238;background:#fff0cf}.story-figure .story-picture{border:0;margin:0;width:100%}.ending-credits{padding:12px 10px;text-align:center;font-size:9px;line-height:1.9;color:#493238;border-top:3px solid #493238}.ending-credits strong{display:block;font-size:11px}.card .ending-credits p{font-size:8px;line-height:1.9;margin:8px 0 0}.story-card .story-figure{max-width:420px}
.credit-window{height:130px;overflow:hidden;position:relative}.credit-roll{padding:12px 0;transform:translateY(0)}.credit-roll.rolling{animation:arcade-credit-roll 24s linear both}.credit-roll strong{margin-bottom:22px}.card .credit-roll p{margin-top:30px;line-height:2.2}.credit-controls{display:flex;flex-wrap:wrap;justify-content:center;gap:7px;padding-top:10px;border-top:2px solid #c3a364}.credit-controls button{font-size:8px;padding:7px;line-height:1.5}.credit-controls [hidden]{display:none!important}.credits-finished{height:auto;min-height:130px}.credits-finished .credit-roll strong{margin-bottom:6px}.card .credits-finished .credit-roll p{margin-top:10px}@keyframes arcade-credit-roll{from{transform:translateY(130px)}to{transform:translateY(-100%)}}
