:root{--touch-scale:1;--touch-opacity:.9}.co-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}.co-tabs button{min-height:44px}.co-tabs .selected,.co-settings [aria-pressed=true]{background:#c8d5a6;color:#233d34}.co-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr));gap:14px}.co-card{padding:18px;border:1px solid #b8c7a73d;border-radius:14px;background:#213c3566;margin:0 0 14px}.co-card h3{color:#f0dca8;font-size:17px;line-height:1.5;margin-bottom:9px}.co-card p,.co-note,.co-intro p{font-size:13px;line-height:1.85;color:#c8d3be;margin:9px 0}.co-card button,.co-settings button{min-height:44px;margin:5px 6px 5px 0;line-height:1.5}.co-card small{display:block;line-height:1.7}.co-choice{border-top:1px solid #b8c7a72a;padding-top:15px}.co-intro{padding:18px;background:#375a4766;border-radius:14px;margin-bottom:16px}.co-intro input{display:block;width:min(100%,360px);box-sizing:border-box;padding:12px;margin:8px 0;background:#162c29;color:#eaddb4;border:1px solid #96b69d;border-radius:8px;font:inherit}.co-hint{border-left:3px solid #dcc48a;padding-left:12px}.co-portrait{float:right;background:var(--co-color);color:#264535;border:3px solid #d9c18b;border-radius:50%;font-size:30px;display:grid;place-items:center;width:56px;height:56px}.co-growth p{display:flex;gap:16px;align-items:start;border-bottom:1px solid #b8c7a72a;padding:12px}.co-growth b{min-width:86px;color:#e6d6a9}.co-growth span{font-size:13px;line-height:1.8}.co-growth .current{background:#48654b80;border-left:3px solid #ead195}.co-targets{display:flex;flex-wrap:wrap;gap:8px}.co-settings section{padding:12px 0}.co-settings{display:flex;flex-direction:column;align-items:flex-start}.co-sources p{font-size:11px;line-height:1.5;margin:7px 0}.co-sources button{padding:3px 8px;font-size:11px}.co-nearby{position:relative;background:#233b35dd;font-size:11px;border-radius:8px;padding:8px}.co-nearby summary{cursor:pointer}.co-nearby[open]{display:flex;flex-wrap:wrap}.co-nearby button{min-height:36px}.stick{width:calc(112px * var(--touch-scale))!important;height:calc(112px * var(--touch-scale))!important;display:grid!important;place-items:center;border-radius:50%;background:#152c2966;border:2px solid #d5d6a766;touch-action:none;pointer-events:auto;opacity:var(--touch-opacity);position:relative;user-select:none}.stick-ring{font-size:70px;color:#d8d3ad44;pointer-events:none}.stick-knob{position:absolute;width:42%;height:42%;border-radius:50%;background:#b8c7a7bb;border:2px solid #f0dfa8;box-shadow:0 3px 0 #1b3028;transform:translate(var(--stick-x,0px),var(--stick-y,0px));pointer-events:none}.touch-actions{opacity:var(--touch-opacity)}.touch-actions button{min-width:calc(48px * var(--touch-scale));min-height:calc(48px * var(--touch-scale))}.left-handed .touch-controls .dpad{left:auto;right:max(18px,env(safe-area-inset-right))}.left-handed .touch-actions{right:auto;left:max(18px,env(safe-area-inset-left))}.dialog .close{display:grid;place-items:center;flex-shrink:0;padding:0;line-height:1}.dialog .close svg{display:block;width:22px;height:22px}.reduce-motion *, .reduce-motion *::before,.reduce-motion *::after{animation:none!important;scroll-behavior:auto!important}.photo-mode #game>*:not(#world):not(#photo-tools){display:none!important}#photo-tools{position:absolute;bottom:max(20px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);display:flex;flex-wrap:wrap;justify-content:center;gap:8px;width:max-content;max-width:95%;z-index:100;background:#1e362ddd;padding:10px;border-radius:14px}#photo-tools[hidden]{display:none}#photo-tools button{min-width:42px;min-height:42px}.photo-mode canvas{cursor:grab}
@media(max-width:700px){.co-card{padding:13px}.co-grid{grid-template-columns:1fr}.co-tabs{gap:5px}.co-tabs button{flex:1 0 28%;padding:8px 5px;font-size:12px}.co-growth p{gap:8px;padding:10px 3px}.co-growth b{min-width:67px;font-size:12px}.co-nearby{max-width:140px}.co-sources{max-height:95px;overflow:auto}.touch-actions button{padding:8px}.co-card details summary{min-height:44px;line-height:44px}}
@media(orientation:landscape) and (max-height:500px){.stick{width:calc(88px * var(--touch-scale))!important;height:calc(88px * var(--touch-scale))!important}.abilities{max-width:45%;max-height:42px;overflow-x:auto;flex-wrap:nowrap}.co-tabs{position:sticky;top:-12px;background:#253f36;z-index:2;padding:8px 0}.dialog-body{overscroll-behavior:contain}.touch-actions button{min-width:calc(44px * var(--touch-scale));min-height:calc(44px * var(--touch-scale))}}
.co-tabs button,.co-targets button,.co-settings button{background:#274439;border:1px solid #b1bd975e;border-radius:9px;color:#eadbb5;padding:9px 13px}.co-tabs button.selected{background:#c8d5a6;color:#233d34}.left-handed .touch-controls{flex-direction:row-reverse}.left-handed .touch-controls .dpad,.left-handed .touch-actions{left:auto;right:auto}.co-card details summary{cursor:pointer;color:#dfc89b}.co-card button:disabled{opacity:.5;cursor:default}.co-intro input:focus-visible,.co-tabs button:focus-visible{outline:2px solid #f0d593;outline-offset:3px}
.stick{grid-template:none!important;gap:0!important}
@media(orientation:landscape) and (max-height:500px){.dialog-header{padding:12px 16px!important}.dialog-header h2{font-size:20px;margin:3px 0}.dialog-header p{display:none}.dialog-header .eyebrow{font-size:9px}.co-tabs{margin-bottom:10px}.co-card h3{font-size:15px}}
.touch-actions button[hidden]{display:none}
.touch-controls{align-items:flex-end}
@media(orientation:portrait) and (max-width:650px){.touch-actions{display:grid;grid-template-columns:repeat(2,1fr);width:auto;gap:8px}.touch-actions button{width:calc(51px * var(--touch-scale));height:calc(51px * var(--touch-scale))}}
@media(orientation:landscape) and (max-height:500px){.co-tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin}.co-tabs button{flex:0 0 auto;white-space:nowrap;padding:8px 12px}}
@media(max-width:650px),(orientation:landscape) and (max-height:560px){.abilities{display:none!important}.touch-actions [data-do="active-ability"]{border-color:#c8c08f;background:#3e5943}}
@media(orientation:landscape) and (max-height:500px){.quest p{display:none}.quest{width:165px}.hotbar-wrap{width:calc(100% - 355px)}}
/* 新建世界的选项较多，首屏可在弹层内滚动，避免开始按钮被裁掉。 */
.welcome{overflow-y:auto;overscroll-behavior:contain}.welcome>*{flex-shrink:0}.welcome [data-do="start"]{min-height:44px}
/* 聚落、开场与成长提示优先保留手机的地图可视区域。 */
.prologue-scene{max-width:640px;margin:0 auto;padding:10px 0 20px;font-size:17px;line-height:1.9}.prologue-symbol{text-align:center;font-size:72px;color:#e6c88a;animation:prologue-glow 4s ease-in-out infinite}.reduce-motion .prologue-symbol{animation:none}@keyframes prologue-glow{50%{opacity:.6;transform:translateY(-3px)}}
.tactical-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:16px 0}.tactical-board button{display:flex;flex-direction:column;gap:12px;padding:14px 5px;border:2px solid #96b29b;background:#35584d}.tactical-board button.warning{border-color:#dfa487;background:#6d493e}.tactical-board button:disabled{opacity:1;box-shadow:inset 0 0 0 2px #f2d69c}.tactical-board small{font-size:11px}
.growth-strip{position:absolute;top:142px;left:20px;display:flex;gap:5px;max-width:min(530px,calc(100% - 40px));z-index:8}.growth-strip button{background:#263e35ed;border:1px solid #a5ad7f;color:#e8dfbd;border-radius:8px;padding:7px 10px;font-size:11px}.growth-strip-main{display:flex;align-items:center;gap:8px;min-width:0}.growth-strip-main span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.growth-strip-main b{white-space:nowrap}.novice-guide #camp-tools button[data-do="coexist"],.novice-guide #camp-tools button[data-do="settlement"],.novice-guide #camp-tools button[data-do="journey"]{display:none}.novice-guide #abilities{display:none!important}
@media(max-width:650px){.growth-strip{top:140px;left:10px;max-width:calc(100% - 20px)}.growth-strip button{padding:5px 7px;font-size:10px}.prologue-scene{font-size:15px}.prologue-symbol{font-size:48px}}@media(max-height:560px) and (orientation:landscape){.growth-strip{top:79px;left:110px;max-width:calc(100% - 290px)}.growth-strip button{padding:4px 6px;font-size:10px}}@media(max-height:360px) and (orientation:landscape){.growth-strip{top:68px;left:100px;max-width:calc(100% - 280px)}}
/* 手机将信息收在边缘，手记只有主动展开时才覆盖地图。 */
.quest-toggle{position:absolute;right:24px;top:64px;z-index:4;display:flex;align-items:center;justify-content:center;gap:5px;min-height:44px;padding:8px 12px;border:1px solid #b9bd8e88;border-radius:10px;background:#294336ed;color:#e8ddb8;font-size:12px}.quest-toggle svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2}.quest-toggle[aria-expanded=true] svg{transform:rotate(180deg)}
.compact-hud .mini-map{display:block;position:absolute;top:max(72px,calc(env(safe-area-inset-top) + 62px));right:max(12px,env(safe-area-inset-right));bottom:auto;width:72px;height:56px;padding:3px;z-index:4;border-radius:8px;background:#243c30eb;border:1px solid #d9cb9788}.compact-hud .mini-map canvas{width:100%;height:100%;display:block}.compact-hud .mini-map>span{display:none}
.compact-hud .quest-toggle{top:max(136px,calc(env(safe-area-inset-top) + 126px));right:max(12px,env(safe-area-inset-right));width:82px;min-height:44px;padding:5px;font-size:10px}.compact-hud .quest{top:max(188px,calc(env(safe-area-inset-top) + 178px));right:max(12px,env(safe-area-inset-right));left:auto;width:min(280px,calc(100% - 104px));max-height:calc(var(--game-height,100dvh) - 390px);min-height:90px;overflow-y:auto;padding:12px;z-index:5;pointer-events:auto;background:#243c30f2;border:1px solid #c6c39688;border-radius:10px;visibility:visible}.compact-hud .quest p{display:block;font-size:12px;line-height:1.6}.compact-hud .quest h2{font-size:15px;margin:7px 0}.compact-hud .quest .eyebrow{font-size:9px}
.compact-hud #knowledge{max-width:calc(100% - 106px);flex-wrap:wrap}.compact-hud .weather{top:103px;left:12px;max-width:calc(100% - 112px);font-size:9px}.compact-hud .weather small{display:none}.compact-hud .growth-strip button{min-height:44px;font-size:10px;padding:5px 7px}.compact-hud .growth-strip-main{gap:5px}.compact-hud #pinned{top:184px;left:12px;width:min(210px,calc(100% - 112px));max-height:145px;overflow-y:auto}.compact-hud.quest-open #pinned{visibility:hidden}.compact-hud .hotbar{display:flex;justify-content:flex-start;overflow-x:auto;scroll-snap-type:x proximity;overscroll-behavior:contain;scrollbar-width:thin}.compact-hud .slot{min-width:44px;flex:0 0 44px;scroll-snap-align:start}.compact-hud .location{display:none}
@media(orientation:landscape) and (max-height:560px){.compact-hud .quest{top:184px;max-height:calc(var(--game-height,100dvh) - 200px);min-height:70px;right:103px;width:250px}.compact-hud .camp-toolbar{top:110px;max-width:calc(100% - 112px)}.compact-hud .camp-toolbar .tool-rail{max-width:calc(100vw - 124px)}.compact-hud .weather{top:94px}.compact-hud #pinned{top:168px;max-height:104px}.compact-hud .sound-toggle{right:102px;top:66px;bottom:auto}.compact-hud .mini-map{top:70px}}
.compact-hud .camp-toolbar{left:12px;right:auto;top:174px;max-width:calc(100% - 24px);flex-direction:row;align-items:flex-start;gap:6px}.compact-hud .camp-toolbar-toggle{min-width:68px;min-height:44px}.compact-hud .camp-toolbar .tool-rail{flex-direction:row;gap:4px;align-self:flex-start;max-height:48px;width:calc(100vw - 112px);max-width:calc(100vw - 112px);overflow-x:auto;overflow-y:hidden;padding:0 0 3px;margin:0}.compact-hud .camp-toolbar .tool-rail button{height:44px;min-height:44px;width:48px;min-width:48px;flex:0 0 48px;padding:3px}.compact-hud .camp-toolbar .tool-rail button span{font-size:18px}.compact-hud .camp-toolbar .tool-rail button b{font-size:9px}.compact-hud .camp-toolbar .tool-rail kbd{display:none}.compact-hud.camp-open #pinned{visibility:hidden}.compact-hud #pinned{top:228px}
@media(orientation:landscape) and (max-height:560px){.compact-hud .quest{right:112px}}
/* 高阶多一个特技键时改为两排，横屏也不挤进快捷物品栏。 */
@media(orientation:landscape) and (max-height:560px){.compact-hud.has-touch-ability .touch-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:5px}}

/* 手机传送不使用整屏闪光，保留虫洞和角色动作提示。 */
.compact-hud #game.warp-flash:after{animation:none;display:none}
.compact-hud .overlay{backdrop-filter:none}

/* 营地助手：详细规则按需展开，手机不增加常驻面板。 */
.journey-settings{margin:16px 0;text-align:left;border:1px solid #a7b38970;border-radius:10px;background:#233d303d}
.journey-settings summary{min-height:44px;padding:12px 14px;color:#ead4a1;cursor:pointer;font-size:14px}.journey-settings summary span{float:right;color:#c3ccb5;font-size:12px}
.journey-settings-body{padding:0 14px 14px}.journey-settings fieldset{border:0;padding:0;margin:14px 0}.journey-settings legend{font-size:13px;color:#dfd1aa}.journey-settings .journey-choices{margin:8px 0;display:grid;grid-template-columns:1fr 1fr;gap:8px}.journey-settings .difficulty-choices{margin:8px 0;max-width:none}.journey-settings button{min-height:52px;font-size:13px}.journey-settings button small{font-size:12px;line-height:1.7}.journey-settings button.selected{box-shadow:inset 0 0 0 1px #ead4a1}
.seed-setting{display:grid;grid-template-columns:1fr minmax(140px,220px);align-items:center;gap:10px;font-size:13px}.seed-setting small{grid-column:1/-1;line-height:1.7;color:#becbb2}.seed-setting input{width:100%;box-sizing:border-box;min-height:44px;color:#eee1bf;background:#1d352a;border:1px solid #adba8977;border-radius:6px;padding:8px 12px;font:inherit}
.welcome-simple{width:600px}.welcome-simple>.primary{display:block;width:min(340px,100%);margin:14px auto 8px;min-height:48px}.welcome-simple .game-crest img{width:70px;height:70px}.welcome-simple>.text-help{min-height:44px;display:block;margin:auto}.welcome-simple>.journey-settings{max-width:480px;margin:12px auto}.welcome-simple .intro{line-height:1.9;font-size:15px}.welcome-simple .minor{font-size:12px;line-height:1.8}.journey-new-actions{position:sticky;bottom:-1px;padding:14px 0 0;background:#2c3a2efa;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.journey-new-actions>.primary{min-height:48px;flex:1}.journey-new-actions .text-help{min-height:44px;padding:8px}
.vital.caution{border-color:#e4bc71}.vital.urgent{border-color:#e9a28e}.vital.urgent .meter i{background:#e9a28e}.survival-hint{color:#edd49b;background:#20392ee8;border:1px solid #b4b98380;border-radius:6px;font-size:11px;min-height:30px;padding:5px 9px;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:none}.survival-hint.urgent{color:#ffe2c9;border-color:#e0a082}.weather{flex-wrap:wrap;max-width:calc(100% - 550px)}
.robot-summary{display:flex;gap:16px;align-items:center}.robot-summary img{width:74px;height:94px;flex-shrink:0}.robot-summary h3,.robot-store h3,.safety-card h3{color:#eddaa5;margin:6px 0;font-size:17px}.robot-summary p,.robot-note,.robot-card p,.robot-store p,.safety-card p{font-size:13px;line-height:1.8;color:#d1dbc4;overflow-wrap:anywhere}.robot-note{padding:10px 12px;background:#182f295c;border-radius:8px}.robot-settings{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0}.robot-settings label{display:flex;flex-direction:column;gap:8px;font-size:13px;color:#d8ddc3}.robot-settings select{min-height:44px;width:100%;border:1px solid #a9b48b77;background:#213b30;color:#efe2bc;border-radius:6px;padding:8px;font-size:14px}.robot-actions{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}.robot-actions button,.robot-card>.secondary,.safety-card>.secondary{min-height:44px;padding:9px 12px}.robot-card,.safety-card,.robot-store{border:1px solid #aab78455;border-radius:10px;padding:14px;margin:12px 0;background:#20372b50}.robot-store small{font-size:12px;line-height:1.8;color:#bdcbb0}.safety-card.urgent{border-color:#dfa187}.safety-list{display:grid;gap:10px}.safety-list .safety-card{margin:0}.robot-card .robot-store{margin-bottom:0}
@media(max-width:650px),(max-height:560px) and (max-width:1280px){.weather{max-width:calc(100% - 124px);row-gap:4px}.survival-hint{min-height:30px;font-size:10px;padding:4px 7px;max-width:100%}.weather>.survival-hint{flex-basis:auto}.robot-settings{grid-template-columns:1fr}.robot-card,.safety-card,.robot-store{padding:11px}.robot-actions>button{flex:1;min-width:120px}.robot-summary{gap:10px}.welcome-simple .intro{font-size:13px}.journey-settings button small{font-size:11px}.journey-settings .difficulty-choices,.journey-settings .journey-choices{grid-template-columns:1fr}.journey-settings button{padding:10px}.journey-settings-body{padding:0 10px 10px}.journey-settings{margin:10px 0}.seed-setting{grid-template-columns:1fr}.seed-setting small{grid-column:auto}.journey-new-actions{padding-top:8px;gap:4px}.journey-new-actions>.text-help{font-size:12px}.welcome-simple .game-crest img{width:50px;height:50px}.welcome-simple h1{font-size:42px;margin:4px 0}.welcome-simple .minor{font-size:11px}}
@media(max-height:560px) and (min-width:651px){.welcome-simple .game-crest{display:none}.welcome-simple h1{font-size:34px}.welcome-simple .chapter{margin:4px 0}.welcome-simple .intro{margin:8px 0}.welcome-simple>.primary{margin:8px auto;min-height:44px}.welcome-simple>.journey-settings{margin:6px auto}.welcome-simple>.minor{margin:6px 0}.welcome-simple>.text-help{min-height:34px}.robot-settings{grid-template-columns:repeat(3,minmax(0,1fr))}.journey-settings .difficulty-choices,.journey-settings .journey-choices{grid-template-columns:1fr 1fr}}
@media(prefers-reduced-motion:reduce){.vital.caution,.vital.urgent{animation:none}}
