@font-face{font-family:'DM Sans';font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/dm-sans-regular.ttf') format('truetype')}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:500;font-display:swap;src:url('/assets/fonts/dm-sans-medium.ttf') format('truetype')}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:600;font-display:swap;src:url('/assets/fonts/dm-sans-semibold.ttf') format('truetype')}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:700;font-display:swap;src:url('/assets/fonts/dm-sans-bold.ttf') format('truetype')}
@font-face{font-family:'Fraunces';font-style:normal;font-weight:500 700;font-display:swap;src:url('/assets/fonts/fraunces-medium.ttf') format('truetype')}
:root{font-family:'DM Sans',sans-serif;color:#283c2e;background:#f4f2e8;font-synthesis:none;--paper:#fffdf1;--green:#304b37;--yellow:#f2c66b}*{box-sizing:border-box}body{margin:0;height:100dvh;min-height:540px;display:flex;flex-direction:column;overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #d39036;outline-offset:4px}button{border:0}svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.icon-defs{position:absolute;width:0;height:0}.header{height:91px;padding:0 32px;display:flex;align-items:center;justify-content:space-between;gap:25px;flex-shrink:0}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:inherit}.brand-mark{background:var(--green);color:#f7efcf;width:39px;height:47px;border-radius:18px 18px 8px 8px;display:grid;place-items:center}.brand-mark svg{width:27px;height:32px;stroke-width:1.4}.brand strong{font-family:'Fraunces',Georgia,serif;letter-spacing:2px;font-size:27px;line-height:1.1}.brand-dot{font-family:Arial;font-size:10px;vertical-align:top;display:inline-block;margin:3px 0 0 3px}.brand small{display:block;font-size:8px;font-weight:700;letter-spacing:2.05px;margin-top:5px}.day{display:flex;align-items:center;gap:10px;font-size:11px;letter-spacing:.5px}.day svg{width:21px;color:#9a793b}.day i{font-style:normal;padding:0 12px;color:#c1c1b0}.weather{color:#778074;font-size:12px;letter-spacing:0}nav{display:flex;gap:12px;align-items:center}.icon-button{position:relative;background:transparent;width:34px;height:34px;border-radius:50%;display:grid;place-items:center}.icon-button:hover{background:#e7e8db}.help-button{border:1.5px solid #52634e;width:21px;height:21px;font-size:13px;font-weight:600}.sound-slash{position:absolute;width:26px;height:1.5px;transform:rotate(-45deg);background:#52634e;border:1px solid #f4f2e8}.nav-line{height:23px;background:#dadcd0;width:1px;margin:0 5px}.pause-button{background:transparent;display:flex;gap:8px;align-items:center;font-size:12px}.pause-button>span:first-child{font-size:21px}#game-shell{position:relative;isolation:isolate;flex:1;margin:0 22px;min-height:0;border-radius:14px;overflow:hidden;background:#749660;box-shadow:0 1px 0 #fff,0 0 0 1px #243f3320}#game{width:100%;height:100%;display:block;outline:none;touch-action:none}.world-vignette{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 110px #263e3733;z-index:1}.paper{background:#fffdf1f5;border:1px solid #ffffffe0;box-shadow:0 4px 18px #20352814}.top-hud{position:absolute;top:25px;left:25px;right:25px;display:flex;align-items:flex-start;justify-content:space-between;pointer-events:none;z-index:2}.quest{width:253px;border-radius:10px;padding:20px}.eyebrow{font-size:9px;letter-spacing:1.6px;font-weight:700;color:#7f8973}.quest h2{font-family:'Fraunces',Georgia,serif;font-size:24px;letter-spacing:-.7px;margin:8px 0 17px;font-weight:500}.quest-line{display:flex;gap:8px;align-items:center;font-size:11px}.quest-line strong{margin-left:auto;font-size:11px;color:#5d7156}.quest-check{height:12px;width:12px;border:1px solid #a0ad90;border-radius:50%;flex-shrink:0}.quest-check.done{background:#718f56;border-color:#718f56}.quest-check.done:after{content:'✓';display:block;color:#fff;font-size:9px;line-height:10px;text-align:center}.quest-progress{height:4px;background:#e4e7d7;border-radius:2px;margin:9px 0 15px 20px;overflow:hidden}.quest-progress span{display:block;background:#90a864;width:0;height:100%;transition:width .3s}.return-line{font-size:10px;color:#7c8675}.return-line svg{width:15px;height:15px;margin-left:auto}.status-column{display:flex;flex-direction:column;align-items:flex-end;gap:9px}.status-pill{display:flex;align-items:center;gap:9px;padding:12px 15px;background:#304a38eF;color:#fff8df;border-radius:30px;font-size:11px;box-shadow:0 4px 10px #20352814}.status-pill svg{width:17px;height:17px}.status-dot{width:6px;height:6px;border-radius:50%;background:#b9d290;margin-left:8px}.status-pill.danger{background:#a74d37}.status-pill.hidden{background:#536e41}.energy{display:flex;align-items:center;gap:8px;padding:10px 13px;border-radius:30px}.energy svg{width:14px;height:14px;color:#7e8e5a}.energy>span:nth-child(2){font-size:8px;letter-spacing:1px;color:#7f876f}.energy-track{height:5px;width:59px;border-radius:10px;background:#e1e5ce;overflow:hidden}.energy-track i{display:block;width:100%;height:100%;background:#93a95f;transition:width .2s}#lives{font-size:11px;color:#ba7651;letter-spacing:2px}.alert-track{height:4px;width:180px;border-radius:3px;background:#243e3318;overflow:hidden}.alert-track span{display:block;height:100%;width:0;background:#e09053;transition:width .1s}.location-tag{position:absolute;top:239px;left:27px;display:flex;align-items:center;gap:7px;color:#fdfce9;text-shadow:0 1px 4px #20432580;font-size:8px;font-weight:700;letter-spacing:1.5px;z-index:2}.location-dot{width:5px;height:5px;background:#f4df9a;border-radius:100%}.bottom-hud{position:absolute;bottom:23px;left:25px;right:25px;display:flex;align-items:flex-end;justify-content:space-between;z-index:2;pointer-events:none}.mini-tip{display:flex;align-items:center;gap:7px;color:#fffde9;font-size:10px;letter-spacing:.2px;text-shadow:0 1px 3px #234529}.mini-tip svg{width:15px;height:15px}.map-button{padding:5px 5px 8px;border-radius:9px;pointer-events:auto;transition:transform .2s}.map-button:hover{transform:translateY(-3px)}.map-button canvas{width:139px;height:93px;display:block;border-radius:5px}.map-button>span{display:flex;align-items:center;justify-content:center;gap:5px;font-size:8px;letter-spacing:1.2px;font-weight:700;padding-top:7px}.map-button svg{width:13px;height:13px}.map-button kbd{margin-left:7px;font-size:8px;padding:2px 3px}.footer{height:55px;padding:0 31px;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-shrink:0}.footer>span:first-child{font-size:8px;letter-spacing:1.1px;color:#858975;font-weight:500;display:flex;gap:7px;align-items:center}.footer-dot{width:5px;height:5px;border-radius:50%;background:#789256}.keyboard-hints{display:flex;gap:20px;font-size:10px;color:#7c8270}.keyboard-hints>span{display:flex;align-items:center;gap:7px}kbd{font-family:inherit;background:#f9f8ef;border:1px solid #dcded0;border-bottom-width:2px;border-radius:4px;color:#65715b;font-size:9px;padding:3px 5px}.footer-note{font-family:'Fraunces',Georgia,serif;font-size:15px;font-style:italic;color:#7a866b}.overlay{position:absolute;inset:0;z-index:6}.overlay[hidden]{display:none!important}.intro-overlay{display:flex;align-items:center;background:linear-gradient(90deg,#203d3942,transparent 85%);padding:28px 7%}.intro-card{position:relative;width:385px;background:#fbf8eb;box-shadow:0 16px 50px #142f353b;padding:25px 33px 23px;border-radius:4px 4px 65px 4px;text-align:center;transform:rotate(-1deg)}.intro-topline{display:flex;justify-content:space-between;align-items:center;gap:10px;border-bottom:1px solid #dce1cc;padding-bottom:15px}.intro-topline .eyebrow{font-size:8px;letter-spacing:1px}.edition{font-size:6px;letter-spacing:1px;color:#919782}.intro-art{height:187px;position:relative;margin-top:12px;overflow:hidden}.intro-art img{height:162px;position:absolute;z-index:2;left:112px;top:15px;transform:rotate(5deg);animation:character-idle 3s ease-in-out infinite}.art-sun{height:139px;width:139px;border-radius:50%;background:#ead6a1;position:absolute;left:87px;top:17px}.art-ground{height:44px;width:270px;border-radius:50%;position:absolute;top:170px;left:25px;background:#d6ddbd}.character-shadow{width:80px;height:13px;border-radius:50%;position:absolute;left:125px;top:171px;background:#a2b190;z-index:2}.art-pine{color:#819c73;position:absolute;font-size:110px;transform:scaleX(.65);line-height:1;left:7px;top:70px;z-index:1}.p2{font-size:77px;left:230px;top:108px;color:#a8b28a}.art-note{font-family:Georgia,serif;font-style:italic;color:#869274;font-size:11px;text-align:left;position:absolute;left:0;top:55px;transform:rotate(-9deg)}.art-note span{display:block;margin-left:65px;font-size:21px;transform:rotate(65deg)}.intro-eyebrow{display:block;margin-top:14px;font-size:8px;color:#8c985f;letter-spacing:2px}h1{font-family:'Fraunces',Georgia,serif;font-weight:500;font-size:49px;line-height:1.04;letter-spacing:-2.5px;margin:10px 0 14px}.intro-card p{font-size:12px;line-height:1.8;color:#7e826f;margin:0 0 23px}.primary-button{display:flex;align-items:center;justify-content:space-between;gap:30px;background:#34523b;color:#fff9e5;padding:16px 20px;border-radius:6px;font-size:12px;font-weight:500;width:100%;transition:background .2s,transform .2s;box-shadow:0 3px 0 #233f2d}.primary-button:hover{background:#456744;transform:translateY(-1px)}.primary-button svg{width:18px;height:18px}.intro-footer{margin-top:18px;font-size:9px;color:#929782;letter-spacing:.4px}.tiny-leaf{color:#a9ad6d;margin-right:5px}.world-caption{position:absolute;bottom:35px;right:34px;display:flex;align-items:center;gap:13px;color:#fff6da;font-size:9px;font-weight:600;letter-spacing:2px;text-shadow:0 2px 5px #30482e}.caption-line{height:1px;width:35px;background:#fff6da}.world-caption small{display:block;font-family:'Fraunces',Georgia,serif;font-style:italic;font-weight:400;font-size:15px;letter-spacing:0;margin-top:7px}body:not(.started) .playing-only{display:none!important}body:not(.started) #pause{opacity:.4}#toast{position:absolute;left:50%;top:30px;transform:translate(-50%,-12px);background:#fffbe9;color:#465339;padding:12px 20px;border-radius:8px;font-size:12px;box-shadow:0 5px 22px #1e342a25;opacity:0;transition:opacity .2s,transform .2s;pointer-events:none;z-index:5;max-width:90%;text-align:center}#toast.visible{opacity:1;transform:translate(-50%,0)}#interaction{position:absolute;left:50%;top:59%;transform:translate(-50%,20px);border:1px solid #ffffff70;background:#2c4437ee;color:#fff8df;padding:8px 12px 8px 8px;border-radius:7px;display:flex;gap:9px;align-items:center;font-size:11px;opacity:0;pointer-events:none;z-index:3;white-space:nowrap}#interaction.visible{opacity:1}#interaction kbd{background:#fcf6df;color:#394c36;font-weight:700}.dialog-overlay{background:#173c365c;backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;padding:20px}.dialog-card{width:440px;max-height:100%;overflow:auto;padding:33px;border-radius:14px;position:relative}.close-button{position:absolute;right:16px;top:12px;background:transparent;color:#7b8870;font-size:26px;border-radius:5px;line-height:1;width:30px;height:30px}.dialog-card h2,.map-card h2{font-family:'Fraunces',Georgia,serif;font-size:33px;line-height:1.12;letter-spacing:-1px;font-weight:500;margin:12px 0 22px}.dialog-card p{font-size:13px;line-height:1.7;color:#737f65}.guide-row{display:flex;align-items:center;gap:16px;border-top:1px solid #e3e7d6;padding:12px 0;font-size:12px;color:#596b50}.guide-row>span{flex:1}.guide-row strong{display:block;color:#364c35;font-weight:600;margin-bottom:3px}.guide-row kbd{min-width:50px;text-align:center;padding:7px}.guide-tip{background:#e9eddc;border-radius:6px;padding:12px;font-size:11px!important}.dialog-card .primary-button{margin-top:24px}.score-grid{display:flex;gap:10px;margin:20px 0}.score-grid>div{flex:1;background:#ebedda;border-radius:8px;text-align:center;padding:15px;font-size:10px}.score-grid strong{font:30px 'Fraunces',Georgia,serif;display:block;margin-bottom:6px}.result-character{height:100px;display:block;margin:0 auto 15px}.map-card{width:min(820px,95vw);max-height:100%;overflow:auto;padding:26px;position:relative;border-radius:12px}.map-card h2{margin:10px 0 20px}.map-card>canvas{width:100%;max-height:55vh;object-fit:contain;display:block;background:#d6dab1;border-radius:8px}.map-legend{display:flex;gap:24px;justify-content:center;font-size:10px;margin-top:17px}.map-legend span{display:flex;align-items:center;gap:6px}.map-legend i{width:8px;height:8px;display:inline-block;border-radius:50%}.legend-player{background:#fff;border:2px solid #426444}.legend-food{background:#dba955}.legend-home{background:#425c3d}.map-card>p{text-align:center;font-size:10px;color:#859077;margin-bottom:0}#touch-controls{display:none;position:absolute;inset:auto 25px 29px;align-items:flex-end;justify-content:space-between;pointer-events:none;z-index:4}#joystick{height:103px;width:103px;border:2px solid #fff6d957;border-radius:50%;background:#2b4b372d;display:grid;place-items:center;touch-action:none;pointer-events:auto}#joystick-knob{height:44px;width:44px;background:#fff8df9e;border:1px solid #fff8dfc4;border-radius:50%;box-shadow:0 2px 8px #26392444}.touch-actions{display:flex;align-items:flex-end;gap:12px}.touch-actions button{border-radius:50%;width:63px;height:63px;background:#fff8e5dd;border:2px solid #fff8e5;font-size:11px;pointer-events:auto;touch-action:none}.touch-actions button.active{background:#718858;color:white}#touch-interact{width:78px;height:78px;background:#eed393ee;font-size:13px}@keyframes character-idle{50%{transform:rotate(2deg) translateY(-4px)}}@media(max-height:800px){.intro-card{padding-top:20px;padding-bottom:18px;width:345px}.intro-art{height:147px;margin-top:7px}.intro-art img{height:137px;top:4px;left:94px}.art-sun{height:115px;width:115px;left:78px;top:10px}.art-ground{top:131px;left:5px}.character-shadow{top:134px;left:97px}.art-pine{top:45px;left:0}.p2{left:200px;top:80px}.art-note{top:35px;font-size:10px}.intro-eyebrow{margin-top:10px}h1{font-size:43px;margin:9px 0 12px}.intro-card p{margin-bottom:17px}.intro-footer{margin-top:14px}.header{height:78px}.footer{height:47px}}@media(max-width:1000px){.day{display:none}.footer>span:first-child{display:none}.footer{justify-content:space-between}.intro-overlay{padding-left:5%}.world-caption{right:25px}.keyboard-hints{gap:13px}}@media(pointer:coarse){#touch-controls{display:flex}.keyboard-hints{display:none}.mini-tip{display:none}.bottom-hud{bottom:145px;right:19px}.map-button canvas{width:100px;height:64px}.map-button>span{font-size:6px}.map-button kbd{display:none}.footer>span:first-child{display:flex}.intro-overlay{justify-content:center}.world-caption{display:none}}@media(max-width:600px){body{min-height:480px}.header{height:70px;padding:0 18px;gap:10px}.brand strong{font-size:22px;letter-spacing:1px}.brand small{font-size:6px;letter-spacing:1.6px}.brand-mark{width:32px;height:38px}.brand-mark svg{width:23px}.brand{gap:8px}nav{gap:10px}.nav-line{display:none}.pause-label{display:none}#game-shell{margin:0 8px;border-radius:10px}.footer{height:34px;padding:0 15px}.footer-note{font-size:12px}.footer>span:first-child{font-size:6px;letter-spacing:.6px}.top-hud{top:13px;left:13px;right:13px;gap:10px}.quest{width:181px;padding:12px}.quest>.eyebrow{font-size:6px;letter-spacing:1px}.quest h2{font-size:20px;margin:6px 0 12px}.quest-line{font-size:9px;gap:5px}.quest-line strong{font-size:9px}.quest-progress{margin:7px 0 11px 16px}.return-line{font-size:8px}.return-line svg{display:none}.quest-check{width:10px;height:10px}.status-pill{padding:9px;gap:6px;font-size:9px}.status-dot{display:none}.status-pill svg{width:14px;height:14px}.energy{padding:8px;gap:5px}.energy>span:nth-child(2){display:none}.energy-track{width:38px}#lives{font-size:9px;letter-spacing:0}.alert-track{width:115px}.location-tag{top:177px;left:15px;font-size:6px}.intro-overlay{padding:17px;justify-content:center}.intro-card{width:320px;padding:20px 26px}.intro-topline{padding-bottom:12px}.intro-art img{left:88px}.art-sun{left:71px}.character-shadow{left:91px}.art-note{font-size:9px}.world-caption{display:none}.dialog-card{padding:26px}.dialog-card h2,.map-card h2{font-size:28px}.map-card{padding:20px}.map-legend{gap:12px;font-size:8px}.keyboard-hints{gap:8px;font-size:8px}.keyboard-hints>span{gap:4px}.keyboard-hints kbd{font-size:7px;padding:2px}.keyboard-hints>span:last-child{display:none}#toast{top:174px;width:max-content;font-size:10px}#touch-controls{inset:auto 20px 23px}#interaction{font-size:10px}}@media(max-height:640px){.intro-art{height:100px}.intro-art img{height:96px;left:104px;top:0}.art-sun{height:85px;width:85px;left:90px;top:4px}.art-ground{top:90px}.character-shadow{top:91px;left:110px;width:55px}.art-pine{top:33px;font-size:75px;left:25px}.p2{left:190px;top:50px;font-size:55px}.art-note{top:20px}.intro-card{padding:16px 27px;width:330px}.intro-topline{padding-bottom:10px}.intro-eyebrow{margin-top:6px}h1{font-size:35px;margin:8px 0}.intro-card p{font-size:11px;margin-bottom:12px}.primary-button{padding:13px 17px}.intro-footer{margin-top:11px;font-size:8px}.header{height:64px}.footer{height:32px}}

/* The field journal: warm paper, quiet controls, and plenty of room for the woods. */
:root{--ink:#304b37;--muted:#77816d;--line:#dfe4d1;--safe-bottom:env(safe-area-inset-bottom,0px)}
body{min-height:0}
button{user-select:none}
button:disabled{cursor:default}
button:focus-visible,a:focus-visible{outline:3px solid #c98b35;outline-offset:4px}
.header{padding-left:max(24px,env(safe-area-inset-left));padding-right:max(24px,env(safe-area-inset-right))}
.brand strong{font-weight:500}
.icon-button{width:36px;height:36px}
.help-button{width:25px;height:25px}
.pause-button{min-height:36px}
.intro-card{max-height:100%;overflow:auto;scrollbar-width:thin;scrollbar-color:#c2cbb0 transparent}
.intro-card p{color:#68755f;margin-bottom:13px}
.intro-chapters{display:flex;align-items:center;justify-content:center;gap:8px;margin:0 -10px 21px;font-size:8px;color:#718067;letter-spacing:.1px}
.intro-chapters span{white-space:nowrap}
.intro-chapters i{font-style:normal;color:#a7b08e}
.edition{letter-spacing:.6px}
.intro-footer{font-size:8px;letter-spacing:.2px}
.quest{background:#fffdf1f2;backdrop-filter:blur(10px)}
.quest h2{line-height:1.12}
.quest-line{line-height:1.5}
.quest-line>span:not(.quest-check){min-width:0}
.quest-line strong{white-space:nowrap;padding-left:3px}
.quest-check.done:after{line-height:11px}
.extra-quests{display:grid;gap:10px;margin:0 0 15px}
.extra-quests:empty{display:none}
.extra-quest{font-size:10px}
.extra-quest strong{font-size:10px}
.return-line{border-top:1px solid #dbe1cb;padding-top:12px}
.location-tag{max-width:280px;line-height:1.5}
#lives{font-size:9px;letter-spacing:.4px;color:#7c885e;text-transform:uppercase}
.energy{white-space:nowrap}
.status-pill{max-width:245px;line-height:1.4}
.status-pill.danger{background:#946335}
.status-pill.hidden{background:#526d42}
.status-column{min-width:0}
.status-column .alert-track{max-width:100%}
.camera-toolbar{position:absolute;z-index:3;left:50%;bottom:24px;transform:translateX(-50%);display:flex;align-items:center;gap:8px;pointer-events:auto}
.camera-toolbar button{display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;border:1px solid #fffdf1d9;border-radius:8px;background:#fffbedf2;padding:11px 15px;font-size:11px;font-weight:600;color:#3d533a;box-shadow:0 3px 14px #183e2929;transition:background .2s,transform .2s,box-shadow .2s;white-space:nowrap;backdrop-filter:blur(8px)}
.camera-toolbar button:hover{background:#fffdf1;transform:translateY(-2px);box-shadow:0 5px 17px #183e2930}
.camera-toolbar button:active{transform:translateY(1px)}
.camera-toolbar button[hidden]{display:none!important}
.camera-toolbar button:disabled{opacity:.55;transform:none;box-shadow:none}
.camera-toolbar button svg{width:18px;height:18px;stroke-width:1.7}
.camera-toolbar button kbd{margin-left:4px;font-size:9px;font-weight:400;padding:2px 5px;background:#fffff680}
#photo-button{background:#314e3bf2;color:#fff9df;border-color:#eaf0d433}
#photo-button:hover{background:#456447}
#photo-button kbd{background:#ffffff12;border-color:#ffffff35;color:#f9f1d5}
#journal-button>b{min-width:18px;height:18px;display:inline-grid;place-items:center;border-radius:50%;background:#e5e9d3;color:#698052;font-size:9px}
body:not(.started) .camera-toolbar{display:none}
.dialog-card{width:min(520px,100%);background:#fffdf3;box-shadow:0 20px 65px #133b3645;scrollbar-width:thin;scrollbar-color:#c2cbb0 transparent}
.dialog-card h2{padding-right:12px}
.close-button{width:36px;height:36px;right:12px;top:10px}
.close-button:hover{background:#edf0df}
.dialog-card p{color:#65735e}
.journal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin:22px 0}
.journal-photo{min-width:0;position:relative;padding:8px 8px 12px;border:1px solid #e1e3d0;background:#fffcf0;box-shadow:0 3px 7px #3d533710;border-radius:3px;text-align:center;transform:rotate(-1deg)}
.journal-photo:nth-child(2n){transform:rotate(1deg)}
.journal-photo:nth-child(3n){transform:rotate(.5deg)}
.journal-photo img{display:block;width:100%;aspect-ratio:1.45;object-fit:cover;border-radius:2px;background:#cbd7aa}
.journal-photo h3{font-family:'Fraunces',Georgia,serif;font-size:17px;line-height:1.2;font-weight:500;letter-spacing:-.2px;margin:10px 0 5px;color:#3d553b}
.photo-stars{font-size:11px;letter-spacing:3px;color:#c9923e}
.journal-photo.empty{min-height:145px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px dashed #cbd3bb;box-shadow:none;background:#f0f1e5b3;color:#96a384;transform:none}
.journal-photo.empty>svg{width:30px;height:30px;margin:7px;stroke-width:1.1}
.journal-photo.empty h3{color:#899779;font-size:15px;margin:8px 0}
.journal-photo.empty p{font-size:10px;line-height:1.5;margin:0;color:#899779}
.journal-photo.empty .photo-stars{color:#c8ceb8}
.chapter-list{display:grid;gap:9px;margin-top:18px}
.chapter-row{display:flex;align-items:center;gap:13px;width:100%;padding:13px 14px;text-align:left;background:#f0f2e4;border:1px solid #e1e6d0;border-radius:8px;transition:background .2s,transform .2s}
button.chapter-row:hover{background:#e7edd7;transform:translateX(2px)}
.chapter-row.active,.chapter-row.current{background:#e4ebd3;border-color:#aebf93}
.chapter-row:disabled{opacity:.6;transform:none}
.chapter-number{display:grid;place-items:center;flex-shrink:0;width:35px;height:35px;border-radius:50%;border:1px solid #b6c6a0;font-family:'Fraunces',Georgia,serif;color:#5c7750;font-size:18px;background:#ffffff57}
.chapter-row>div{min-width:0;flex:1}
.chapter-row strong{display:block;font-size:12px;font-weight:600;color:#3d5838;line-height:1.4}
.chapter-row small{display:block;margin-top:3px;font-size:10px;line-height:1.5;color:#7b896d}
.chapter-row svg{width:17px;height:17px;color:#7a9165}
.chapter-banner{position:absolute;z-index:4;top:26px;left:50%;transform:translateX(-50%);max-width:min(360px,calc(100% - 40px));padding:16px 25px;text-align:center;background:#fffbedf2;border:1px solid #fffef3;border-radius:10px;box-shadow:0 5px 22px #23422b20;pointer-events:none;backdrop-filter:blur(10px)}
.chapter-banner[hidden]{display:none}
.chapter-banner h2,.chapter-banner h3{font-family:'Fraunces',Georgia,serif;font-weight:500;font-size:25px;margin:5px 0}
.chapter-banner p{font-size:11px;line-height:1.5;color:#738065;margin:5px 0 0}
#toast{top:auto;bottom:88px;max-width:min(430px,calc(100% - 36px));padding:11px 18px;line-height:1.5;pointer-events:none}
#interaction{max-width:calc(100% - 32px);white-space:normal;text-align:left;line-height:1.4}
#interaction kbd{flex-shrink:0}
#touch-controls{padding-bottom:var(--safe-bottom)}
.map-button{transition:transform .2s,box-shadow .2s}
.map-button:hover{box-shadow:0 7px 20px #17352330}
.footer-note{white-space:nowrap}
.keyboard-hints{gap:15px;white-space:nowrap}
.footer>span:first-child{font-size:7px;letter-spacing:.8px}

@media(min-width:1200px){.camera-toolbar{bottom:28px}.footer{padding-left:33px;padding-right:33px}}
@media(max-width:1120px){.footer>span:first-child{display:none}.keyboard-hints{gap:14px}.footer{justify-content:space-between}.mini-tip{font-size:9px;max-width:210px;line-height:1.5}}
@media(max-width:800px){.camera-toolbar{left:auto;right:190px;transform:none;bottom:24px}.camera-toolbar button{padding:10px 12px;gap:6px}.camera-toolbar button kbd{display:none}.mini-tip{display:none}.dialog-card{width:460px}.intro-chapters{margin-bottom:17px}}
@media(max-width:600px){
  .header{padding:0 16px;height:66px}
  .brand strong{font-size:21px}
  .brand small{font-size:5.7px;letter-spacing:1.4px}
  .brand{gap:7px}
  nav{gap:7px}
  .icon-button{width:32px;height:36px}
  .help-button{width:24px;height:24px}
  .pause-button{padding:0 3px;min-width:24px;justify-content:center}
  #game-shell{margin:0 7px;border-radius:11px}
  .footer{height:33px;padding:0 13px}
  .footer-note{font-size:12px}
  .footer>span:first-child{font-size:5.5px;letter-spacing:.5px}
  .keyboard-hints{gap:8px;font-size:8px}
  .keyboard-hints>span{gap:3px}
  .keyboard-hints>span:last-child{display:none}
  .top-hud{top:12px;left:12px;right:12px;gap:8px}
  .quest{width:178px;flex-shrink:0;padding:12px}
  .quest h2{font-size:20px;line-height:1.12;margin:7px 0 12px}
  .quest-line{font-size:9px;line-height:1.45;gap:6px}
  .quest-line strong{font-size:9px}
  .extra-quests{gap:8px;margin-bottom:11px}
  .return-line{font-size:8px;padding-top:9px}
  .quest-check.done:after{line-height:9px;font-size:8px}
  .status-column{gap:7px}
  .status-pill{font-size:8px;padding:8px 9px;gap:5px;max-width:139px}
  .status-pill svg{width:13px;height:13px}
  .energy{padding:7px 9px;gap:5px}
  .energy-track{width:33px}
  #lives{font-size:7px;letter-spacing:.3px}
  .alert-track{width:108px}
  .location-tag{left:15px;font-size:6px;letter-spacing:1px;max-width:175px}
  .camera-toolbar{right:15px;bottom:153px;gap:6px}
  .camera-toolbar button{min-height:38px;font-size:9px;padding:9px 10px;gap:5px;border-radius:7px}
  .camera-toolbar button svg{width:15px;height:15px}
  #journal-button>b{height:15px;min-width:15px;font-size:8px}
  .bottom-hud{right:15px;bottom:207px}
  .map-button{padding:4px 4px 7px}
  .map-button canvas{width:92px;height:61px}
  .map-button>span{font-size:6px;gap:4px;letter-spacing:.9px}
  .map-button>span svg{height:11px;width:11px}
  .map-button kbd{display:none}
  .intro-overlay{padding:18px 20px}
  .intro-card{width:min(330px,100%);padding:19px 24px 20px;border-bottom-right-radius:48px}
  .intro-art{margin-left:auto;margin-right:auto;width:270px;max-width:100%}
  .intro-art img{left:88px}
  .intro-card p{font-size:11px;line-height:1.75;margin-bottom:12px}
  .intro-chapters{font-size:7px;gap:6px;margin-bottom:18px}
  .intro-footer{font-size:7px;margin-top:16px}
  .edition{font-size:5px;letter-spacing:.3px}
  .intro-topline .eyebrow{font-size:7px;letter-spacing:.8px}
  .dialog-overlay{padding:16px}
  .dialog-card{padding:25px 22px 23px;border-radius:11px}
  .dialog-card h2{font-size:29px;margin:11px 0 20px}
  .dialog-card p{font-size:12px;line-height:1.7}
  .dialog-card .primary-button{margin-top:20px}
  .journal-grid{gap:10px;margin:20px 0}
  .journal-photo{padding:6px 6px 10px}
  .journal-photo h3{font-size:15px}
  .journal-photo.empty{min-height:125px}
  .chapter-row{padding:12px;gap:10px}
  .chapter-number{width:30px;height:30px;font-size:16px}
  .chapter-banner{top:auto;bottom:205px;padding:12px 17px}
  #toast{top:auto;bottom:206px;width:max-content;max-width:calc(100% - 30px);font-size:10px;padding:9px 14px;z-index:5}
  #touch-controls{left:16px;right:16px;bottom:22px}
  #joystick{width:96px;height:96px}
  .touch-actions{gap:9px}
  .touch-actions button{width:56px;height:56px;font-size:10px}
  #touch-interact{width:70px;height:70px;font-size:11px}
  #interaction{font-size:10px;max-width:calc(100% - 25px)}
}
@media(pointer:coarse){
  .camera-toolbar{left:auto;right:20px;bottom:150px;transform:none}
  .camera-toolbar button{min-height:42px;padding:10px 12px}
  .camera-toolbar button kbd{display:none}
  .bottom-hud{right:20px;bottom:210px}
  .mini-tip{display:none}
  .footer>span:first-child{display:flex}
  #toast{bottom:210px;top:auto}
}
@media(max-height:740px) and (min-height:521px){
  .intro-card{padding-top:16px;padding-bottom:17px}
  .intro-art{height:126px}
  .intro-art img{height:118px;top:2px;left:99px}
  .art-sun{height:104px;width:104px;left:86px;top:6px}
  .art-ground{top:114px}
  .character-shadow{top:116px;left:107px;width:62px}
  .art-pine{font-size:83px;top:42px;left:17px}
  .p2{font-size:65px;top:69px;left:198px}
  .art-note{top:28px;font-size:9px}
  .intro-eyebrow{margin-top:8px;font-size:7px}
  h1{font-size:39px;margin:9px 0 10px}
  .intro-card p{font-size:11px;margin-bottom:10px}
  .intro-chapters{margin-bottom:16px}
  .intro-footer{margin-top:13px;font-size:7px}
  .primary-button{padding:13px 17px}
}
@media(max-width:370px){
  .header{padding:0 12px}
  .brand strong{font-size:19px}
  .brand small{font-size:5px;letter-spacing:1.15px}
  .brand-mark{width:28px;height:34px}
  nav{gap:3px}
  .top-hud{left:10px;right:10px;gap:7px}
  .quest{width:166px;padding:11px}
  .status-pill{padding:8px 7px;font-size:7px}
  .energy{padding:7px;gap:4px}
  .energy-track{width:25px}
  .status-pill svg{display:none}
  .alert-track{width:93px}
  .camera-toolbar{right:13px;gap:5px}
  .camera-toolbar button{padding:9px;min-height:38px;font-size:8px}
  .camera-toolbar button svg{height:14px;width:14px}
  #journal-button>b{display:none}
  .intro-card{padding-left:20px;padding-right:20px}
  .intro-art{width:260px}
  .intro-topline .eyebrow{font-size:6px}
  .intro-chapters{font-size:6px;gap:5px}
}
@media(max-height:520px){
  .header{height:55px}
  .footer{height:26px}
  .intro-overlay{padding:12px 5%}
  .intro-card{width:320px;padding:15px 25px;transform:rotate(-.5deg)}
  .intro-topline{padding-bottom:9px}
  .intro-art{display:none}
  .intro-eyebrow{margin-top:13px;font-size:7px}
  h1{font-size:34px;margin:8px 0}
  .intro-card p{font-size:10px;line-height:1.6;margin-bottom:9px}
  .intro-chapters{font-size:7px;margin-bottom:13px}
  .intro-footer{font-size:7px;margin-top:11px}
  .primary-button{padding:11px 15px}
  .dialog-overlay{padding:12px}
  .dialog-card{padding-top:24px;padding-bottom:22px}
  .top-hud{top:12px;left:14px;right:14px}
  .quest{padding:12px 14px;width:219px}
  .quest>.eyebrow{font-size:7px}
  .quest h2{font-size:21px;margin:6px 0 10px}
  .quest-line{font-size:9px}
  .quest-line strong{font-size:9px}
  .extra-quests{gap:5px;margin-bottom:8px}
  .quest-progress{margin-top:6px;margin-bottom:9px}
  .return-line{font-size:8px;padding-top:8px}
  .status-pill{font-size:9px;padding:8px 11px}
  .energy{padding:7px 10px}
  .status-column{gap:6px}
  .location-tag{display:none}
  .mini-tip{display:none}
  .camera-toolbar{left:50%;right:auto;bottom:17px;transform:translateX(-50%);gap:6px}
  .camera-toolbar button{min-height:36px;font-size:9px;padding:8px 10px}
  .camera-toolbar button kbd{display:none}
  .bottom-hud{bottom:16px;right:16px}
  .map-button canvas{display:none}
  .map-button{padding:10px 12px}
  .map-button>span{font-size:7px;padding:0}
  #toast{bottom:66px;font-size:10px;padding:8px 12px}
  .chapter-banner{top:auto;bottom:65px;padding:10px 20px}
  .chapter-banner h2,.chapter-banner h3{font-size:22px}
}
@media(max-height:520px) and (pointer:coarse){
  #touch-controls{bottom:15px;left:20px;right:20px}
  #joystick{width:78px;height:78px}
  #joystick-knob{width:36px;height:36px}
  .touch-actions button{width:49px;height:49px;font-size:9px}
  #touch-interact{width:63px;height:63px;font-size:10px}
  .camera-toolbar{top:104px;bottom:auto;left:auto;right:16px;transform:none}
  .bottom-hud{top:150px;bottom:auto;right:16px}
  .map-button{padding:9px 11px}
  #toast{bottom:30px;max-width:280px}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}
  .intro-card,.journal-photo,.journal-photo:nth-child(2n),.journal-photo:nth-child(3n){transform:none}
  button:hover,.map-button:hover,button.chapter-row:hover{transform:none}
}

/* Match dynamic game UI markup and keep hidden objectives out of layout. */
[hidden]{display:none!important}
.map-button{margin-left:auto}
.photo-placeholder{display:grid;place-items:center;width:48px;height:39px;margin:2px 0 5px;color:#9eae89}
.photo-placeholder svg{width:29px;height:29px;stroke-width:1.2}
.journal-photo.empty .photo-stars{font-size:9px;line-height:1.5;letter-spacing:.1px;padding:0 4px;color:#91a17d}

/* Fullscreen keeps a compact control bar and gives the remaining space to play. */
html:fullscreen{background:var(--paper)}
html:-webkit-full-screen{background:var(--paper)}
body.fullscreen-mode{height:100dvh;min-height:0}
.fullscreen-mode .header{height:58px;padding-top:env(safe-area-inset-top);height:calc(58px + env(safe-area-inset-top))}
.fullscreen-mode #game-shell{margin:0;border-radius:0;box-shadow:none}
.fullscreen-mode .footer{display:none}
#fullscreen[aria-pressed="true"]{background:#e3e9d6}
@media(max-width:600px){
  .header{gap:6px;padding-left:12px;padding-right:12px}
  .header nav{gap:4px;flex-shrink:0}
  .header .brand{min-width:0}
  .header .brand strong{font-size:20px;letter-spacing:1px}
  .header .brand small{font-size:5px;letter-spacing:1.2px}
  .fullscreen-mode .header{height:calc(54px + env(safe-area-inset-top))}
}
@media(max-width:350px){
  .header .brand-mark{display:none}
  .header .brand strong{font-size:19px}
}

/* Clear, friendly instructions: the same three lines on every outing. */
body{font-size:18px}
.top-hud{gap:24px}
.quest{width:350px;padding:20px 22px;border-radius:14px;flex-shrink:0}
.quest>.eyebrow{font-size:11px;letter-spacing:1.1px;color:#67775b}
.quest h2{font-size:29px;line-height:1.1;margin:9px 0 15px}
.mission-summary{display:grid;gap:10px;margin:0 0 18px;padding:14px 0 16px;border-top:1px solid #dce3cc;border-bottom:1px solid #dce3cc}
.mission-instruction{display:grid;grid-template-columns:83px minmax(0,1fr);align-items:start;gap:10px}
.mission-instruction>span,.mission-instruction>label{font-size:11px;line-height:1.55;font-weight:700;letter-spacing:.8px;color:#6d7f5b;padding-top:3px}
.mission-instruction>strong{font-size:18px;line-height:1.3;font-weight:600;letter-spacing:-.2px;color:#304b37;overflow-wrap:break-word}
.mission-do-row>strong{color:#243e2d}
.mission-do-row>span{color:#527348}
.mission-button{display:flex;align-items:center;justify-content:center;gap:10px;pointer-events:auto;width:100%;min-height:46px;margin-top:16px;background:#e8eedb;border:1px solid #c9d6b5;border-radius:8px;color:#385535;font-size:17px;font-weight:600;transition:background .18s,transform .18s}
.mission-button:hover{background:#dce6ca;transform:translateY(-1px)}
.mission-button svg{width:19px;height:19px}
.mission-button kbd{margin-left:auto;font-size:12px;line-height:1.2;padding:3px 7px;background:#f5f7eb}
.mission-button>span{margin-right:auto}
.quest-line,.quest-line strong,.extra-quest,.extra-quest strong{font-size:14px;line-height:1.45}
.quest-check{height:16px;width:16px}
.quest-check.done:after{font-size:12px;line-height:14px}
.quest-progress{height:5px;margin:9px 0 13px 24px}
.extra-quests{gap:9px;margin-bottom:12px}
.return-line{padding-top:12px;color:#5b6e50}
.status-pill{font-size:15px;padding:12px 16px;max-width:280px}
.status-pill svg{width:20px;height:20px}
.energy>span:nth-child(2){font-size:11px}
#lives{font-size:11px;letter-spacing:.4px}
.location-tag{font-size:11px;letter-spacing:1px;max-width:345px}
.mini-tip{font-size:13px;max-width:320px;line-height:1.4}
.camera-toolbar{gap:9px}
.camera-toolbar button{font-size:16px;min-height:48px;padding:12px 15px}
.camera-toolbar button kbd{font-size:12px}
.camera-toolbar button svg{width:21px;height:21px}
#journal-button>b,.inventory-button>b,#inventory-button>b{font-size:12px;min-width:22px;height:22px;display:inline-grid;place-items:center;border-radius:50%;background:#e5e9d3;color:#526d43}
.map-button>span{font-size:11px;letter-spacing:.6px}
.map-button kbd{font-size:10px}
.keyboard-hints{font-size:13px;gap:15px}
.keyboard-hints kbd{font-size:11px}
#toast{font-size:17px;max-width:min(550px,calc(100% - 40px));padding:14px 20px;bottom:93px}
#interaction{font-size:18px;padding:12px 16px 12px 11px;gap:11px;border-radius:9px;box-shadow:0 5px 20px #233a332b}
#interaction kbd{font-size:16px;padding:5px 9px}
.touch-actions button{font-size:15px}
#touch-interact{font-size:16px}

/* Reading screens have generous type and a clear way back to play. */
.dialog-card{width:min(630px,100%);padding:32px}
.dialog-card>.eyebrow,.map-card>.eyebrow{font-size:12px;letter-spacing:1.1px}
.dialog-card h2,.map-card h2{font-size:36px;line-height:1.13;margin:12px 0 22px}
.dialog-card p{font-size:18px;line-height:1.55}
.close-button{width:44px;height:44px;font-size:31px;right:10px;top:8px}
.primary-button,.secondary-button{min-height:50px;font-size:18px;font-weight:600;line-height:1.3;padding:14px 20px;border-radius:8px}
.primary-button svg,.secondary-button svg{width:21px;height:21px}
.secondary-button{display:flex;align-items:center;justify-content:center;gap:11px;width:100%;background:#edf0e0;border:1px solid #d2dbc1;color:#47603d;transition:background .2s,transform .2s}
.secondary-button:hover{background:#e0e8cf;transform:translateY(-1px)}
.secondary-button:active{transform:translateY(1px)}
.secondary-button:disabled,.primary-button:disabled{opacity:.5;transform:none;box-shadow:none}
.dialog-card .secondary-button{margin-top:12px}
.guide-row{font-size:17px;line-height:1.4;padding:16px 0}
.guide-row kbd{font-size:14px;padding:8px;min-width:59px}
.guide-tip{font-size:16px!important;line-height:1.5;padding:16px}
.mission-detail{display:grid;gap:12px;margin:22px 0}
.mission-detail .mission-instruction{display:block;padding:17px 20px;background:#eef2e2;border:1px solid #dde5cc;border-left:4px solid #a4b986;border-radius:3px 10px 10px 3px}
.mission-detail .mission-instruction>span,.mission-detail .mission-instruction>label{display:block;padding:0;margin-bottom:7px;font-size:12px;letter-spacing:1px}
.mission-detail .mission-instruction>strong{display:block;font-size:23px;line-height:1.35;letter-spacing:-.3px}
.mission-detail .mission-instruction:nth-child(2){background:#e4ecd7;border-left-color:#6f9053}
.mission-detail+.guide-tip{margin-bottom:0}
.score-grid>div{font-size:15px;padding:18px 12px}
.score-grid strong{font-size:35px}
.chapter-row{padding:16px;gap:15px}
.chapter-row strong{font-size:17px}
.chapter-row small{font-size:14px;line-height:1.4}
.chapter-number{width:40px;height:40px;font-size:22px}
.journal-photo h3{font-size:21px}
.journal-photo.empty h3{font-size:18px}
.journal-photo.empty p,.journal-photo.empty .photo-stars{font-size:13px}
.photo-stars{font-size:15px}
.map-legend{font-size:15px;flex-wrap:wrap;gap:12px 22px}
.map-card>p{font-size:15px;line-height:1.5}
.chapter-banner p{font-size:16px}
.chapter-banner{max-width:min(420px,calc(100% - 40px))}

/* Keep the hand-made title card, with buttons children can read and tap. */
.intro-card{width:410px;padding:24px 32px 23px}
.intro-card p{font-size:17px;line-height:1.55;margin-bottom:13px}
.intro-chapters{font-size:10px;margin-bottom:18px;gap:7px}
.intro-footer{font-size:11px;line-height:1.4;margin-top:16px}
#intro-fullscreen{margin-top:12px;min-height:46px;font-size:17px}
.intro-topline .eyebrow{font-size:10px;letter-spacing:.6px}
.edition{font-size:7px;letter-spacing:.3px}
.intro-eyebrow{font-size:10px;letter-spacing:1.2px}

/* One familiar open-container panel, dressed in a few woodland materials. */
.container-overlay{z-index:8;background:#16372e70;backdrop-filter:blur(3px);--container-body:#90aba7;--container-rim:#c6d9c9;--container-inner:#eaf0db;--container-shadow:#587b71;--container-accent:#638a74}
.container-card{position:relative;width:min(740px,100%);max-height:100%;overflow:auto;padding:28px 32px 23px;border-radius:17px;background:#fffdf2;box-shadow:0 24px 80px #112b2f50;scrollbar-width:thin;scrollbar-color:#becbab transparent}
.container-heading{text-align:center;padding:0 27px}
.container-heading .eyebrow{font-size:11px;letter-spacing:1.6px;color:#81916c}
.container-heading h2{font:500 36px/1.15 'Fraunces',Georgia,serif;letter-spacing:-.8px;margin:9px 0}
.container-heading p{font-size:18px;line-height:1.45;color:#6e7c61;margin:0 0 20px}
.container-stage{position:relative;border-radius:17px 17px 23px 23px;padding:0 20px 24px;border:8px solid var(--container-rim);border-top-width:6px;background:var(--container-body);box-shadow:inset 0 -7px 0 #233c321c,0 7px 0 var(--container-shadow),0 13px 15px #304d3420}
.container-art{height:86px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.container-art:empty{height:35px}
.container-art>svg{width:100%;max-width:420px;height:100%;fill:none;stroke:none}
#container-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;border-radius:13px;padding:16px;background:var(--container-inner);box-shadow:inset 0 4px 9px #233c3220;border:1px solid #ffffff55}
#container-slots:has(>.container-slot:nth-child(5)){grid-template-columns:repeat(3,minmax(0,1fr))}
.container-slot{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-width:0;min-height:167px;padding:12px 8px;background:#fffdf2;border:2px solid #d1d9bd;border-radius:10px;color:#3f5639;box-shadow:0 3px 0 #4a62301b;transition:border-color .16s,background .16s,transform .16s}
.container-slot:hover{border-color:#9aad7d;background:#fffef6;transform:translateY(-2px)}
.container-slot[aria-pressed="true"],.container-slot.selected{border-color:#537940;background:#fff9da;box-shadow:0 0 0 3px #fffce8,0 0 0 5px #618248;transform:translateY(-2px)}
.container-slot[aria-pressed="true"]:after,.container-slot.selected:after{content:'✓';position:absolute;right:6px;top:6px;display:grid;place-items:center;width:22px;height:22px;background:#5e804c;border:2px solid #fffdf1;border-radius:50%;color:#fff8db;font-size:13px;font-weight:700}
.container-slot:disabled,.container-slot.empty{opacity:.66;background:#dde5cc;border-style:dashed;box-shadow:none;transform:none}
.food-illustration{display:flex;align-items:center;justify-content:center;width:100%;height:86px;flex-shrink:0}
.food-illustration>svg{display:block;width:105px;height:86px;max-width:100%;fill:none;stroke:none}
.slot-name,.slot-name strong{display:block;width:100%;font-size:17px;line-height:1.2;font-weight:600;text-align:center;overflow-wrap:break-word;color:#3d5538}
.slot-state{font-size:13px;line-height:1.3;color:#788a63;text-align:center}
.container-empty,.empty-container{grid-column:1/-1;padding:35px 16px;text-align:center;font-size:23px;color:#5d7350;line-height:1.4}
.container-empty strong,.empty-container strong{display:block;font:500 29px/1.2 'Fraunces',Georgia,serif;margin-bottom:9px}
.container-empty p,.empty-container p{font-size:17px;margin:5px 0 0}
.container-info{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:23px 0 0}
#container-selection{font-size:18px;font-weight:600;line-height:1.35;margin:0;color:#3c5737}
#container-bag-count{flex-shrink:0;font-size:14px;padding:7px 10px;background:#edf1e0;border:1px solid #dce4cb;border-radius:20px;color:#6f825d}
#container-message{min-height:26px;font-size:16px;line-height:1.4;margin:6px 0 12px;color:#72855f;text-align:left}
#container-message:empty{min-height:13px;margin:4px 0}
.container-actions{display:grid;grid-template-columns:1.15fr 1fr 1fr;gap:11px}
.container-actions>.primary-button,.container-actions>.secondary-button{justify-content:center;gap:9px;min-height:52px;font-size:19px;padding:13px 10px;margin:0}
.container-actions>#container-close{background:#f7f6eb;border-color:#dfe3d1;color:#617155}
.container-actions>.primary-button[hidden]~#container-close{grid-column:1/-1}
.container-hint{font-size:13px;line-height:1.4;text-align:center;color:#859174;margin:15px 0 0}
.container-overlay[data-kind="lunchbox"],.container-overlay[data-kind="basket"]{--container-body:#d8b560;--container-rim:#eed99a;--container-inner:#fbefcd;--container-shadow:#a88b49;--container-accent:#a78745}
.container-overlay[data-kind="fridge"]{--container-body:#b1c7bb;--container-rim:#dbe4cf;--container-inner:#f1f4e8;--container-shadow:#809b89;--container-accent:#7d9b89}
.container-overlay[data-kind="fridge"] .container-stage{border-radius:12px 12px 18px 18px;border-width:10px;padding-bottom:26px}
.container-overlay[data-kind="fridge"] #container-slots{gap:14px 11px;border-radius:5px;box-shadow:inset 0 2px 12px #6689792b;background:repeating-linear-gradient(to bottom,#eef3e4 0,#eef3e4 168px,#bdcebc 168px,#d6e3d1 175px)}
.container-overlay[data-kind="cupboard"],.container-overlay[data-kind="crate"]{--container-body:#b89b71;--container-rim:#d6bf93;--container-inner:#e9d7af;--container-shadow:#92754f;--container-accent:#8e704b}
.container-overlay[data-kind="cupboard"] .container-stage,.container-overlay[data-kind="crate"] .container-stage{background:repeating-linear-gradient(90deg,#bb9f74 0,#bb9f74 64px,#b0946a 65px,#c1a880 67px,#bb9f74 69px)}
.bag-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:23px 0}
.bag-item{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;padding:14px 8px;background:#f0f2e3;border:1px solid #dce4c9;border-radius:10px;text-align:center}
.bag-item .food-illustration{height:76px}
.bag-item .food-illustration>svg{height:75px;width:92px}
.bag-item strong{display:block;font-size:16px;line-height:1.3;margin-top:5px}
.bag-item small,.bag-item span:not(.food-illustration){font-size:13px;line-height:1.35;color:#7e8d6a}
.bag-empty{text-align:center;padding:25px 15px;color:#758967;font-size:19px}

@media(max-width:1120px){
  .quest{width:315px;padding:18px}
  .quest h2{font-size:26px}
  .mission-instruction{grid-template-columns:75px minmax(0,1fr);gap:8px}
  .mission-instruction>strong{font-size:17px}
  .mission-instruction>span,.mission-instruction>label{font-size:10px}
  .camera-toolbar{left:50%;right:auto;transform:translateX(-50%)}
  .camera-toolbar button{font-size:15px;padding:11px 12px}
  .camera-toolbar button kbd{display:none}
  .mini-tip{display:none}
  .keyboard-hints{font-size:12px;gap:12px}
}
@media(max-height:820px){
  .intro-art{height:128px}
  .intro-art img{height:117px;left:123px;top:3px}
  .art-sun{width:104px;height:104px;left:111px;top:6px}
  .art-ground{top:115px;left:27px}
  .character-shadow{top:115px;left:128px;width:66px}
  .art-pine{top:35px;left:29px;font-size:84px}
  .p2{left:227px;top:63px;font-size:64px}
  .art-note{top:31px;left:13px}
  .intro-eyebrow{margin-top:7px}
  h1{font-size:42px;margin:9px 0 12px}
  .intro-topline{padding-bottom:12px}
  .intro-chapters{margin-bottom:15px}
  .intro-footer{margin-top:13px}
}
@media(max-width:800px){
  .quest{width:300px}
  .quest>.eyebrow{font-size:10px}
  .quest h2{font-size:25px}
  .status-pill{font-size:13px;max-width:210px;padding:10px 12px}
  .status-pill .status-dot{display:none}
  .camera-toolbar{right:15px;left:auto;transform:none;bottom:148px}
  .camera-toolbar button{font-size:14px;padding:11px;gap:6px}
  .bottom-hud{bottom:211px;right:15px}
  .map-button canvas{width:103px;height:69px}
  .map-button kbd{display:none}
  #toast{bottom:208px;font-size:16px}
  .container-card{padding:25px 23px 22px}
}
@media(max-width:600px){
  body{font-size:16px}
  .top-hud{top:10px;left:10px;right:10px;display:block}
  .quest{width:100%;padding:13px 15px 12px;border-radius:11px}
  .quest>.eyebrow{display:block;font-size:9px;letter-spacing:.8px;line-height:1.2;padding-right:3px}
  .quest h2{font-size:23px;line-height:1.1;margin:5px 0 9px}
  .mission-summary{gap:7px;margin:0;padding:9px 0 0;border-bottom:0}
  .mission-instruction{grid-template-columns:76px minmax(0,1fr);gap:8px}
  .mission-instruction>span,.mission-instruction>label{font-size:10px;letter-spacing:.4px;line-height:1.5;padding-top:2px}
  .mission-instruction>strong{font-size:16px;line-height:1.25;letter-spacing:-.1px}
  .quest>.quest-line,.quest>.quest-progress,.quest>.extra-quests{display:none!important}
  .mission-button{min-height:42px;margin-top:10px;font-size:16px;gap:9px}
  .mission-button kbd{display:none}
  .mission-button>span{margin-right:0}
  .mission-button svg{width:18px;height:18px}
  .status-column{flex-direction:row;justify-content:flex-end;align-items:center;gap:6px;margin-top:8px}
  .status-pill{font-size:12px;max-width:none;padding:8px 10px;gap:6px}
  .status-pill svg{width:16px;height:16px}
  .energy{padding:8px 9px;gap:5px}
  .energy svg{height:14px;width:14px}
  .energy-track{width:35px}
  #lives{font-size:9px;letter-spacing:.1px}
  .alert-track{position:absolute;right:10px;bottom:-6px;width:134px;height:3px}
  .location-tag{display:none}
  .camera-toolbar{left:auto;right:12px;bottom:135px;gap:6px;max-width:calc(100% - 24px)}
  .camera-toolbar button{min-height:43px;font-size:14px;padding:10px;gap:6px}
  .camera-toolbar button svg{width:18px;height:18px}
  .camera-toolbar button kbd{display:none}
  #journal-button>b,.inventory-button>b,#inventory-button>b{font-size:10px;min-width:18px;height:18px}
  .bottom-hud{right:12px;bottom:194px}
  .map-button canvas{display:none}
  .map-button{padding:11px 13px}
  .map-button>span{padding-top:0;font-size:11px;gap:6px;letter-spacing:.5px}
  .map-button>span svg{width:16px;height:16px}
  #interaction{font-size:16px;line-height:1.35;padding:10px 12px 10px 9px;top:auto;bottom:190px;max-width:calc(100% - 26px);transform:translateX(-50%);text-align:center}
  #interaction kbd{font-size:14px}
  #toast{font-size:16px;bottom:240px;line-height:1.4;padding:12px 16px;width:max-content;max-width:calc(100% - 26px)}
  .touch-actions button{font-size:14px;width:57px;height:57px}
  #touch-interact{font-size:15px;width:72px;height:72px}
  #touch-controls{left:15px;right:15px;bottom:19px}
  #joystick{width:94px;height:94px}
  .intro-overlay{padding:14px 18px}
  .intro-card{width:min(365px,100%);padding:20px 24px;transform:rotate(-.5deg)}
  .intro-topline .eyebrow{font-size:8px}
  .edition{font-size:6px}
  .intro-art{width:270px;height:119px}
  .intro-art img{height:111px;left:95px;top:2px}
  .art-sun{width:98px;height:98px;left:83px;top:5px}
  .art-ground{top:106px;left:1px}
  .character-shadow{top:108px;left:98px;width:66px}
  .art-pine{top:34px;left:4px;font-size:80px}
  .p2{left:197px;top:60px;font-size:61px}
  .art-note{left:0;top:26px;font-size:10px}
  .intro-eyebrow{font-size:9px}
  h1{font-size:39px;margin:9px 0 13px}
  .intro-card p{font-size:16px;line-height:1.5;margin-bottom:11px}
  .intro-chapters{font-size:9px;gap:5px;margin-bottom:17px}
  .intro-footer{font-size:10px;line-height:1.45;margin-top:14px}
  .primary-button,.secondary-button{font-size:17px;min-height:49px;padding:13px 17px}
  #intro-fullscreen{font-size:16px;min-height:45px;margin-top:11px}
  .dialog-overlay{padding:12px}
  .dialog-card{padding:26px 21px 22px;border-radius:12px}
  .dialog-card>.eyebrow,.map-card>.eyebrow{font-size:10px;letter-spacing:.8px;display:block;padding-right:20px}
  .dialog-card h2,.map-card h2{font-size:30px;line-height:1.1;margin:12px 0 20px;padding-right:16px}
  .dialog-card p{font-size:16px;line-height:1.5}
  .dialog-card .primary-button{margin-top:21px}
  .mission-detail{gap:10px;margin:17px 0}
  .mission-detail .mission-instruction{padding:15px 16px}
  .mission-detail .mission-instruction>span,.mission-detail .mission-instruction>label{font-size:11px;margin-bottom:6px}
  .mission-detail .mission-instruction>strong{font-size:20px;line-height:1.3}
  .guide-row{font-size:15px;padding:14px 0;gap:13px}
  .guide-row kbd{font-size:12px;min-width:50px}
  .guide-tip{font-size:15px!important;padding:13px}
  .chapter-row{padding:13px;gap:10px}
  .chapter-row strong{font-size:16px}
  .chapter-row small{font-size:13px}
  .chapter-number{width:33px;height:33px;font-size:20px}
  .journal-photo h3{font-size:18px}
  .journal-photo.empty h3{font-size:16px}
  .journal-photo.empty p,.journal-photo.empty .photo-stars{font-size:12px}
  .map-legend{font-size:13px;gap:10px 16px}
  .map-card>p{font-size:13px}
  .container-card{padding:23px 16px 20px;border-radius:13px}
  .container-heading{padding:0 16px}
  .container-heading .eyebrow{font-size:9px;letter-spacing:1px}
  .container-heading h2{font-size:29px;margin:8px 0}
  .container-heading p{font-size:16px;line-height:1.4;margin-bottom:16px}
  .container-stage{padding:0 8px 16px;border-width:6px;border-radius:13px 13px 18px 18px}
  .container-art{height:69px}
  #container-slots{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:12px}
  #container-slots:has(>.container-slot:nth-child(5)){grid-template-columns:repeat(2,minmax(0,1fr))}
  .container-slot{min-height:145px;padding:10px 6px}
  .food-illustration{height:75px}
  .food-illustration>svg{height:75px;width:95px}
  .slot-name,.slot-name strong{font-size:16px;line-height:1.2}
  .slot-state{font-size:12px}
  .container-slot[aria-pressed="true"],.container-slot.selected{box-shadow:0 0 0 2px #fffce8,0 0 0 4px #618248}
  .container-info{gap:8px;margin-top:20px;align-items:flex-start}
  #container-selection{font-size:16px}
  #container-bag-count{font-size:12px;padding:6px 8px}
  #container-message{font-size:15px;margin:6px 0 10px;min-height:23px}
  .container-actions{gap:7px}
  .container-actions>.primary-button,.container-actions>.secondary-button{font-size:17px;min-height:49px;padding:12px 7px;gap:6px}
  .container-actions>.primary-button svg{width:18px;height:18px}
  .container-hint{font-size:12px;margin-top:13px}
  .container-overlay[data-kind="fridge"] .container-stage{border-width:7px;padding-bottom:18px}
  .bag-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:19px 0}
  .bag-item{padding:12px 8px}
  .bag-item strong{font-size:16px}
  .bag-empty{font-size:17px;padding:20px 12px}
}
@media(pointer:coarse) and (min-width:601px){
  .camera-toolbar{right:20px;left:auto;transform:none;bottom:152px}
  .bottom-hud{right:20px;bottom:217px}
  .camera-toolbar button{min-height:46px;font-size:16px}
  #toast{bottom:218px}
}
@media(max-height:660px){
  .intro-card{padding-top:17px;padding-bottom:17px}
  .intro-art{height:89px}
  .intro-art img{height:85px;left:129px;top:0}
  .art-sun{width:76px;height:76px;left:118px;top:3px}
  .art-ground{top:82px}
  .character-shadow{top:83px;left:130px;width:55px}
  .art-pine{top:24px;left:49px;font-size:65px}
  .p2{left:219px;top:45px;font-size:49px}
  .art-note{top:14px;left:31px;font-size:9px}
  .intro-eyebrow{margin-top:7px;font-size:8px}
  h1{font-size:35px;margin:8px 0}
  .intro-card p{font-size:16px;margin-bottom:9px}
  .intro-chapters{margin-bottom:13px}
  .intro-footer{font-size:10px;margin-top:11px}
  .container-art{height:57px}
  .container-heading p{margin-bottom:13px}
  .container-slot{min-height:135px}
  .food-illustration{height:66px}
  .food-illustration>svg{height:66px}
}
@media(max-height:660px) and (max-width:600px){
  .intro-art img{left:102px}
  .art-sun{left:91px}
  .character-shadow{left:104px}
  .art-pine{left:22px}
  .p2{left:191px}
  .art-note{left:3px}
}
@media(max-height:560px) and (min-width:601px){
  .top-hud{top:12px;left:14px;right:14px}
  .quest{width:320px;padding:13px 15px}
  .quest h2{font-size:24px;margin:6px 0 9px}
  .quest>.eyebrow{font-size:9px}
  .mission-summary{padding:9px 0 0;border-bottom:0;margin:0;gap:7px}
  .mission-instruction>strong{font-size:16px;line-height:1.25}
  .quest>.quest-line,.quest>.quest-progress,.quest>.extra-quests{display:none!important}
  .mission-button{min-height:39px;font-size:16px;margin-top:11px}
  .location-tag{display:none}
  .status-pill{font-size:12px;padding:9px 11px}
  .energy{padding:8px 10px}
  .camera-toolbar,.camera-toolbar.playing-only{top:auto;bottom:17px;left:50%;right:auto;transform:translateX(-50%);gap:7px}
  .camera-toolbar button{min-height:42px;font-size:14px;padding:10px}
  .bottom-hud{top:auto;bottom:17px;right:16px}
  .map-button canvas{display:none}
  .map-button{padding:11px 12px}
  #toast{bottom:72px;font-size:16px}
  #interaction{font-size:16px;top:auto;bottom:75px;transform:translateX(-50%)}
  .intro-art{display:none}
  .intro-card{width:360px;padding:17px 24px}
  .intro-topline{padding-bottom:9px}
  .intro-eyebrow{margin-top:12px}
  .intro-card p{font-size:16px}
  .intro-chapters{font-size:9px;margin-bottom:12px}
  .intro-footer{font-size:10px;margin-top:11px}
  .intro-card .primary-button,.intro-card .secondary-button{min-height:44px;font-size:16px;padding:11px 16px}
  #intro-fullscreen{margin-top:9px}
  .container-card{padding-top:20px;padding-bottom:18px}
  .container-heading h2{font-size:29px;margin:6px 0}
  .container-heading .eyebrow{font-size:10px}
  .container-heading p{font-size:16px;margin-bottom:12px}
  .container-art{height:42px}
  .container-slot{min-height:124px}
  .food-illustration{height:64px}
  .food-illustration>svg{height:64px}
  .container-info{margin-top:18px}
  .container-hint{margin-top:11px}
}
@media(max-height:560px) and (pointer:coarse) and (min-width:601px){
  .mission-where-row,.mission-done-row{display:none}
  .quest{width:290px}
  #touch-controls{bottom:15px;left:18px;right:18px}
  #joystick{width:80px;height:80px}
  .touch-actions button{font-size:14px;width:54px;height:54px}
  #touch-interact{font-size:15px;width:66px;height:66px}
  .camera-toolbar,.camera-toolbar.playing-only{top:108px;right:16px;left:auto;bottom:auto;transform:none}
  .bottom-hud{top:164px;right:16px;bottom:auto}
  #toast{bottom:69px;max-width:360px}
}

/* A growing atlas and small, warm celebrations. */
.mission-actions{display:grid;grid-template-columns:1.3fr 1fr;gap:9px;margin-top:16px}
.mission-actions .mission-button{margin-top:0;padding:9px 11px}
.mission-actions .mission-button kbd{display:none}
.mission-actions .mission-button>span{margin:0}
.worlds-button{display:flex;align-items:center;justify-content:center;gap:7px;min-height:46px;padding:9px 11px;pointer-events:auto;font-size:17px;font-weight:600;border:1px solid #d4debf;border-radius:8px;background:#f2f4e8;color:#617b4f;transition:background .18s,transform .18s}
.worlds-button:hover{background:#e5ecd6;transform:translateY(-1px)}
.worlds-button svg{width:19px;height:19px}
.map-region{margin:27px 0}
.map-region:first-child{margin-top:0}
.map-region h3{font:500 25px/1.2 'Fraunces',Georgia,serif;color:#455f3d;letter-spacing:-.4px;margin:0 0 13px;padding-bottom:10px;border-bottom:1px solid #dce4ce}
.map-region>p{font-size:15px;color:#7c8c6b;margin:-2px 0 14px}
.world-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.world-card{display:flex;align-items:center;gap:11px;position:relative;min-width:0;min-height:91px;padding:13px 12px;text-align:left;border:1px solid #dbe3cc;border-radius:10px;background:#f1f4e5;transition:background .18s,border-color .18s,transform .18s;box-shadow:0 2px 0 #d9e1c957}
.world-card:hover{background:#e8eed9;border-color:#b1c79a;transform:translateY(-2px)}
.world-card.current{border:2px solid #7a985c;background:#e5edd5;padding:12px 11px}
.world-card.completed{background:#edf2df;border-color:#bfcea9}
.world-card.completed:after{content:'✓';position:absolute;top:7px;right:7px;width:19px;height:19px;border-radius:50%;display:grid;place-items:center;background:#739456;color:#fffde8;font-size:12px;font-weight:700}
.world-card.locked{background:#f2f2e9;border-color:#e0e3d4;color:#89967e}
.world-card:disabled{opacity:.62;transform:none}
.world-card>.chapter-number,.world-card>.world-number,.world-card>.map-number,.world-card>.world-index{display:grid;place-items:center;flex-shrink:0;width:39px;height:39px;border-radius:50%;border:1px solid #bbcda2;background:#ffffff75;font:500 21px 'Fraunces',Georgia,serif;color:#62814d}
.world-card.current>.world-number,.world-card.current>.chapter-number{background:#6f8e52;border-color:#6f8e52;color:#fff8db}
.world-card>div{min-width:0}
.world-card strong,.world-card h4{display:block;font-size:16px;font-weight:600;line-height:1.25;margin:0;color:#415c38;overflow-wrap:break-word}
.world-card small{display:block;font-size:12px;line-height:1.3;color:#7c8e69;margin-top:4px}
.world-card>svg{width:20px;height:20px;margin-left:auto;color:#7f986a}
.worlds-summary{background:#edf2df;padding:16px;border-radius:10px;margin:16px 0 22px;line-height:1.5;font-size:17px}
.worlds-summary strong{color:#517440}
.award-card{text-align:center;padding:0 2px}
.reward-burst{position:relative;display:grid;place-items:center;width:151px;height:151px;margin:4px auto 22px;border-radius:50%;background:#e8ecd4;box-shadow:0 0 0 10px #f1f2e4,0 0 0 11px #d9e1c5}
.reward-burst:before,.reward-burst:after{content:'✦';position:absolute;color:#c9a757;font-size:26px;line-height:1}
.reward-burst:before{left:-26px;top:19px;transform:rotate(-13deg)}
.reward-burst:after{right:-27px;bottom:21px;font-size:21px;transform:rotate(9deg)}
.reward-burst>svg,.award-card>.award-icon{width:104px;height:104px;fill:none;stroke-width:1.5}
.reward-burst>span{font-size:77px;color:#8d9c5a}
.award-card h3{font:500 31px/1.2 'Fraunces',Georgia,serif;letter-spacing:-.5px;margin:12px 0;color:#3f6139}
.award-card p{font-size:18px;line-height:1.5;margin:11px auto;max-width:450px;color:#70835e}
.award-label{display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:20px;padding:8px 14px;background:#e6edda;color:#68864f;font-size:13px;font-weight:600;letter-spacing:.6px}
.badge-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin:24px 0}
.earned-badge{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;text-align:center;border:1px solid #d8e2c6;border-radius:12px;padding:17px 9px;background:#edf2e1;color:#68894e}
.earned-badge>svg,.earned-badge .badge-art>svg{width:72px;height:72px;display:block;margin:0 auto 10px;fill:none;stroke-width:1.4}
.earned-badge>span:first-child{font-size:47px;line-height:1.2;display:block;margin:0 auto 8px}
.earned-badge strong{font-size:15px;font-weight:600;line-height:1.3;color:#506f3d}
.earned-badge small{display:block;font-size:12px;line-height:1.4;margin-top:5px;color:#849674}
.earned-badge.locked,.earned-badge.unearned{background:#f5f5ee;border-style:dashed;opacity:.6;filter:saturate(.5)}
.reward-toast{position:absolute;z-index:5;pointer-events:none;display:flex;align-items:center;justify-content:center;gap:12px;left:50%;top:25px;transform:translate(-50%,-8px);opacity:0;max-width:min(420px,calc(100% - 30px));padding:14px 21px;border:1px solid #eef4d7;border-radius:11px;background:#fffbed;box-shadow:0 7px 25px #29482e2b;color:#587644;font-size:19px;font-weight:600;line-height:1.3;text-align:center;transition:opacity .25s,transform .25s}
.reward-toast.visible,.reward-toast.show,.reward-toast.active{opacity:1;transform:translate(-50%,0)}
.reward-toast:empty{display:none}
.reward-toast svg{height:31px;width:31px;color:#819c59;flex-shrink:0}
.reward-toast strong{font-weight:600}
.reward-toast small{display:block;font-size:14px;font-weight:400;color:#889974;margin-top:3px}
.quest-check.done{box-shadow:0 0 0 3px #95ad712b}
.mission-do-row.complete>strong,.mission-do-row.done>strong{color:#668d45}
.keyboard-hints>.mouse-hint kbd{white-space:nowrap;font-size:11px}
.footer>.keyboard-hints{gap:13px}
.footer>span:first-child{display:none}
@media(max-width:1190px){.keyboard-hints>span:nth-last-child(1),.keyboard-hints>span:nth-last-child(2){display:none}.footer-note{font-size:14px}}
@media(max-width:920px){.keyboard-hints>span:nth-last-child(3){display:none}.footer>.keyboard-hints{gap:10px}.keyboard-hints{font-size:11px}.keyboard-hints kbd{font-size:10px}.footer-note{display:none}}
@media(max-width:700px){.keyboard-hints>span:nth-last-child(4),.keyboard-hints>span:nth-last-child(5){display:none}.keyboard-hints{gap:9px}.footer{justify-content:center}}
@media(max-width:600px){
  .mission-actions{margin-top:10px;gap:8px;grid-template-columns:1.25fr 1fr}
  .mission-actions .mission-button,.worlds-button{min-height:42px;font-size:16px;padding:8px 10px}
  .worlds-button svg{width:18px;height:18px}
  .world-grid{gap:8px}
  .world-card{min-height:90px;padding:12px 9px;gap:8px;align-items:flex-start}
  .world-card.current{padding:11px 8px}
  .world-card>.chapter-number,.world-card>.world-number,.world-card>.map-number,.world-card>.world-index{width:31px;height:31px;font-size:18px}
  .world-card strong,.world-card h4{font-size:15px;line-height:1.25}
  .world-card small{font-size:11px;line-height:1.35}
  .world-card.completed:after{height:16px;width:16px;top:4px;right:4px;font-size:10px}
  .map-region h3{font-size:23px;margin-bottom:12px}
  .map-region{margin:24px 0}
  .worlds-summary{font-size:16px;padding:14px}
  .award-card h3{font-size:28px}
  .award-card p{font-size:16px}
  .reward-burst{width:124px;height:124px;margin:7px auto 23px}
  .reward-burst>svg,.award-card>.award-icon{width:88px;height:88px}
  .reward-burst>span{font-size:63px}
  .badge-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin:21px 0}
  .earned-badge{padding:15px 9px}
  .earned-badge strong{font-size:15px}
  .earned-badge>svg,.earned-badge .badge-art>svg{width:65px;height:65px}
  .reward-toast{top:auto;bottom:249px;font-size:17px;padding:12px 16px;gap:9px;max-width:calc(100% - 28px)}
  .reward-toast svg{width:27px;height:27px}
  .reward-toast small{font-size:13px}
  .keyboard-hints>.mouse-hint kbd{font-size:10px}
}
@media(max-width:370px){
  .world-grid{grid-template-columns:1fr}
  .world-card{min-height:76px;align-items:center}
  .world-card strong{font-size:16px}
  .world-card small{font-size:12px}
  .container-actions>.primary-button,.container-actions>.secondary-button{font-size:16px}
  .container-actions>.primary-button svg{display:none}
}
@media(max-height:560px) and (min-width:601px){
  .mission-actions{margin-top:10px}
  .mission-actions .mission-button,.worlds-button{min-height:39px;font-size:15px;padding:8px 9px}
  .reward-toast{top:15px;font-size:17px;max-width:300px;padding:12px 16px}
}
@media(pointer:coarse){.keyboard-hints{display:none}.footer-note{display:block}.footer>span:first-child{display:flex}}

/* Container actions stay visible while a tall fridge shelf scrolls inside. */
.container-card{display:flex;flex-direction:column;overflow:hidden}
.container-card>.close-button{z-index:2}
.container-heading,.container-info,#container-message,.container-actions,.container-hint{flex-shrink:0}
.container-stage{flex:0 1 auto;min-height:145px;overflow:auto;scrollbar-width:thin;scrollbar-color:var(--container-shadow) var(--container-body)}
@media(min-width:371px) and (max-width:600px){
  #container-slots:has(>.container-slot:nth-child(3)):not(:has(>.container-slot:nth-child(4))),
  #container-slots:has(>.container-slot:nth-child(5)){grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;padding:10px}
  #container-slots:has(>.container-slot:nth-child(3)):not(:has(>.container-slot:nth-child(4))) .container-slot,
  #container-slots:has(>.container-slot:nth-child(5)) .container-slot{min-height:137px;padding:9px 5px}
  #container-slots:has(>.container-slot:nth-child(3)):not(:has(>.container-slot:nth-child(4))) .food-illustration,
  #container-slots:has(>.container-slot:nth-child(5)) .food-illustration{height:66px}
  #container-slots:has(>.container-slot:nth-child(3)):not(:has(>.container-slot:nth-child(4))) .food-illustration>svg,
  #container-slots:has(>.container-slot:nth-child(5)) .food-illustration>svg{height:66px}
  #container-slots:has(>.container-slot:nth-child(3)):not(:has(>.container-slot:nth-child(4))) .slot-state,
  #container-slots:has(>.container-slot:nth-child(5)) .slot-state{font-size:11px}
  #container-slots:has(>.container-slot:nth-child(3)):not(:has(>.container-slot:nth-child(4))) .slot-name,
  #container-slots:has(>.container-slot:nth-child(5)) .slot-name,
  #container-slots:has(>.container-slot:nth-child(3)):not(:has(>.container-slot:nth-child(4))) .slot-name strong,
  #container-slots:has(>.container-slot:nth-child(5)) .slot-name strong{font-size:15px;letter-spacing:-.3px;overflow-wrap:normal}
}
@media(max-height:560px){
  .container-stage{min-height:110px}
  .container-heading .eyebrow,.container-hint{display:none}
  .container-heading p{margin-bottom:11px}
  .container-info{margin-top:14px}
  #container-message:empty{min-height:6px}
}
@media(max-height:560px) and (min-width:601px){
  .container-card{display:grid;grid-template-columns:1.15fr 1fr;grid-template-rows:auto auto 1fr auto;gap:10px 18px;padding:16px 22px;height:min(390px,100%)}
  .container-heading{grid-column:1/-1;padding:0 30px}
  .container-heading h2{font-size:27px;margin:0 0 5px}
  .container-heading p{font-size:16px;margin:0;line-height:1.4}
  .container-stage{grid-column:1;grid-row:2/5;min-height:0;align-self:stretch;padding:8px 7px 13px;border-width:6px;border-radius:10px}
  .container-overlay[data-kind="fridge"] .container-stage{padding:8px 7px 13px;border-width:6px}
  .container-art{display:none}
  #container-slots{grid-template-columns:repeat(2,minmax(0,1fr));padding:10px;gap:9px}
  #container-slots:has(>.container-slot:nth-child(5)){grid-template-columns:repeat(2,minmax(0,1fr))}
  .container-slot{min-height:134px;padding:10px 7px}
  .food-illustration,.food-illustration>svg{height:68px}
  .slot-name,.slot-name strong{font-size:16px}
  .slot-state{font-size:12px}
  .container-info{grid-column:2;grid-row:2;margin:5px 0 0;gap:8px;align-items:center}
  #container-selection{font-size:16px}
  #container-bag-count{font-size:12px;padding:6px 8px}
  #container-message{grid-column:2;grid-row:3;margin:0;font-size:15px;min-height:0;align-self:center}
  #container-message:empty{min-height:0;margin:0}
  .container-actions{grid-column:2;grid-row:4;gap:7px}
  .container-actions>.primary-button,.container-actions>.secondary-button{min-height:47px;font-size:17px;padding:11px 6px}
  .container-actions>.primary-button svg{display:none}
  .container-hint{display:none}
}
@media(max-height:740px) and (max-width:600px){
  .container-heading .eyebrow,.container-hint{display:none}
  .container-card{padding-top:20px;padding-bottom:18px}
  .container-heading h2{font-size:27px;margin-top:0}
  .container-heading p{font-size:16px;margin-bottom:13px}
  .container-stage{min-height:100px}
  .container-art{height:50px}
  .container-info{margin-top:16px}
}
/* The status pill doubles as a mouse-accessible quiet-walking switch. */
#stealth-pill{cursor:pointer;font-family:inherit;text-align:left}
#stealth-pill[aria-pressed="true"]{border-color:#97ad7d;background:#edf3db}
#game{touch-action:none}
.quest{position:relative}
#quest-toggle{position:absolute;top:12px;right:12px;width:30px;height:30px;display:grid;place-items:center;border:1px solid #d5dec5;border-radius:50%;background:#f2f5e8;color:#627e4f;font-size:21px;line-height:1;cursor:pointer}
.quest>.eyebrow{padding-right:24px;display:block}
.quest.compact h2,.quest.compact .mission-summary,.quest.compact>.quest-line,.quest.compact>.quest-progress,.quest.compact>.extra-quests{display:none!important}
.quest.compact .mission-actions{margin-top:17px}
.quest.compact{padding-top:20px;padding-bottom:15px}
@media(max-width:600px){#quest-toggle{top:8px;right:9px;width:28px;height:28px}.quest.compact{padding-top:17px;padding-bottom:12px}}

#stealth-pill,#quest-toggle{pointer-events:auto}
#stealth-pill[aria-pressed="true"]{color:#3f633e}
/* Compact first: one readable next step, with room left for the world. */
.compact-mission{display:none}
.quest.compact{width:276px;padding:14px 15px 12px}
.quest.compact .compact-mission{display:block;margin-top:14px}
#compact-step{display:block;font-size:17px;line-height:1.3;color:#355138;font-weight:600}
.compact-meter{height:5px;background:#dfe7d1;overflow:hidden;border-radius:8px;margin:10px 0 5px}
#compact-fill{display:block;height:100%;background:#8fa762;transition:width .25s}
#compact-progress{font-size:12px;color:#647953}
.quest.compact .mission-actions{margin-top:10px;gap:7px}
.quest.compact .mission-actions button{font-size:14px;min-height:39px;padding:8px 6px;gap:5px}
.quest.compact .mission-actions svg{width:17px;height:17px}
.quest>.eyebrow{padding-right:99px;line-height:1.4;min-height:28px;display:flex;align-items:center;font-size:9px;letter-spacing:.6px}
#quest-toggle{width:47px;height:36px;top:10px;right:11px;border-radius:8px;font-size:13px;font-weight:600}
.read-button{display:inline-flex;align-items:center;justify-content:center;width:38px;min-width:38px;height:38px;border-radius:50%;background:#e6edd7;border:1px solid #c6d5b5;color:#45633d;pointer-events:auto;cursor:pointer;vertical-align:middle}
.read-button svg{width:20px;height:20px}
.read-button:hover{background:#d7e5c7}
#mission-hear{position:absolute;top:9px;right:65px;width:36px;min-width:36px;height:36px}
.dialog-hear{float:right;margin-right:18px;margin-top:20px}
.container-hear{position:absolute;top:25px;left:27px}
#intro-audio{margin-top:10px;min-height:42px;padding:10px 12px;font-size:15px}
#toast{display:flex;align-items:center;gap:12px}
#toast-message{flex:1}
#toast-hear{flex-shrink:0}
.rest-controls{position:absolute;z-index:4;bottom:91px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:9px;padding:11px 15px;border-radius:12px;max-width:calc(100% - 24px)}
.rest-controls[hidden]{display:none}
.rest-controls>span{font-size:16px;white-space:nowrap}
.rest-controls .secondary-button{white-space:nowrap;font-size:15px;min-height:40px;padding:9px 12px}
#interaction{cursor:pointer;pointer-events:auto;border:1px solid #eadfbf}
#interaction:not(.visible){pointer-events:none}
.speech-stop{position:absolute;left:50%;bottom:86px;transform:translateX(-50%);z-index:35;background:#304b37;color:#fff8e4;border:2px solid #f3e9c9;box-shadow:0 3px 15px #283e3640;border-radius:24px;min-height:44px;padding:10px 19px;font-size:16px;display:flex;align-items:center;gap:10px}
.speech-stop[hidden]{display:none}
.world-entry{position:relative;min-width:0}
.world-entry>.world-card{width:100%;height:100%;padding-right:43px}
.world-entry>.read-button{position:absolute;bottom:8px;right:6px;width:32px;min-width:32px;height:32px}
.bag-item .read-button{margin:0 0 8px}
.pause-settings{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.pause-settings .secondary-button{white-space:normal;font-size:16px;padding:12px}
.pause-settings [aria-pressed="true"]{background:#e1ebd4;border-color:#9db888;color:#35583a}
.setting-help{font-size:15px!important;line-height:1.5!important}
.calm-motion *, .calm-motion *:before,.calm-motion *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
@media(max-width:600px){
  .quest.compact{width:254px;max-width:100%;padding:11px 12px}
  #compact-step{font-size:16px;line-height:1.25}
  .quest.compact .compact-mission{margin-top:8px}
  .quest>.eyebrow{padding-right:91px;font-size:9px}
  #quest-toggle{right:8px;top:8px;width:44px;height:35px}
  #mission-hear{right:59px;top:8px;width:35px;min-width:35px;height:35px}
  .quest.compact .mission-actions{margin-top:8px}
  .quest.compact .mission-actions button{font-size:13px;min-height:37px}
  .quest.compact~.status-column{justify-content:flex-start;gap:5px;margin-top:6px}
  .status-column .status-pill{max-width:195px;font-size:11px;padding:8px}
  .camera-toolbar button{font-size:12px;gap:4px;padding:9px 8px}
  .camera-toolbar button kbd,.camera-toolbar button b{display:none}
  #photo-button span{font-size:0}#photo-button span:after{content:'Photo';font-size:12px}
  .camera-toolbar{gap:5px}
  .rest-controls{bottom:207px;flex-wrap:wrap;justify-content:center;gap:6px;padding:9px 11px;width:calc(100% - 30px)}
  .rest-controls>span{font-size:15px}
  .rest-controls .secondary-button{font-size:14px;padding:8px 10px}
  .container-hear{top:14px;left:14px;width:33px;min-width:33px;height:33px}
  .container-heading .eyebrow{padding-left:35px;padding-right:35px}
  .dialog-hear{margin-right:17px;margin-top:15px}
  .speech-stop{bottom:12px}
  .pause-settings{gap:8px}.pause-settings .secondary-button{font-size:15px}
}
@media(max-height:560px) and (min-width:601px){
  .quest.compact{width:253px;padding:9px 12px}
  .quest.compact .compact-mission{margin-top:4px}
  .quest.compact .mission-actions{margin-top:6px}
  #compact-step{font-size:15px}
  .compact-meter{margin-top:6px}
  .rest-controls{bottom:69px}
  #intro-audio,#intro-fullscreen{display:inline-flex;width:calc(50% - 5px);font-size:12px;padding:9px 5px;justify-content:center;min-height:39px}
}
#compact-icon{float:left;margin:1px 8px 7px 0;width:26px;height:26px;padding:3px;color:#738a51;background:#e5eccf;border-radius:6px}
.world-number{position:relative;flex-direction:column}
.world-number svg{width:22px;height:22px}
.world-number b{position:absolute;bottom:-7px;right:-6px;font:600 10px 'DM Sans',sans-serif;padding:2px 3px;min-width:16px;border-radius:8px;background:#fff9e5;color:#527044}
.reward-toast .read-button{flex-shrink:0;width:35px;min-width:35px;height:35px}
.reward-toast .read-button svg{width:19px;height:19px}
.container-heading{padding-left:24px;padding-right:24px}
#intro-hear{position:absolute;right:20px;top:44px}
.intro-card{position:relative}
.container-actions .secondary-button{display:flex;align-items:center;justify-content:center;gap:7px}
.bag-item [data-eat]{display:inline-flex;align-items:center;justify-content:center;gap:7px}
.bag-item [data-eat] svg{width:18px;height:18px}
@media(max-width:600px){.container-actions .secondary-button{gap:4px}.container-actions .secondary-button svg{width:16px;height:16px}}
.intro-card{max-height:100%;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
.intro-options{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.intro-options #intro-audio,.intro-options #intro-fullscreen{margin:0;width:100%;min-height:42px;padding:9px 5px;font-size:13px;display:flex;align-items:center;justify-content:center;gap:5px}
.speech-stop{bottom:12px}
@media(max-height:700px){.intro-card .intro-art{height:88px}.intro-card .intro-art img{height:85px;top:0;left:50%;transform:translateX(-50%)}.intro-card .art-sun{height:80px;width:80px;left:50%;transform:translateX(-50%)}.intro-card .art-ground{top:78px}.intro-card .character-shadow{top:80px}.intro-card .art-note,.intro-card .art-pine{display:none}.intro-card h1{font-size:34px}.intro-card .intro-chapters{display:none}.intro-card .intro-footer{font-size:10px}}
#toast:not(.visible),#reward-toast:not(.visible),#interaction:not(.visible){visibility:hidden}
.map-legend svg{width:14px;height:14px;color:#689b95}
@media(max-width:600px){
  .quest.compact{width:min(254px,calc(100% - 74px))}
  .quest.compact~.status-column{position:absolute;right:0;top:0;margin:0;flex-direction:column;align-items:center;gap:8px;width:65px}
  .quest.compact~.status-column .status-pill{width:44px;height:44px;justify-content:center;padding:10px}
  .quest.compact~.status-column #stealth-text,.quest.compact~.status-column .status-dot,.quest.compact~.status-column #lives,.quest.compact~.status-column .energy>span{display:none}
  .quest.compact~.status-column .status-pill svg{width:21px;height:21px}
  .quest.compact~.status-column .energy{padding:8px 7px;gap:4px;width:65px}
  .quest.compact~.status-column .energy-track{width:28px}
  .quest.compact~.status-column .alert-track{position:static;width:52px;margin-top:-4px}
}
@media(max-width:600px) and (max-height:700px){.quest.compact .compact-meter{display:none}.quest.compact #compact-progress{display:block;margin-top:7px}}

/* The view stays adjustable while the world gently frames nearby discoveries. */
.view-toggle{position:static;pointer-events:auto;display:flex;align-items:center;justify-content:center;gap:7px;min-height:42px;padding:10px 13px;border-radius:12px;color:#36563d;font-weight:600;font-size:13px;cursor:pointer;border:1px solid #61794b38}
.view-toggle svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round}
.view-toggle:focus-visible,.car-controls button:focus-visible{outline:3px solid #d4a343;outline-offset:3px}
.car-controls{position:absolute;z-index:5;bottom:91px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:10px;max-width:calc(100% - 24px);padding:11px 15px;border-radius:12px}
.car-controls[hidden]{display:none}
.car-controls>svg{width:27px;height:27px;stroke:#567654;fill:none;stroke-width:1.7;flex:none}
.car-controls>span{font-size:15px;max-width:235px}
.car-controls .secondary-button{white-space:nowrap;font-size:15px;min-height:40px;padding:9px 12px}
.watch-out{display:flex;align-items:flex-start;gap:12px;text-align:left;padding:15px;background:#eee5c8;border-radius:13px;margin-top:18px}
.watch-out>svg{width:30px;height:30px;flex:none;stroke:#6a7148;fill:none;stroke-width:1.7}
.watch-out strong{font-size:18px;color:#4a6344}
.watch-out p{font-size:17px!important;line-height:1.5;margin:5px 0 0!important}
.world-setting{display:block;margin-top:5px;font-size:12px;color:#6c755f;line-height:1.35}
@media(max-width:600px){
  .view-toggle{width:65px;min-height:52px;padding:7px 4px;flex-direction:column;gap:3px;font-size:10px;border-radius:10px}
  .view-toggle svg{width:18px;height:18px}
  .car-controls{bottom:185px;width:calc(100% - 28px);padding:8px 10px;gap:7px;flex-wrap:wrap;justify-content:center}
  .car-controls>span{font-size:13px;max-width:140px}
  .car-controls .secondary-button{font-size:13px;min-height:38px;padding:8px}
  .car-controls .read-button{width:34px;height:34px;flex:none}
  body.driving .bottom-hud{bottom:254px}
  .watch-out{padding:12px;gap:9px}.watch-out p{font-size:16px!important}
}
@media(max-height:560px) and (min-width:601px){
 .view-toggle{min-height:44px;font-size:12px;padding:7px 10px}
 .car-controls{bottom:65px;padding:8px 10px}.car-controls>span{max-width:170px;font-size:13px}
}
@media(max-width:600px){
  .car-controls{flex-wrap:nowrap}
  .car-controls>svg{display:none}
  .car-controls>span{flex:1;min-width:0;max-width:none;font-size:12px;line-height:1.35}
  .car-controls .secondary-button{flex:none}
}
.car-controls .secondary-button{width:auto}
@media(max-width:600px){
 .reward-toast{width:calc(100% - 28px);box-sizing:border-box;font-size:15px;gap:8px;padding:10px 12px}
 .reward-toast>div{flex:1;min-width:0}.reward-toast small{font-size:12px;line-height:1.35}
 body.driving .reward-toast{bottom:auto;top:12px}
}
@keyframes look-inside{from{opacity:0;transform:translateY(12px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}
.container-card{animation:look-inside .28s ease-out;transform-origin:center}
@media(min-width:1100px){
 .container-overlay{justify-content:flex-end;backdrop-filter:none;background:linear-gradient(90deg,#16372e08,#16372e50)}
}

/* Energy is readable at a glance and can explain itself aloud. */
#energy-status{cursor:pointer;pointer-events:auto;font-family:inherit;color:#536b41;min-height:42px}
#energy-status:focus-visible{outline:3px solid #d4a343;outline-offset:3px}
#energy-status .energy-track{display:block;height:8px;width:64px;background:#dce3ce;border:1px solid #72835938;flex:none}
#energy-status #energy-fill{background:#7c9e4a;transition:width .2s,background-color .4s}
#energy-status #energy-value{font-size:13px;min-width:33px;font-variant-numeric:tabular-nums;letter-spacing:0}
#energy-status #lives{font-size:11px;letter-spacing:0;color:inherit;text-transform:none}
#energy-status .energy-voice{width:17px;height:17px;flex:none}
#energy-status[data-level="medium"]{color:#806123;background:#fff5d9}
#energy-status[data-level="medium"] #energy-fill{background:#c49a37}
#energy-status[data-level="low"]{color:#93582f;background:#fff0de}
#energy-status[data-level="low"] #energy-fill{background:#d18447}
#sound-preview{display:flex;gap:8px;align-items:center;justify-content:center}
#sound-preview svg{width:20px;height:20px;flex:none}
@media(max-width:600px){
 #energy-status{gap:5px;padding:7px 9px}
 #energy-status #lives{display:none}
 .quest.compact~.status-column #energy-status{display:grid;grid-template-columns:1fr 17px;gap:3px 2px;width:65px;min-height:39px;padding:5px 7px}
 .quest.compact~.status-column #energy-status>svg:first-child,.quest.compact~.status-column #energy-status>span:nth-child(2){display:none}
 .quest.compact~.status-column #energy-status .energy-track{display:block;grid-column:1/-1;width:49px;height:6px}
 .quest.compact~.status-column #energy-status #energy-value{display:block;min-width:0;font-size:11px}
 .quest.compact~.status-column #energy-status .energy-voice{width:15px;height:15px}
}
/* A picture, a word and its first letter stay together while choosing food. */
#container-selection{display:flex;align-items:center;gap:12px;flex:1;min-width:0}
.word-letter{display:flex;align-items:baseline;justify-content:center;gap:3px;min-width:62px;padding:8px;border-radius:12px;background:#e5edd2;color:#4d693e;font:600 32px/1.1 'DM Sans',sans-serif}
.word-letter>small{font-size:23px}
.word-detail{display:block;min-width:0}
.word-detail>strong{display:block;font-size:24px;color:#365839;line-height:1.15}
.word-detail>small{display:block;font-size:13px;color:#737e64;margin-top:4px;line-height:1.3}
.bag-word{display:flex;flex-direction:column;align-items:center;gap:6px;width:100%;background:transparent;color:#3d5739;border-radius:12px;padding:5px;cursor:pointer}
.bag-word>strong{font-size:18px}.bag-word>small{font-size:13px;color:#6b8157}
.bag-word:focus-visible,.word-card:focus-visible{outline:3px solid #d4a343;outline-offset:2px}
.word-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:14px 0 25px}
.word-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:5px;border:1px solid #c7d6b6;background:#eff3df;border-radius:13px;padding:12px 7px;color:#43613c;min-width:0}
button.word-card{cursor:pointer}.word-card .food-illustration{width:75px;height:60px}.word-card .food-illustration svg{width:100%;height:100%}
.word-card>b{font-size:24px}.word-card>strong{font-size:15px}.word-card>svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.7}
.word-unknown{justify-content:center;border-style:dashed;background:#f3f3e8;color:#89977a;min-height:145px;text-align:center}
.word-unknown>span{font:34px 'Fraunces',serif}.word-unknown>small{font-size:12px;line-height:1.4}
@media(max-width:600px){
 .container-info{flex-wrap:wrap;gap:8px}
 #container-selection{flex-basis:calc(100% - 47px)}
 .word-letter{min-width:48px;font-size:27px;padding:7px}.word-letter>small{font-size:19px}
 .word-detail>strong{font-size:22px}.word-detail>small{font-size:12px}
 #container-bag-count{margin-left:auto;font-size:12px;padding:4px 8px}
 .word-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 .word-card .food-illustration{width:85px;height:68px}
}

/* Spoken food names never cover Take / Leave / Close on a short phone. */
.speech-stop.inline-speech{position:static;transform:none;width:max-content;max-width:100%;margin:13px auto 0;min-height:42px;padding:8px 15px;box-shadow:none}
.speech-stop.inline-speech[hidden]{display:none}

/* HUD controls share a real layout: changing a label or adding a wallet
   moves the following control instead of covering it. */
.top-hud{display:grid;grid-template-columns:minmax(0,max-content) minmax(0,max-content);align-items:start;justify-content:space-between;gap:12px;bottom:110px;grid-template-rows:minmax(0,1fr)}
.top-hud>.quest{min-width:0;max-width:100%;max-height:100%;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#b6c5a0 transparent;pointer-events:auto}
.top-hud>.status-column{position:static;display:flex;flex-direction:column;align-items:flex-end;justify-content:flex-start;gap:8px;width:auto;min-width:0;margin:0}
.status-column>.view-toggle{position:static;inset:auto;min-height:44px;flex-shrink:0}
.status-column>.alert-track{position:static;max-width:100%;margin:0;flex-shrink:0}
.status-column>button{flex-shrink:0;min-height:44px;max-width:100%;pointer-events:auto}
@media(max-width:600px){
  .top-hud{grid-template-columns:minmax(0,1fr) 65px;gap:9px;bottom:205px}
  .top-hud>.quest,.top-hud>.quest.compact{width:100%;max-width:100%}
  .top-hud>.quest.compact{max-width:min(100%,280px)}
  .top-hud>.status-column,.quest.compact~.status-column{position:static;width:65px;margin:0;gap:6px;align-items:center;flex-direction:column}
  .status-column #stealth-pill{width:44px;height:44px;min-height:44px;justify-content:center;padding:10px}
  .status-column #stealth-pill svg{width:21px;height:21px}
  .status-column #stealth-text,.status-column .status-dot{display:none}
  .status-column>.alert-track{width:52px;height:3px;margin:0}
  .status-column>.view-toggle{width:65px;min-height:44px;padding:4px;gap:2px}
  .top-hud>.quest:not(.compact) .mission-instruction{grid-template-columns:1fr;gap:2px}
  .top-hud>.quest:not(.compact) .mission-instruction>strong{font-size:15px}
}
@media(max-width:600px) and (max-height:700px){
  .bottom-hud{bottom:182px}
  .map-button canvas{display:none}
  .map-button{width:65px;min-height:44px;padding:6px 4px;display:flex;align-items:center;justify-content:center}
  .map-button>span{font-size:0;padding:0;gap:4px}
  .map-button>span:after{content:"Map";font-size:11px}
}
@media(pointer:coarse) and (min-width:601px) and (min-height:561px){.top-hud{bottom:160px}}
@media(max-height:560px) and (orientation:landscape){
  .top-hud{top:12px;left:14px;right:14px;bottom:116px;grid-template-columns:minmax(0,290px) 224px;gap:12px}
  .top-hud>.status-column,.quest.compact~.status-column{display:grid;grid-template-columns:65px 65px 82px;align-items:center;justify-items:center;gap:6px;width:224px}
  .status-column #stealth-pill{grid-column:1/span 2;grid-row:2;width:100%;max-width:100%;min-height:44px;height:44px;font-size:11px;padding:6px;gap:5px}
  .status-column #stealth-text{display:inline}
  .status-column .status-dot{display:none}
  .status-column #coin-wallet{grid-column:1;grid-row:1;width:65px}
  .status-column #energy-status{grid-column:3;grid-row:1/span 2}
  .status-column>.view-toggle{grid-column:2;grid-row:1;width:65px;min-height:44px;flex-direction:column;gap:2px;font-size:10px;padding:3px}
  .status-column>.view-toggle svg{width:17px;height:17px}
  .status-column>.alert-track{grid-column:1/-1;grid-row:3;width:100%;height:3px;margin:0}
  .camera-toolbar,.camera-toolbar.playing-only{top:auto;bottom:17px;left:50%;right:auto;transform:translateX(-50%);max-width:calc(100% - 240px);flex-wrap:wrap;justify-content:center}
  .bottom-hud{top:auto;bottom:103px;right:16px;left:auto}
}
@media(max-height:360px) and (orientation:landscape){
  .bottom-hud{right:calc(50% - 52px);bottom:70px}
  .map-button canvas{display:none}
  .map-button{min-height:36px;padding:7px 9px}
  .map-button>span{padding:0;font-size:10px}
}

@media(max-height:360px) and (orientation:landscape){
  .camera-toolbar,.camera-toolbar.playing-only{flex-wrap:nowrap;gap:4px;max-width:calc(100% - 205px);width:max-content}
  .camera-toolbar button{flex-direction:column;justify-content:center;gap:2px;font-size:10px;min-height:44px;padding:4px 7px}
  .camera-toolbar button svg{width:17px;height:17px}
  .camera-toolbar #inventory-button>b,.camera-toolbar #journal-button>b,.camera-toolbar button kbd{display:none}
  #photo-button span{font-size:0}#photo-button span:after{font-size:10px}
  .bottom-hud{right:calc(50% - 32px);bottom:67px}
  .map-button{width:65px;min-height:36px}
  .map-button>span{font-size:0}
  .map-button>span:after{content:"Map";font-size:11px}
}
/* A spoken hint gets a reserved lane, so it never covers a HUD tap target. */
@media(max-width:600px) and (orientation:portrait){
  #game-shell:has(#toast.visible) .top-hud{bottom:264px}
  #toast{left:14px;right:auto;top:auto;bottom:194px;transform:none;max-width:calc(100% - 105px);width:calc(100% - 105px);padding:7px 8px;gap:6px;font-size:12px;line-height:1.35}
  #toast.visible{transform:none}
  #toast-message{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
  #toast-hear{width:38px;height:38px;min-width:38px}
}
@media(max-height:360px) and (orientation:landscape){
  #game-shell:has(#toast.visible) .top-hud{bottom:128px}
  #toast{top:auto;bottom:67px;left:116px;right:auto;transform:none;width:calc(100% - 362px);max-width:calc(100% - 362px);padding:6px;gap:5px;font-size:11px;line-height:1.25}
  #toast.visible{transform:none}
  #toast-message{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
  #toast-hear{width:38px;height:38px;min-width:38px}
  #game-shell:has(#toast.visible) .bottom-hud{left:calc(100% - 238px);right:auto;bottom:80px}
}
@media(min-width:601px) and (min-height:561px){
  #toast{left:calc(50% - 90px);max-width:min(360px,calc(50% - 50px))}
  #toast.visible{transform:none}
}
@media(max-width:600px) and (orientation:portrait){
  #game-shell:has(#toast.visible) .bottom-hud{bottom:182px}
  #game-shell:has(#toast.visible) .map-button{width:65px;min-height:44px;padding:6px 4px;display:flex;align-items:center;justify-content:center}
  #game-shell:has(#toast.visible) .map-button canvas{display:none}
  #game-shell:has(#toast.visible) .map-button>span{font-size:0;padding:0;gap:4px}
  #game-shell:has(#toast.visible) .map-button>span:after{content:'Map';font-size:11px}
}
@media(max-height:560px) and (min-height:361px) and (orientation:landscape){
  .camera-toolbar,.camera-toolbar.playing-only{flex-wrap:nowrap;width:max-content;gap:6px}
  .camera-toolbar button{flex-direction:column;justify-content:center;gap:2px;font-size:12px;min-height:44px;padding:4px 9px}
  .camera-toolbar button svg{width:18px;height:18px}
  .camera-toolbar #inventory-button>b,.camera-toolbar #journal-button>b,.camera-toolbar button kbd{display:none}
  #toast{top:auto;bottom:80px;left:314px;right:auto;transform:none;width:min(240px,calc(100% - 448px));max-width:min(240px,calc(100% - 448px));padding:7px 8px;gap:6px;font-size:12px;line-height:1.3}
  #toast.visible{transform:none}
  #toast-message{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
}

/* The game name is one readable two-line mark at every screen size. */
.header .brand{flex:0 0 auto;gap:10px;min-width:0}
.header .brand-name{display:flex;flex-direction:column;align-items:flex-start;gap:2px;white-space:nowrap}
.header .brand-name strong{display:block;font-size:26px;font-weight:600;line-height:1;letter-spacing:2px}
.header .brand-name small{display:block;margin:0;font-size:11px;font-weight:700;line-height:1.2;letter-spacing:2.25px}
.header .brand-mark{flex:0 0 auto}
.intro-topline>.eyebrow{line-height:1.45;text-align:left}
.intro-topline>.edition{flex-shrink:0;max-width:76px;line-height:1.5;text-align:right}
@media(max-width:600px){
  .header .brand{gap:7px}
  .header .brand-name strong{font-size:21px;letter-spacing:1.4px}
  .header .brand-name small{font-size:9px;letter-spacing:1.55px}
  .header .brand-mark{width:29px;height:36px}
}
@media(max-width:350px){
  .header .brand-mark{display:grid;width:25px;height:33px}
  .header .brand-mark svg{width:20px;height:25px}
  .header .brand{gap:6px}
  .header .brand-name strong{font-size:19px;letter-spacing:1.2px}
  .header .brand-name small{font-size:8px;letter-spacing:1.45px}
}

/* Official character cutouts share a centered baseline, including wider coats. */
.intro-art img#welcome-character{height:calc(100% - 7px);width:auto;max-width:none;left:50%;top:3px;translate:-50% 0;transform:none;object-fit:contain;object-position:center bottom}


/* Play stays outside the scrolling welcome details, even in a short window. */
.intro-card{display:flex;flex-direction:column;min-height:0;max-width:100%;padding:0;overflow:hidden;transform:none;border-radius:12px 12px 32px 12px}
.intro-content{min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;padding:22px 26px 14px}
.intro-play-actions{display:grid;grid-template-columns:minmax(0,1fr) 48px;align-items:stretch;gap:10px;flex-shrink:0;padding:14px 26px 22px;border-top:1px solid #dce1cc;background:#fbf8eb}
.intro-play-actions #start{min-height:56px;min-width:0;flex:1;gap:12px;font-size:17px;font-weight:700;line-height:1.35;text-align:left;padding:12px 16px}
.intro-play-actions #start svg{flex:none}
.intro-play-actions>.speech-stop{grid-column:1/-1;width:100%;min-height:44px;margin:0}
.intro-play-actions #intro-hear{position:static;flex:0 0 48px;width:48px;height:auto;min-height:56px;margin:0;align-self:stretch;border:1px solid #d1dcc0;background:#edf1de;border-radius:9px}
.intro-card .intro-options #intro-audio,.intro-card .intro-options #intro-fullscreen{min-height:44px}
@media(min-height:701px) and (max-height:940px){
  .intro-card .intro-art{height:128px}
  .intro-card .art-sun{width:120px;height:120px;left:50%;transform:translateX(-50%)}
  .intro-card .art-ground{top:118px}
  .intro-card .character-shadow{top:120px}
  .intro-card h1{font-size:42px}
  .intro-card .intro-eyebrow{margin-top:8px}
  .intro-card .intro-chapters{display:none}
  .intro-card .intro-footer{margin-top:10px}
  .intro-content{padding-top:18px}
}
@media(max-width:600px){
  .intro-content{padding:16px 18px 12px}
  .intro-play-actions{gap:8px;padding:12px 18px 18px}
}
@media(max-height:700px){
  .intro-overlay{padding-top:12px;padding-bottom:12px}
  .intro-content{padding-top:14px}
  .intro-play-actions{padding-top:10px;padding-bottom:14px}
}
