html,body{height:100%;overflow:hidden}body{height:100dvh;display:flex;flex-direction:column}button,select,input{min-height:44px}button{touch-action:manipulation}input,select,textarea{accent-color:var(--moss);caret-color:var(--ink)}::selection{background:#d3dcbb;color:var(--ink)}
.topbar{width:100%;max-width:none;flex:0 0 62px;height:62px;padding:0 22px}.brand{font-size:27px}.brand span{font-size:12px}.top-actions{gap:6px}.top-actions button{border:1px solid var(--line);padding:8px 15px}.top-actions #mute-all[aria-pressed=true]{background:var(--ink);color:var(--paper)}
.game-layout{width:100%;max-width:none;min-height:0;flex:1;padding:12px 18px 0;gap:18px;grid-template-columns:minmax(0,1fr)}body:not([data-page=map]) .game-layout{grid-template-columns:minmax(0,1fr) 360px}.world-column{display:flex;flex-direction:column;min-height:0}.chapter-line{margin:0 0 8px;gap:12px}.chapter-line>div{margin-right:auto;min-width:0}.chapter-line h1{font:24px/1.15 Georgia,serif;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chapter-line #chapter{display:none}.chapter-line>span{color:var(--ink);white-space:nowrap;font-size:13px;font-variant-numeric:tabular-nums}.goal-ribbon{display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid var(--line);padding:6px 0}.goal-ribbon p{margin:0;font-size:13px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.goal-ribbon button{flex-shrink:0;font-size:12px}.world-instructions{font-size:12px;color:var(--muted);margin:0 0 8px}.world-viewport{flex:1;min-height:0;height:auto;max-height:none;position:relative;touch-action:none}.status-strip{flex:0 0 27px;padding:5px 0;gap:8px;white-space:nowrap;overflow:hidden;font-size:12px}.practice-notice{font-size:12px;margin:0 0 6px;padding:6px 10px;background:#e9dfbe}
.map-status{max-width:calc(100% - 125px);font-size:12px;left:10px;top:10px;display:block;padding:5px 9px}.map-status span{display:block}.zoom-controls{top:10px;right:10px}.zoom-controls button{width:44px;min-height:44px;font-size:12px}.go-home{position:absolute;right:10px;top:62px;z-index:31;background:#faf4e7e8;min-height:44px;font-size:12px}.dialogue{bottom:104px;max-width:82%;font:14px/1.4 system-ui,sans-serif;padding:9px 14px;transition:opacity .15s;box-shadow:0 3px 10px #34482824}.dialogue[hidden]{display:none}.world-viewport .interaction-panel{position:absolute;bottom:10px;left:10px;right:auto;width:min(410px,calc(100% - 20px));z-index:33;margin:0;padding:10px 12px;background:#faf4e7f5;border:1px solid #b1ad8b;border-radius:8px;display:flex;flex-wrap:wrap;align-items:center;gap:8px;box-shadow:0 4px 14px #26391e24}.interaction-panel>div:first-child{flex:1;min-width:130px}.interaction-panel h2{font:17px Georgia,serif;margin:0 0 3px}.interaction-panel p{font-size:12px;line-height:1.35;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.interaction-panel #interact{font-size:12px;max-width:170px;min-height:44px}.interaction-panel .target-actions{flex-basis:100%;gap:6px}.target-actions button{min-height:44px;font-size:12px}.action-progress{top:80px;bottom:auto;left:50%;translate:-50% 0;max-width:65%;z-index:32;font-size:12px}.resource-pop{z-index:34}.mobile-pad{display:none!important;bottom:125px;right:12px;left:auto}.mobile-pad button{width:44px;min-height:44px}body[data-pad=true] .mobile-pad{display:block!important}body[data-editing=true] .world-viewport{border:2px solid var(--rust)}
#placement-toolbar{position:absolute;bottom:12px;left:50%;translate:-50% 0;z-index:36;display:flex;align-items:center;gap:8px;padding:10px;background:var(--panel);border:1px solid var(--line);border-radius:8px;max-width:calc(100% - 20px);box-shadow:0 5px 18px #26391e30}#placement-label{font-size:12px;max-width:220px;line-height:1.35}#confirm-placement{background:var(--moss);color:#fff9e9;font-size:12px}#cancel-placement{font-size:12px}.home-scene .home-heading{padding:18px}.home-scene .home-footer{padding:14px;bottom:0}.home-scene .home-footer p{font-size:13px}.home-scene .home-footer button{min-height:44px}
#play-panel{padding:0;min-height:0;max-height:none;overflow:hidden;display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line);border-radius:10px}#play-panel[hidden]{display:none}.panel-heading{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--line);flex-shrink:0;gap:10px}.panel-heading h2{margin:0;font:23px Georgia,serif}.panel-heading button{font-size:12px;min-height:44px}.panel-content{overflow:auto;overscroll-behavior:contain;padding:16px;scrollbar-width:thin;scrollbar-color:#8b926c #eee5d0;flex:1;min-height:0}.panel-content section{padding:0 0 18px;margin:0 0 18px;border-bottom:1px solid var(--line)}.panel-content h3{font:19px Georgia,serif;margin:0 0 12px}.panel-content p{font-size:13px;line-height:1.55;max-width:65ch}.panel-content button{font-size:13px}.panel-content footer{display:flex;flex-direction:column;align-items:flex-start;padding:0;font-size:12px;gap:12px}.panel-content details{margin:14px 0}.panel-content summary{cursor:pointer;min-height:44px;display:flex;align-items:center;text-decoration:underline;text-underline-offset:4px;font-size:13px}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px;margin:12px 0}.setting-row select{padding:8px;border:1px solid var(--line);border-radius:6px;background:var(--paper);font:inherit}.setting-row input{width:22px;min-height:44px}.setting-row button{flex:1}.inventory{display:grid;grid-template-columns:1fr 1fr;gap:8px}.inventory button{min-height:48px;text-align:left;background:#f4ebd8;border:1px solid var(--line);padding:9px}.inventory .empty{color:var(--muted)}.inventory b{font-size:18px}.resource-use{font-size:13px}.evolution-panel{border:0;padding:0;margin:18px 0}.home-evolution{gap:4px}.home-evolution button{padding:3px;min-height:85px}.home-evolution canvas{height:56px;width:100%}.home-evolution span{font-size:12px}.evolution-panel p{font-size:12px}.tool-grid{gap:8px}.tool-grid button{min-height:52px}.goal-presets{display:flex;gap:6px;flex-wrap:wrap}.laya-panel textarea{font-size:16px;min-height:110px}.laya-panel label{margin-top:16px}.laya-panel .primary{font-size:14px;min-height:48px}.game-nav{display:flex;justify-content:center;gap:5px;flex:0 0 64px;min-height:64px;padding:7px 12px calc(7px + env(safe-area-inset-bottom));background:var(--paper);border-top:1px solid var(--line);z-index:45}.game-nav button{width:110px;min-height:46px;background:transparent;border:1px solid transparent;font-size:13px}.game-nav button[aria-current=page]{background:var(--moss);color:#fff9e9;border-color:var(--moss)}.game-nav button:hover:not([aria-current=page]){background:#e8e3c9}
.store-tabs{display:flex;gap:5px;border-bottom:1px solid var(--line);padding-bottom:10px;margin-bottom:8px}.store-tabs button{flex:1;padding:8px 6px;font-size:12px}.store-tabs button[aria-pressed=true]{background:var(--moss);color:var(--panel)}.store-item{display:grid;grid-template-columns:68px 1fr;gap:10px;align-items:center;padding:15px 0;border-bottom:1px solid var(--line)}.store-item canvas{width:68px;height:74px;object-fit:contain}.store-item h3{font:17px Georgia,serif;margin:0 0 3px}.store-item p{font-size:12px;margin:0 0 8px}.store-item button{min-height:44px;width:100%;text-align:left}.store-item small{display:block;font-size:12px;color:var(--muted);margin-top:3px}.store-item button:disabled{opacity:.62}.material-recipes summary{font-size:13px}.owned-artifact{padding:10px 0;border-bottom:1px solid var(--line);font-size:13px}.owned-artifact strong{display:block}#compass-results button,#layout-assets button{display:block;width:100%;text-align:left;margin:7px 0;font-size:12px}#layout-assets{max-height:230px;overflow:auto;margin-top:12px}#undo-layout{margin-top:10px}#store-balance{font-size:15px;font-weight:600}.tool-grid .locked{opacity:.65}
@media(max-width:800px){.topbar{flex-basis:56px;height:56px;padding:0 10px;gap:8px;flex-wrap:nowrap}.brand{font-size:23px}.brand span{display:none}.top-actions button{padding:6px 11px;min-height:44px;font-size:12px}.game-layout,body:not([data-page=map]) .game-layout{display:flex;padding:8px 8px 0;gap:0;min-height:0}.world-column{flex:1}.chapter-line{margin-bottom:5px;gap:8px}.chapter-line h1{font-size:19px}.chapter-line>span{font-size:12px}.goal-ribbon{gap:8px;padding:4px 0}.goal-ribbon p{font-size:12px}.goal-ribbon button{padding:6px 9px;font-size:12px}.world-instructions{font-size:12px;margin-bottom:5px}.status-strip{font-size:12px;flex-basis:24px}.world-viewport{min-height:0;height:auto;border-radius:8px}.game-nav{flex-basis:calc(62px + env(safe-area-inset-bottom));min-height:62px;padding-left:5px;padding-right:5px;gap:2px}.game-nav button{width:auto;flex:1;padding:5px 2px;font-size:12px;min-height:46px}.map-status{font-size:12px;max-width:calc(100% - 112px);padding:5px 7px;top:8px;left:8px}.zoom-controls{right:8px;top:8px;gap:3px}.go-home{right:8px;top:59px}.dialogue{font-size:12px;bottom:112px;padding:8px 10px;max-width:90%}.world-viewport .interaction-panel{left:8px;bottom:8px;width:calc(100% - 16px);padding:8px 10px;gap:7px}.interaction-panel h2{font-size:16px}.interaction-panel p{font-size:12px}.interaction-panel #interact{max-width:150px}.action-progress{top:66px;max-width:64%}.practice-notice{padding:4px 7px;font-size:12px;margin-bottom:4px}#play-panel{position:fixed;left:8px;right:8px;bottom:calc(68px + env(safe-area-inset-bottom));max-height:72dvh;border-radius:14px 14px 8px 8px;z-index:42;box-shadow:0 -5px 24px #2b3c222d}.panel-heading{padding:8px 12px}.panel-heading h2{font-size:22px}.panel-content{padding:14px}.panel-content section{margin-bottom:16px;padding-bottom:16px}#placement-toolbar{gap:6px;padding:8px;flex-wrap:wrap;width:max-content;justify-content:center}#placement-label{flex-basis:100%;max-width:none;text-align:center}.home-scene .home-footer{padding:10px}.home-scene .home-heading h2{font-size:21px}.home-scene .home-footer p{font-size:12px}.home-evolution canvas{height:52px}#coordinates{display:none}.level-toast{font-size:13px;padding:12px;max-width:90%}}
@media(max-height:520px){.topbar{flex-basis:46px;height:46px}.goal-ribbon,.world-instructions{display:none}.chapter-line{margin-bottom:4px}.game-nav{flex-basis:50px;min-height:50px;padding-top:2px;padding-bottom:2px}.game-nav button{min-height:44px}.game-layout{padding-top:5px}.dialogue{bottom:82px;font-size:12px}.interaction-panel p{display:none}.interaction-panel{padding:5px!important}.map-status{display:none}#play-panel{max-height:calc(100dvh - 110px);bottom:54px}.go-home{top:8px;right:108px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}

.settings-shortcuts{display:flex;gap:6px;margin-bottom:16px}.settings-shortcuts button{flex:1;font-size:12px}.panel-content section{scroll-margin-top:10px}

/* Keep the woodland usable in narrow embeds and short phone viewports. */
.topbar{min-height:0;margin:0;flex-shrink:0}
.game-layout{margin:0;overflow:hidden}
.game-nav{flex-shrink:0}
.interaction-details{flex-basis:100%;min-width:0}
.interaction-details summary{font-size:12px;cursor:pointer;min-height:28px;display:flex;align-items:center;text-decoration:underline;text-underline-offset:3px}
.interaction-details[open] summary{margin-bottom:6px}
.interaction-details .target-actions{margin-top:8px}
.world-viewport .interaction-panel{max-height:45%;overflow-y:auto;overscroll-behavior:contain}
.interaction-panel #interact{width:auto;flex:0 1 auto}
@media(max-width:800px){
 .topbar{padding-block:0}
 .world-instructions{display:none}
 .chapter-line{flex-wrap:wrap;gap:2px 8px}
 .chapter-line>div{flex:1 1 170px}
 .goal-ribbon{padding:3px 0}
 .world-viewport .interaction-panel{width:calc(100% - 16px);max-height:38%;padding:6px 9px;gap:2px 8px}
 .interaction-panel>div:first-child{min-width:90px}
 .interaction-panel #interact{max-width:55%;padding:6px 10px}
 .interaction-panel h2{margin:0;font-size:16px}
 .interaction-details summary{min-height:26px}
 .interaction-details p{display:block}
 .interaction-details .target-actions{display:flex;flex-wrap:wrap}
 .map-status{max-width:calc(100% - 108px)}
 .status-strip{flex-basis:22px;font-size:11px}
 #play-panel{max-height:calc(100dvh - 126px)}
}
@media(max-width:420px){
 .brand{font-size:21px}
 .top-actions button{padding:6px 9px}
 .chapter-line h1{font-size:17px}
 .chapter-line>span{font-size:11px}
 .goal-ribbon button{max-width:135px}
}
@media(max-height:520px){
 .topbar{min-height:44px;padding-block:0}
 .world-viewport .interaction-panel{width:min(360px,calc(100% - 16px));max-height:55%}
 .interaction-details summary{min-height:24px}
 .interaction-panel h2{font-size:15px}
 .status-strip{flex-basis:20px;padding:2px 0}
}
