:root{font-family:Microsoft YaHei UI,PingFang SC,system-ui,sans-serif;color:#f1efda;background:#087e84;font-synthesis:none;font-size:14px;--cream:#f5eed6;--ink:#24463e;--gold:#f5cf81;--coral:#d78e58;--edge:#fff3d432}.view-control{display:grid;grid-template-columns:auto 1fr 48px;gap:12px;align-items:center;margin-top:20px;font-size:12px}.view-control input{width:100%;accent-color:#6b8061}.view-control small{grid-column:1/-1;color:#788777}.view-control output{text-align:right}*{box-sizing:border-box}html,body,#app{margin:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none}button{font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}button:focus-visible{outline:3px solid #ffdd87;outline-offset:5px}button:disabled{cursor:default;opacity:.45}svg{width:28px;height:28px;flex:none;vertical-align:middle}#world{position:absolute;width:100%;height:100%;display:block;image-rendering:pixelated;touch-action:none}.hidden{display:none!important}.vignette{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 -100px 150px -80px #053b44aa,inset 0 140px 150px -100px #062f39aa}.brand{position:absolute;top:max(28px,env(safe-area-inset-top));left:32px;pointer-events:none;text-shadow:0 2px #063e4260}.brand b{font-size:27px;letter-spacing:-1.5px;font-weight:900;display:block;line-height:1}.brand b span{color:var(--gold)}.brand b i{font-size:10px;color:#dfb36c;margin-left:8px;vertical-align:top}.brand small{font-size:10px;letter-spacing:5px;display:block;margin-top:9px;opacity:.65}.vitals{position:absolute;top:107px;left:32px;display:flex;gap:12px;align-items:center}.vital{display:flex;align-items:center;gap:6px}.vital>span{width:40px;height:5px;background:#092f3c6b;border-radius:2px;overflow:hidden}.vital i{display:block;width:100%;height:100%;background:currentColor}.vital b{font-size:10px;color:#dcebe0;font-weight:500;font-variant-numeric:tabular-nums}.health{color:#e4a28b}.hunger{color:#e1c88b}.thirst{color:#a7d6dc}.weather{position:absolute;right:30px;top:29px;display:flex;align-items:center;gap:12px;font-size:12px;letter-spacing:1px}.weather .sun{font-size:28px;color:#f9d288}.weather small{display:block;font-size:10px;opacity:.6;margin-top:5px}.icon-button{display:grid;place-items:center;background:#104b5355;color:#e9efd7;border:1px solid var(--edge);width:40px;height:40px;border-radius:10px}.icon-button svg{width:22px;height:22px}.weather button{margin-left:8px}.quest{position:absolute;top:30px;left:50%;transform:translate(-50%);width:354px;display:flex;gap:14px;align-items:center;background:linear-gradient(100deg,#153f3ae6,#17473ad9);border:1px solid #e8d6a433;border-top:2px solid #d9bc75;padding:17px 18px 16px;box-shadow:0 8px 24px #043e3a24;border-radius:3px 3px 14px;pointer-events:none}.quest-number{font-size:24px;color:#ddc281;font-weight:300;align-self:flex-start;line-height:1.4;font-variant-numeric:tabular-nums}.quest small{font-size:10px;color:#b6ceba;letter-spacing:2px}.quest strong{display:block;font-size:15px;letter-spacing:1px;margin-top:5px}.quest p{font-size:11px;margin:6px 0 0;color:#afc6b7}.quest-dots{display:flex;position:absolute;bottom:12px;right:16px;gap:4px}.quest-dots i{width:4px;height:4px;background:#728779}.quest-dots i.filled{background:#e5c075}.target-label{position:absolute;transform:translate(-50%,-100%);font-size:12px;font-weight:700;text-shadow:0 2px 3px #063d41;pointer-events:none;white-space:nowrap}.target-label span{display:block;font-size:10px;opacity:.8;font-weight:400;margin-top:4px}.resources{position:absolute;bottom:126px;left:50%;transform:translate(-50%);display:flex;gap:24px;pointer-events:none}.resources>span{display:flex;align-items:center;gap:7px;text-shadow:0 1px 4px #003d40}.resources svg{width:27px;height:27px}.resources b{font-size:17px;min-width:12px;font-variant-numeric:tabular-nums}.resources small{font-size:10px;color:#d1e4d4}.toolbar{position:absolute;bottom:max(28px,env(safe-area-inset-bottom));left:50%;transform:translate(-50%);display:flex;gap:8px;background:#123f3de0;border:1px solid #d6dbb638;padding:7px;border-radius:12px;box-shadow:0 6px #0b333842,0 12px 30px #002a3e33}.slot{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;width:68px;height:68px;color:#c1d9cd;background:#224f49;border:1px solid transparent;border-radius:6px;transition:background .15s}.slot svg{width:32px;height:32px}.slot small{font-size:10px;margin-top:3px;letter-spacing:1px}.slot.active{border-color:#dfc98c;background:#5c7150;color:#fff2c8;box-shadow:inset 0 0 0 2px #f5d99a15}.slot kbd{position:absolute;right:5px;top:3px;font-family:inherit;font-size:9px;opacity:.4}.slot em{display:none;position:absolute;right:5px;top:5px;width:6px;height:6px;border-radius:50%;background:#f8d082}.slot em.ready{display:block}.slot.ready{animation:readyPulse 1.8s infinite}@keyframes readyPulse{50%{box-shadow:0 0 18px #f6d38a66;border-color:#ffe5a4}}.action-wrap{position:absolute;right:54px;bottom:38px;display:flex;flex-direction:column;align-items:center;gap:12px}.action-wrap>small{font-size:11px;color:#e0ebd8;text-shadow:0 1px 3px #073c44}.action-wrap>button{width:100px;height:100px;border-radius:50%;border:2px solid #f4d899;background:radial-gradient(circle at 35% 25%,#debb78,#a9824b);color:#293c32;box-shadow:0 5px #815b34,0 0 0 6px #d8cf9f1a,0 8px 30px #063d4b66;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;touch-action:none;-webkit-user-select:none;user-select:none}.action-wrap>button:hover{filter:brightness(1.08)}.action-wrap>button:active{transform:translateY(2px);box-shadow:0 3px #815b34,0 0 0 6px #d8cf9f1a}.action-wrap>button svg{width:40px;height:40px}.action-wrap>button strong{font-size:14px;letter-spacing:2px}.action-wrap>button.reel{background:radial-gradient(circle at 35% 25%,#b2dfbe,#65a68c);border-color:#c5ebbf;box-shadow:0 5px #416c57,0 0 0 6px #d8cf9f1a}.action-key{font-size:10px;opacity:.5}.keyboard-tip{position:absolute;bottom:42px;left:38px;text-align:center;width:180px;color:#cce2d6}.keyboard-tip kbd{font-family:inherit;font-size:10px;display:inline-grid;place-items:center;width:22px;height:22px;border:1px solid #c8e8dc66;background:#17525288;border-radius:4px;margin:2px}.keyboard-tip>span{display:block;font-size:10px;opacity:.7;margin-top:10px}.joystick{display:none;position:absolute;left:22px;bottom:42px;width:108px;height:108px;border-radius:50%;border:1px solid #e4f1dc47;background:#0b4b5260;touch-action:none}.joy-cross{position:absolute;inset:0;display:grid;place-items:center;font-size:80px;line-height:1;opacity:.09}.joystick #joy-thumb{position:absolute;width:42px;height:42px;left:calc(50% - 21px);top:calc(50% - 21px);border:1px solid #e7f2d78c;border-radius:50%;background:#cde9d54a;box-shadow:0 4px #0c454755;pointer-events:none}.joystick>span{position:absolute;bottom:-24px;width:100%;text-align:center;font-size:10px;opacity:.6}.save-indicator{position:absolute;right:24px;bottom:12px;font-size:9px;letter-spacing:1px;opacity:.4;pointer-events:none}.build-panel{position:absolute;left:50%;bottom:174px;transform:translate(-50%);width:330px;padding:20px;background:var(--cream);border-radius:10px;color:var(--ink);box-shadow:0 12px 40px #043b4b55}.tiny-label{font-size:10px;letter-spacing:3px;color:#6d8173}.build-panel strong{display:block;font-size:19px;margin-top:5px}.build-panel strong svg{width:22px;height:22px;margin-right:7px}.build-panel p{font-size:11px;color:#7d8774;margin:8px 0}.cost{display:flex;gap:20px;margin:17px 0;color:#b67855;font-size:12px}.cost svg{width:24px;height:24px}.cost .enough{color:#52764d}.build-buttons{display:flex;gap:8px}.build-buttons button{flex:1;padding:11px 8px}.primary,.secondary{border:0;border-radius:6px;padding:14px 22px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:12px}.primary{background:#d6ae6a;color:#243d33;box-shadow:0 3px #9c7849}.primary:hover{background:#e4bd78}.primary svg{width:24px;height:24px}.secondary{background:#e4e2cb;color:#52675b;border:1px solid #bec3ac}.toast{position:absolute;left:50%;top:68%;transform:translate(-50%,8px);background:#123e38ed;border:1px solid #d5d7ae4d;padding:12px 22px;border-radius:7px;font-size:13px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .18s,transform .18s;z-index:20}.toast.show{opacity:1;transform:translate(-50%)}.milestone{position:absolute;top:25%;left:50%;transform:translate(-50%);text-align:center;pointer-events:none;white-space:nowrap;text-shadow:0 3px 12px #164b39;background:radial-gradient(ellipse,#234c42c9,transparent 70%);padding:25px 55px}.milestone span{font-size:10px;color:#edd494;letter-spacing:3px}.milestone strong{display:block;font-size:30px;font-weight:600;margin:12px 0}.milestone p{font-size:12px;color:#d6e3c9}.intro{position:absolute;inset:0;background:linear-gradient(90deg,#073a46db,transparent 75%),linear-gradient(0deg,#073a4688,transparent 30%);display:flex;align-items:center;padding:10vw;z-index:30}.intro-content{max-width:460px;transform:translateY(8px)}.eyebrow{font-size:11px;letter-spacing:4px;color:#c1dac5}.intro h1{font-size:78px;letter-spacing:-5px;line-height:1.1;margin:22px 0;font-weight:900;text-shadow:0 4px 0 #123f40}.intro h1 span{color:#e8ca8b}.intro p{font-size:18px;line-height:1.9;letter-spacing:3px;color:#d6e6d5;margin-bottom:34px}.intro button{font-size:15px;min-width:200px;padding:17px 24px}.intro-content>small{display:block;margin-top:22px;font-size:10px;letter-spacing:4px;color:#b0cbbe}.intro-bottom{position:absolute;bottom:30px;font-size:10px;letter-spacing:3px;opacity:.45}.modal{position:absolute;inset:0;z-index:50;background:#052e3b80;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);display:grid;place-items:center;padding:20px}.modal-card{position:relative;max-width:430px;width:100%;padding:30px;background:var(--cream);color:var(--ink);border-radius:12px;box-shadow:0 20px 80px #00313c80;max-height:90vh;overflow:auto}.modal-card h2{font-size:25px;margin:10px 0 14px}.modal-card .close{position:absolute;right:15px;top:15px;background:transparent;color:#60796b;border-color:#b8c3ad}.muted{font-size:12px;color:#788777;line-height:1.8}.bag-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:26px 0}.bag-grid>div{display:flex;flex-direction:column;align-items:center;gap:10px;background:#e5dfc8;border:1px solid #cecdb2;border-radius:6px;padding:18px 5px}.bag-grid svg{width:44px;height:44px}.bag-grid b{font-size:11px;font-weight:500}.bag-grid strong{font-size:17px}.bag-tools{font-size:11px;display:flex;flex-wrap:wrap;align-items:center;gap:7px}.bag-tools span{color:#8b9480;font-size:9px}.bag-tools svg{width:23px;height:23px}.bag-foot{font-size:11px;color:#7d8c77;margin:26px 0 0;padding-top:18px;border-top:1px solid #d4d7be}.setting-row{display:flex;align-items:center;gap:10px;width:100%;background:#e3e0c9;color:var(--ink);padding:14px;border:1px solid #c9cdb5;border-radius:6px;margin-top:22px}.setting-row b{margin-left:auto;font-size:11px;color:#658054}.control-help{font-size:12px;color:#7d8c79;line-height:1.9;padding:16px 0}.wide{width:100%;margin:8px 0}.text-button{border:0;background:none;color:#a58367;font-size:11px;display:block;margin:16px auto 0}#loading{position:absolute;inset:0;background:#0b545a;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:100;gap:12px}.load-mark{font-size:36px;font-weight:900;color:#e8cb87;letter-spacing:-3px;border:1px solid #8ead8f55;border-radius:12px;padding:18px}#loading p{letter-spacing:3px;font-size:14px}#loading small{font-size:11px;opacity:.5}.hud{position:absolute;inset:0;pointer-events:none}.hud button,.hud .joystick,.hud .build-panel{pointer-events:auto}@media(pointer:coarse){.joystick{display:block}.keyboard-tip,.slot kbd,.action-key{display:none}.action-wrap{bottom:47px}.save-indicator{bottom:10px}}@media(max-width:700px){.brand{top:max(20px,env(safe-area-inset-top));left:20px}.brand b{font-size:23px}.brand small{font-size:8px;letter-spacing:4px}.weather{top:20px;right:18px;gap:7px;font-size:10px}.weather .sun{font-size:22px}.weather small{font-size:9px}.weather button{width:34px;height:34px;margin-left:4px}.vitals{top:83px;left:20px;gap:13px}.vital>span{width:27px}.vital svg{width:14px;height:14px}.vital b{font-size:9px}.quest{top:117px;width:calc(100% - 40px);max-width:370px;padding:13px 14px;gap:12px}.quest strong{font-size:14px}.quest p{font-size:10px;max-width:270px}.quest small{font-size:9px}.quest-number{font-size:21px}.resources{bottom:175px;gap:20px}.resources small{display:none}.resources svg{width:25px;height:25px}.resources b{font-size:15px}.toolbar{bottom:92px;padding:5px;gap:5px}.slot{width:51px;height:55px}.slot svg{width:27px;height:27px}.slot small{font-size:9px}.slot kbd{display:none}.joystick{display:block;width:91px;height:91px;left:22px;bottom:34px}.keyboard-tip{display:none}.action-wrap{right:22px;bottom:34px;gap:8px}.action-wrap>button{width:88px;height:88px}.action-wrap>small{display:none}.action-wrap>button svg{width:34px;height:34px}.action-wrap>button strong{font-size:12px}.action-key{display:none}.save-indicator{bottom:12px;font-size:8px}.build-panel{bottom:218px;width:calc(100% - 56px);max-width:340px;padding:16px}.build-panel strong{font-size:17px}.toast{top:auto;bottom:215px;font-size:11px;padding:10px 15px;max-width:94vw;white-space:normal;text-align:center}.milestone{top:26%;padding:20px 0;width:100%}.milestone strong{font-size:24px}.milestone span{font-size:9px}.intro{align-items:flex-end;justify-content:center;text-align:center;padding:0 24px 92px;background:linear-gradient(0deg,#073a46ef 5%,#073a46b3 40%,transparent 88%)}.intro h1{font-size:61px;margin:16px 0}.intro p{font-size:14px;line-height:1.8;letter-spacing:2px;margin:18px 0 24px}.intro-content>small{font-size:9px;margin-top:18px}.eyebrow{font-size:9px;letter-spacing:3px}.intro-bottom{bottom:24px;font-size:9px}.intro button{padding:15px 23px}.modal-card{padding:25px}.bag-grid{gap:7px}.bag-tools{gap:5px}}@media(max-height:580px)and (min-width:701px){.quest{top:18px;padding:10px 14px}.resources{bottom:106px}.toolbar{bottom:15px}.action-wrap{bottom:22px}.action-wrap>button{width:80px;height:80px}.build-panel{bottom:145px}.vitals{top:95px}.intro h1{font-size:55px}.intro p{margin:14px 0 20px;font-size:15px}.milestone{top:24%}}#hotbar{display:flex;gap:6px}.toolbar{gap:7px}.toolbar .slot{width:62px}.slot small{font-size:9px;letter-spacing:0}.slot svg{width:29px;height:29px}.empty-slot{font-size:26px;opacity:.3}.stack-count{position:absolute;right:5px;bottom:3px;font-size:10px}.durability{position:absolute;bottom:4px;left:8px;right:8px;height:3px;background:#172f3c55;border-radius:2px;overflow:hidden}.durability i{display:block;height:100%;background:#e7c980}.slot:has(.durability) small{margin-bottom:5px}.held-caption{position:absolute;bottom:111px;left:50%;transform:translate(-50%);font-size:10px;white-space:nowrap;color:#e6dfb5;text-shadow:0 1px 4px #003b40}.resources{bottom:138px}.weather b{font-weight:500;font-variant-numeric:tabular-nums}.weather small{opacity:.85}#current-arrow{display:inline-block;font-style:normal;font-size:15px;line-height:10px;color:#f4d28c}#current-state{font-variant-numeric:tabular-nums;font-size:9px}.charge{position:absolute;transform:translate(-50%,-100%);width:104px;height:12px;border:2px solid #fff;border-radius:4px;overflow:hidden;background:#102c3a88;pointer-events:none}.charge i{display:block;width:100%;height:100%;background:linear-gradient(90deg,#ff5266,#ffae49,#ffed61,#65e49a,#55d8f1 68%,#6886ff,#d581fa);will-change:clip-path}.pickup{position:absolute;transform:translate(-50%,-100%);font-size:13px;font-weight:700;white-space:nowrap;color:#fff2c5;text-shadow:0 2px 3px #093b39,1px 0 3px #093b39;pointer-events:none}.inventory-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin-top:20px}.bag-slot{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:65px;background:#e4dfc9;border:1px solid #c3c4aa;border-radius:5px;color:#355345;padding:5px 2px}.bag-slot svg{width:28px;height:28px}.bag-slot small{font-size:8px;white-space:nowrap}.bag-slot kbd{position:absolute;right:4px;top:3px;font-size:8px;opacity:.6}.bag-slot.quick-row{border-color:#b68d46;background:#e5d6af;margin-top:8px}.bag-slot.chosen{outline:2px solid #64864a;background:#d4dfba}.bag-slot .durability{bottom:3px;left:6px;right:6px;background:#a0a489}.bag-slot .durability i{background:#5f8954}.bag-slot:has(.durability) small{padding-bottom:4px}.bag-selection{font-size:10px;color:#71836a;min-height:15px}.craft-tools{display:flex;gap:8px}.craft-tools button{flex:1;display:flex;flex-direction:column;gap:5px;font-size:11px;padding:12px 5px}.craft-tools small{font-size:9px;font-weight:400}.bag-foot{line-height:1.8;margin-top:18px}.modal-card{max-width:480px}.action-wrap>button strong{font-size:12px;letter-spacing:0}.action-wrap>small{max-width:185px;text-align:center;line-height:1.6}.build-panel{bottom:187px}@media(min-width:701px)and (max-width:1100px){.quest{top:147px;width:320px;left:30px;transform:none}.action-wrap{right:25px}.keyboard-tip{left:20px;width:150px}.toolbar .slot{width:52px}.toolbar,#hotbar{gap:4px}.weather{font-size:11px}}@media(max-width:700px){.toolbar{bottom:126px;padding:5px;gap:4px;width:max-content;max-width:calc(100% - 24px)}#hotbar{gap:4px}.toolbar .slot{width:43px;height:53px}.toolbar .slot svg{width:25px;height:25px}.toolbar .slot small{font-size:7px}.toolbar .durability{left:5px;right:5px;bottom:3px}.held-caption{bottom:190px;font-size:9px}.resources{bottom:211px;gap:18px}.build-panel{bottom:250px}.weather{gap:6px;font-size:10px}.weather small{font-size:8px}.weather .sun{font-size:21px}.quest{top:126px}.quest p{max-width:260px}.action-wrap{bottom:25px}.action-wrap>button{width:78px;height:78px}.joystick{bottom:27px;width:78px;height:78px}.toast{bottom:260px}.inventory-grid{gap:5px}.modal-card{padding:24px 18px}.bag-slot{min-height:60px}.bag-slot small{font-size:7px}.pickup{font-size:11px}}@media(max-height:580px)and (min-width:701px){.quest{display:none}.resources{bottom:125px}.held-caption{bottom:100px}.build-panel{bottom:165px}.toolbar{bottom:20px}.toolbar .slot{height:60px}}.pickup{max-width:calc(100vw - 30px);white-space:normal;text-align:center}.toast{z-index:60}#settings{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.debug-section{border:1px solid #bdc4ad;border-radius:8px;padding:12px;margin:15px 0}.debug-section legend{font-size:12px;font-weight:700;padding:0 5px}.debug-current{background:#e1e3cc;border-radius:6px;padding:10px 12px;font-size:11px;line-height:1.7;font-variant-numeric:tabular-nums}.debug-time{display:flex;align-items:center;gap:9px;font-size:12px}.debug-time input{min-width:0;flex:1;padding:7px;border:1px solid #b6bea3;background:#fffdf0;color:var(--ink);border-radius:5px;font:inherit;color-scheme:light}.debug-time button{padding:8px 14px}.debug-freeze{display:flex;align-items:center;gap:5px;margin:10px 0;font-size:11px;color:#607861}.debug-freeze input{accent-color:#607c53}.debug-choices{display:flex;flex-wrap:wrap;gap:7px}.debug-choices button{flex:1;white-space:nowrap;border:1px solid #b8c2a6;border-radius:5px;background:#e9e7d2;color:#47624c;padding:8px 10px;font-size:11px}.debug-choices button[aria-pressed=true]{background:#587255;color:#fff3ca;border-color:#587255}.debug-events{display:grid;grid-template-columns:1fr 1fr}.debug-section .muted{font-size:10px;margin:9px 0 0}.debug-result{min-height:36px;font-size:12px;line-height:1.7;color:#477149}.debug-footer{display:flex;gap:9px}.debug-footer button{flex:1;padding:12px 6px}.debug-indicator{position:absolute;right:32px;top:112px;font-size:10px;color:#ffe39c;text-shadow:0 1px 3px #143936}.debug-death{position:absolute;top:43%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:10px;padding:22px;background:#153b3bea;border:1px solid #e0c79b;border-radius:10px;pointer-events:auto;width:260px;box-shadow:0 10px 50px #082d3977}.debug-death strong{font-size:20px}.debug-death span{font-size:11px;color:#d1dcca}.debug-death button{margin-top:5px;font-size:12px}.debug-death.hidden{display:none}@media(max-width:700px){.debug-indicator{top:108px;right:20px;font-size:9px}.debug-choices button{padding:8px 6px;font-size:10px}.debug-section{padding:10px;margin:12px 0}.debug-death{top:42%}.charge{width:92px;height:11px}}.debug-natural-time{display:block;border:0;background:transparent;color:#607861;text-decoration:underline;font-size:10px;padding:0;margin:0 0 12px auto}.foundation-health{position:absolute;transform:translate(-50%,-100%);width:84px;height:19px;background:#342b25d9;border:1px solid #f4dc9b;border-radius:3px;padding:0;overflow:hidden;pointer-events:auto;color:#fff7d2;cursor:pointer}.foundation-health i{display:block;position:absolute;inset:0 auto 0 0;background:#bd653b}.foundation-health span{position:relative;z-index:1;font-size:10px;line-height:17px;text-shadow:0 1px #35251a}.foundation-health[hidden]{display:none}.craft-tools{flex-wrap:wrap}.craft-tools button{min-width:100px}#hurt-vignette{position:absolute;inset:0;pointer-events:none;z-index:4;opacity:0;box-shadow:inset 0 0 90px #ad563caa}#hurt-vignette.hit{animation:hurt-flash .5s ease-out}@keyframes hurt-flash{0%{opacity:.8}to{opacity:0}}.survival-mode .quest,.survival-mode .keyboard-tip,.survival-mode .action-key,.survival-mode #action-hint,.survival-mode .held-caption{display:none}.survival-ui{position:absolute;inset:0;pointer-events:none}.survival-ui[hidden]{display:none}.facility-marker{position:absolute;transform:translate(-50%,-100%);width:36px;height:36px;border:1px solid #dbd6a98c;border-radius:50%;background:#254d48c9;color:#e9d6a4;pointer-events:auto;cursor:pointer;padding:6px}.facility-marker svg{width:100%;height:100%}.facility-marker.place{border:2px dashed #e1d6a0;background:#4c796fc9}.facility-marker[hidden]{display:none}.facility-panel{position:absolute;bottom:170px;left:50%;transform:translate(-50%);width:278px;padding:12px;background:#193e3cf2;border:1px solid #afbc95;border-radius:9px;pointer-events:auto;color:#f0dfb5;box-shadow:0 7px 25px #16393270}.facility-panel.hidden{display:none}.facility-panel svg{width:27px;height:27px}.facility-heading{display:flex;align-items:center;gap:8px;font-size:13px}.facility-heading b{flex:1}.facility-panel button,.container-actions button{background:#426456;color:#f0dfb5;border:1px solid #b6bf9466;border-radius:5px;cursor:pointer;padding:5px}.facility-panel button:disabled{opacity:.35;cursor:default}.facility-progress{margin:10px 0;height:4px;background:#102e2c;border-radius:2px;overflow:hidden}.facility-progress i{display:block;height:100%;background:#e0b56a}.facility-buttons{display:flex;gap:8px}.facility-buttons button{flex:1;display:flex;align-items:center;justify-content:center;gap:3px;min-height:44px}.facility-buttons button svg:last-child{width:14px}.facility-buttons small{font-size:11px}.container-actions{position:absolute;right:38px;bottom:265px;display:flex;gap:9px;pointer-events:auto}.container-actions button{width:43px;height:43px}.container-actions svg{width:28px;height:28px}.illness-icon{position:absolute;top:135px;left:32px;width:28px;height:28px;animation:sick-pulse 1.8s infinite}.illness-icon.hidden{display:none}@keyframes sick-pulse{50%{opacity:.5}}.survival-recipes{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:18px}.survival-recipes>button{display:flex;align-items:center;flex-direction:column;gap:5px;font-size:11px;padding:10px 6px}.survival-recipes>button>svg{width:32px;height:32px}.survival-recipes small{display:flex;justify-content:center;flex-wrap:wrap;gap:4px}.survival-recipes small span{display:flex;align-items:center;gap:2px}.survival-recipes small svg{width:17px;height:17px}.survival-recipes button:disabled{opacity:.45}@media(max-width:700px){.facility-panel{bottom:220px;width:252px}.container-actions{right:18px;bottom:231px}.facility-marker{width:30px;height:30px;padding:5px}.illness-icon{left:18px;top:107px}.survival-recipes{grid-template-columns:repeat(2,1fr)}}.liquid-pips{display:flex;position:absolute;bottom:4px;left:7px;right:7px;gap:3px}.liquid-pips i{flex:1;height:5px;border:1px solid #e2d8ac;background:linear-gradient(to right,#a0d2c5 var(--fill),#38575b var(--fill))}.liquid-pips.salt i{background:linear-gradient(to right,#28658e var(--fill),#38575b var(--fill))}:root{--canvas:#eee1bb;--canvas-deep:#d8c696;--timber:#57432c;--timber-dark:#302c22;--brass:#b89555;--ink:#453e2c;--danger:#793c32}.brand{top:22px;left:auto;right:28px;text-align:right}.brand b{font-size:25px;text-shadow:1px 2px #173c35}.brand small{font-size:9px;letter-spacing:3px}.hud-settings{position:absolute;top:84px;right:28px;color:#e8d4a4;background:#273f32b8;border:1px solid #b6a7787a;border-radius:3px;width:34px;height:34px;pointer-events:auto}.hud-settings svg{width:19px;height:19px}.vitals{top:24px;left:24px;display:flex;flex-direction:column;align-items:stretch;gap:7px;padding:10px 12px;width:171px;border:2px solid #9b8b60;background:#2b3d31e8;box-shadow:3px 3px #172e26,inset 0 0 0 2px #a9986e22;border-radius:2px}.vital{gap:8px;height:20px;display:flex;align-items:center}.vital svg{width:17px;height:17px}.vital>span{height:8px;flex:1;background:#132d27;border-radius:0;box-shadow:inset 0 0 0 1px #b7ac852e}.vital>span i{border-radius:0}.vital b{width:25px;text-align:right;font-size:10px;font-variant-numeric:tabular-nums}.health{color:#db8666}.hunger{color:#d3b36a}.thirst{color:#79b7be}.debug-indicator{right:25px;top:125px;font-size:9px}.illness-icon{left:28px;top:131px}.weather,.resources,.quest,.keyboard-tip,.held-caption,.action-key,#action-hint,#milestone{display:none!important}.toolbar{position:absolute;left:50%;bottom:22px;transform:translate(-50%);display:flex;gap:7px;width:max-content;max-width:calc(100vw - 32px);padding:10px 11px 11px;border:2px solid #9e8255;border-radius:2px;background:repeating-linear-gradient(2deg,transparent 0 8px,#231f181c 9px 10px),linear-gradient(#675139,#453a2b);box-shadow:0 5px #24342a,inset 0 1px #d6bb7c88;pointer-events:auto}.toolbar:before,.toolbar:after{content:"";position:absolute;top:4px;width:5px;height:5px;background:#bfa578;border:1px solid #3e382c;box-shadow:0 67px #bfa578}.toolbar:before{left:3px}.toolbar:after{right:3px}.toolbar .slot{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;width:61px;height:66px;margin:0;padding:5px 3px 10px;border:1px solid #291f16;border-radius:2px;background:#baa57a;color:#443927;box-shadow:inset 0 0 0 2px #ead5a653,inset 0 -5px #6a563b44;touch-action:none}.toolbar .slot.active{border-color:#f2dc9e;background:#d5bc81;outline:2px solid #d5bd7a;outline-offset:1px;box-shadow:inset 0 0 0 2px #f4e0a6a6,0 0 0 3px #443925}.toolbar .slot svg{width:32px;height:32px;filter:drop-shadow(0 1px 0 #3f372544)}.toolbar .slot small{font-size:8px;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.toolbar .slot kbd{position:absolute;top:3px;right:4px;font:9px monospace;color:#655336}.toolbar .slot .stack-count{font-size:10px;right:5px;bottom:7px;color:#453722;text-shadow:0 1px #f9ecc2}.toolbar .utility-slot{background:#695840;border-color:#9b8259;color:#eadbb5;width:53px}.toolbar .utility-slot kbd{color:#c5b28a}.toolbar .utility-slot small{font-size:10px}#hotbar{display:flex;gap:7px}.empty-slot{font-size:22px;opacity:.25}.durability{height:4px;bottom:4px;left:5px;right:5px;border-radius:0;background:#695c42}.durability i{background:#73865d;border-radius:0}.liquid-pips{bottom:4px}.bag-expand{position:absolute;bottom:100%;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:6px;justify-content:center;padding:5px 20px 4px;min-width:115px;border:1px solid #b59964;border-bottom:0;border-radius:3px 3px 0 0;background:#635037;color:#e9d7a8;font-size:11px;letter-spacing:2px;box-shadow:0 -2px #2c332544;pointer-events:auto}.bag-expand svg{width:15px;height:15px}.bag-expanded .bag-expand svg{transform:rotate(180deg)}.backpack-drawer{position:absolute;left:50%;bottom:139px;transform:translate(-50%);width:381px;max-width:calc(100vw - 32px);max-height:calc(100vh - 210px);padding:11px 12px 13px;background:repeating-linear-gradient(0deg,transparent 0 3px,#9c88520a 3px 4px),var(--canvas);color:var(--ink);border:2px solid #8e754c;border-radius:2px;box-shadow:0 5px #403b28a6,0 10px 28px #14332b66;pointer-events:auto;z-index:15}.backpack-drawer:before{content:"";position:absolute;inset:5px;border:1px dashed #b4a075;pointer-events:none}.backpack-drawer[hidden]{display:none}.bag-header{display:flex;align-items:center;gap:8px;margin-bottom:10px;position:relative}.bag-header strong{flex:1;font-size:13px;letter-spacing:2px}.bag-header button{display:flex;align-items:center;justify-content:center;gap:4px;min-height:33px;background:#d7c79e;border:1px solid #ad9668;border-radius:2px;color:#5b4c34;padding:4px 8px;font-size:10px}.bag-header svg{width:20px;height:20px}#bag-trash{color:#7b4a37;background:#d6be92;width:36px}.drawer-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;max-height:calc(100vh - 280px);overflow-y:auto;overscroll-behavior:contain;padding:3px;scrollbar-width:thin}.drawer-grid .bag-slot{position:relative;min-width:0;min-height:61px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4px 2px 10px;border:1px solid #b7a476;border-radius:1px;background:#cdbb91;color:#51432c;box-shadow:inset 0 0 0 2px #e8dab33d;touch-action:none}.drawer-grid .bag-slot small{font-size:8px;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.drawer-grid .bag-slot svg{width:30px;height:30px}.drawer-grid .bag-slot .stack-count{position:absolute;bottom:5px;right:5px;font-size:10px}.drawer-grid .bag-slot.chosen{outline:2px solid #8c7143;background:#e7d3a1}.drag-source{opacity:.4!important}.drop-target{outline:3px solid #f1d38a!important;outline-offset:1px}.dragging-item #bag-trash.drop-target{background:#873f31;color:#f6ddaf;outline-color:#e69674!important}.item-drag-ghost{position:fixed;transform:translate(-50%,-60%);width:58px;height:65px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:5px;background:#ead3a0eb;border:2px solid #b38b4a;z-index:999;pointer-events:none;box-shadow:2px 5px 12px #12362f88;color:#4c3a23}.item-drag-ghost svg{width:31px;height:31px}.item-drag-ghost small{font-size:8px}.item-drag-ghost .stack-count{position:absolute;right:3px;bottom:3px;font-size:10px}.modal-card{background:repeating-linear-gradient(0deg,transparent 0 3px,#8b77420a 3px 4px),var(--canvas);border:2px solid #8b7046;border-radius:3px;box-shadow:6px 8px #24372bb3,inset 0 0 0 6px #dbc99c;color:#433c2a;padding:26px 24px;max-width:500px}.modal-card h2{color:#443e2d;font-size:25px;letter-spacing:2px;margin:7px 0 16px}.modal-card .tiny-label{color:#897345;letter-spacing:3px;font-size:9px}.modal-card .close{border:1px solid #ae9668;border-radius:2px;background:#d9c89f;color:#675235;right:15px;top:15px}.modal-card .close svg{width:18px;height:18px}.recipe-category{font-size:10px;letter-spacing:4px;color:#8d7951;padding:8px 2px;border-bottom:1px solid #b8a67d;margin-bottom:8px}.crafting-list{display:flex;flex-direction:column}.craft-row{display:flex;align-items:center;position:relative;gap:12px;padding:13px 12px;margin-bottom:8px;min-height:78px;background:#dbcca6;border:1px solid #b7a174;box-shadow:inset 0 0 0 2px #f0e2bc55}.craft-row.unmade{border:2px solid #b78c3e;box-shadow:inset 0 0 0 1px #fff0be,0 0 0 1px #d7b56d55}.craft-item{display:grid;place-items:center;width:42px;height:43px;background:#b9a37a;border:1px solid #a18c61;flex:none}.craft-item svg{width:34px;height:34px}.craft-detail{flex:1;min-width:0}.craft-detail strong{font-size:12px;letter-spacing:.5px;display:block;margin-bottom:7px}.recipe-cost{display:flex;gap:9px;flex-wrap:wrap}.recipe-cost>span{display:flex;align-items:center;gap:3px;color:#6c603f}.recipe-cost svg{width:17px;height:17px}.recipe-cost small{font-size:10px;font-variant-numeric:tabular-nums}.recipe-cost .missing,.construction-choice small .missing,.build-selection-cost .missing{color:#813e30;background:#a44f3d18}.recipe-cost .missing svg,.construction-choice small .missing svg,.build-selection-cost .missing svg{filter:sepia(.7) saturate(.6) brightness(.65)}.craft-go{padding:8px 10px;background:#6f7650;color:#fff1c9;border:1px solid #4c5439;border-bottom:3px solid #43492f;border-radius:2px;min-width:62px;font-size:11px}.craft-go.missing{background:#653d32;color:#c49a7f;border-color:#593a2e;opacity:1}.craft-go.auto{background:#97793e;border-color:#71582b;color:#fff0c4}.recipe-new{position:absolute;right:-5px;top:-6px;width:17px;height:20px;line-height:18px;text-align:center;font-size:13px;font-style:normal;font-weight:700;color:#fff0bd;background:#ac7135;border:1px solid #f5d891;clip-path:polygon(0 0,100% 0,100% 100%,50% 87%,0 100%)}.construction-list{display:flex;flex-direction:column;gap:10px}.construction-choice{display:grid;grid-template-columns:43px 1fr;align-items:center;text-align:left;column-gap:12px;padding:12px;background:#d9c79d;border:1px solid #aa9160;border-radius:1px;color:#54452d;box-shadow:inset 0 0 0 2px #eedeb54d}.construction-choice>span{grid-row:1/3;display:grid;place-items:center;width:42px;height:43px;background:#bba47a;border:1px solid #a08a5a}.construction-choice>span svg{width:32px;height:32px}.construction-choice strong{font-size:13px}.construction-choice small{display:flex;gap:10px;margin-top:7px}.construction-choice small span{display:flex;align-items:center;gap:3px;font-size:10px}.construction-choice small svg{width:18px;height:18px}.construction-choice.demolish-choice{border-style:dashed;background:#cdb58b;color:#7c4433}.construction-choice.missing{outline:2px solid #873f31}.build-panel{position:absolute;bottom:145px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:9px;width:auto;max-width:calc(100vw - 30px);padding:8px 12px;background:#4a432ce8;color:#eedbb0;border:1px solid #b69a60;border-radius:2px;pointer-events:none}.build-panel strong{font-size:12px;white-space:nowrap}.build-panel svg{width:23px;height:23px}.build-selection-cost{display:flex;gap:7px}.build-selection-cost span{display:flex;align-items:center;gap:2px;font-size:10px}.build-selection-cost svg{width:18px;height:18px}.build-cancel{position:absolute;bottom:40px;right:37px;width:88px;height:78px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:5px;border:2px solid #ae8560;border-radius:3px;background:#694b37;color:#f4dfb1;pointer-events:auto;box-shadow:3px 4px #27352a;font-size:12px}.build-cancel svg{width:25px;height:25px}.is-building .action-wrap{display:none}.action-wrap>button{background:#b39a61;border:3px solid #d9c28e;box-shadow:3px 4px #294b3c,inset 0 0 0 3px #8c754d;border-radius:7px;color:#3e3b28}.action-wrap>button:after{display:none}.container-actions button{background:#65583a;border:1px solid #bba673;border-radius:2px}.save-indicator{font-size:8px;color:#d0d5b4;opacity:.65}@media(max-width:700px){.brand{top:18px;right:18px}.brand b{font-size:21px}.brand small{font-size:7px;letter-spacing:2px}.hud-settings{top:70px;right:18px;width:29px;height:29px}.vitals{top:18px;left:16px;width:132px;padding:8px;gap:6px}.vital{height:16px;gap:5px}.vital svg{width:14px;height:14px}.vital b{font-size:9px;width:21px}.vital>span{height:6px}.debug-indicator{top:107px;right:17px;font-size:8px}.illness-icon{left:18px;top:110px;width:22px;height:22px}.toolbar{bottom:117px;padding:7px 7px 8px;gap:4px;max-width:calc(100vw - 22px)}#hotbar{gap:4px}.toolbar .slot{width:39px;height:53px;padding:3px 1px 8px}.toolbar .slot svg{width:26px;height:26px}.toolbar .slot small{font-size:6px}.toolbar .slot kbd{font-size:7px;top:2px;right:3px}.toolbar .slot .stack-count{font-size:8px;bottom:5px;right:4px}.toolbar .utility-slot{width:36px}.toolbar .utility-slot small{font-size:8px}.toolbar .utility-slot kbd{display:none}.toolbar:before,.toolbar:after{width:3px;height:3px;top:3px;box-shadow:0 55px #bfa578}.toolbar:before{left:2px}.toolbar:after{right:2px}.bag-expand{padding:4px 16px 3px;font-size:10px;min-width:105px}.backpack-drawer{bottom:211px;width:319px;max-width:calc(100vw - 22px);padding:10px;max-height:calc(100vh - 350px)}.drawer-grid{gap:4px;max-height:calc(100vh - 409px)}.drawer-grid .bag-slot{min-height:53px}.drawer-grid .bag-slot svg{width:25px;height:25px}.drawer-grid .bag-slot small{font-size:7px}.bag-header{margin-bottom:6px}.bag-header strong{font-size:11px}.bag-header button{min-height:29px;font-size:9px;padding:3px 7px}.bag-header svg{width:18px;height:18px}.modal-card{padding:24px 17px;max-width:calc(100vw - 28px)}.modal-card h2{font-size:22px}.craft-row{gap:8px;padding:11px 8px;min-height:75px}.craft-item{width:34px;height:39px}.craft-item svg{width:29px;height:29px}.craft-detail strong{font-size:11px}.recipe-cost{gap:6px}.recipe-cost svg{width:15px;height:15px}.recipe-cost small{font-size:9px}.craft-go{min-width:55px;padding:8px 7px;font-size:10px}.build-panel{bottom:215px;gap:6px;padding:7px 9px;flex-wrap:wrap;justify-content:center}.build-panel strong{font-size:11px}.build-selection-cost{gap:5px}.build-cancel{right:18px;bottom:27px;width:78px;height:78px}.container-actions{right:18px;bottom:219px}.container-actions button{width:36px;height:36px}.action-wrap>button{border-radius:5px}.joystick{border-radius:8px}.save-indicator{right:12px;bottom:5px}}@media(max-height:580px){.backpack-drawer{bottom:123px;max-height:calc(100vh - 150px)}.drawer-grid{max-height:calc(100vh - 210px)}.vitals{top:16px;left:16px}.brand{top:16px}.build-panel{bottom:125px}}[data-item-index]{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}#action.pour-in strong{color:#26733d}#action.pour-out strong{color:#a83028}.build-selection-cost .missing{color:#ffb2a0;background:#782e24;border-radius:2px;outline:1px solid #e77761}.build-selection-cost .missing svg{filter:none}.construction-choice.unavailable{background:#843a32;color:#ffe0d5;border-color:#df7665}.construction-choice.unavailable small .missing{color:#fff0e8;background:#a12c26}.craft-notice{position:fixed;top:16%;left:50%;transform:translate(-50%);z-index:100;max-width:90vw;padding:10px 18px;background:#153c32ee;color:#fff1c2;border:1px solid #bfa46c;pointer-events:none;text-align:center;font-size:13px}.facility-process-bar{position:absolute;transform:translate(-50%,-100%) scale(var(--progress-scale,1));transform-origin:center bottom;width:44px;height:6px;border:1px solid #e2d8b1;border-radius:99px;overflow:hidden;background:#263a35df;padding:1px;box-shadow:0 1px #102b28;pointer-events:none}.facility-process-bar[hidden]{display:none}.facility-process-bar>i{display:block;width:100%;height:100%;border-radius:99px;background:#e5ae6d;transform-origin:left center}.facility-process-bar[data-kind=distiller]>i{background:#b1dedb}.facility-notice{position:absolute;transform:translate(-50%,-100%);white-space:nowrap;color:#fff0c8;font-size:13px;text-shadow:0 1px 3px #123b38;pointer-events:none}.facility-notice[hidden]{display:none}.action-wrap>button.water-unavailable{background:#7c8179;border-color:#adb3a6;color:#d4d6ca;box-shadow:3px 4px #294b3c,inset 0 0 0 3px #656e67}.drink-notice{display:flex;align-items:center;gap:4px;color:#c5f2ed;white-space:nowrap}.drink-notice.food-notice{color:#f0c17c}.drink-notice svg{width:1em;height:1em}.drink-notice[hidden],.craft-notice[hidden]{display:none}.craft-notice{top:16%;bottom:auto}.release-stamp{display:block;margin-top:5px;font-size:9px;letter-spacing:.3px;color:#d5e3d3;opacity:.43;font-weight:400}@media(max-width:700px){.release-stamp{font-size:7px}}.fishing-panel{position:absolute;width:56px;height:154px;pointer-events:none;-webkit-user-select:none;user-select:none;touch-action:none}.fishing-hit{display:block;position:relative;background:transparent;border:0;padding:0;width:100%;height:100%;cursor:pointer;touch-action:none;pointer-events:auto;color:inherit}.fishing-hit:focus-visible{outline:2px solid #fff0a6;border-radius:4px}.fishing-rail{position:absolute;top:12px;bottom:12px;left:calc(50% - 8px);width:16px;background:#061e29bb;border:1px solid #b8c9b6;border-radius:5px;box-shadow:inset 0 0 5px #0005}.fishing-target{transform:translate(var(--fish-sway,0px));position:absolute;left:-4px;width:22px;border:2px solid #e2f5cf;border-radius:3px;box-shadow:0 0 8px #96e6bf44}.fishing-marker{position:absolute;left:-13px;width:40px;height:4px;transform:translateY(-50%);background:#ffe394;border:1px solid #fff8db;border-radius:2px;box-shadow:0 0 7px #ffd98599;z-index:2}.fishing-confetti{position:absolute;left:50%;top:50%;pointer-events:none}.fishing-confetti i{position:absolute;width:6px;height:11px;animation:fish-confetti 1.2s ease-out both}.fishing-won .fishing-hit{pointer-events:none}@keyframes fish-confetti{0%{transform:translate(0) rotate(0);opacity:1}70%{opacity:1}to{transform:translate(var(--dx),var(--dy)) rotate(var(--r));opacity:0}}.fishing-equipped #action-label,.fishing-equipped #action-hint,.fishing-equipped #action-key,.fishing-equipped #held-caption,.fishing-equipped #quest,.fishing-equipped .keyboard-tip>span,.fishing-equipped .joystick>span{display:none}.fishing-practice-mode #save-state,.fishing-practice-mode #debug-indicator{display:none}.fishing-practice{position:fixed;z-index:45;left:10px;top:165px;width:145px;padding:10px;background:#163e3df5;border:1px solid #dac494;border-radius:8px;display:grid;gap:5px;font-size:10px}.fishing-practice button,.fishing-practice select{font:inherit;background:#e1d8b8;color:#204139;border:0;border-radius:3px;padding:7px 3px}.fishing-practice output{line-height:1.6;color:#f1db9f}@media(max-width:700px){.fishing-practice{top:205px;width:126px;font-size:9px;padding:7px;gap:4px}}.fishing-fish{position:absolute;left:-2px;top:-2px;width:24px;height:24px;transform:translate(-50%,-50%) rotate(var(--fish-roll,0deg));overflow:visible;image-rendering:pixelated;pointer-events:none;z-index:3}.inventory-dock{--bag-slot: 61px;--bag-gap: 7px;--bag-pad: 11px;position:absolute;left:50%;bottom:max(22px,env(safe-area-inset-bottom));transform:translate(-50%);width:calc(var(--bag-slot) * 5 + var(--bag-gap) * 4 + var(--bag-pad) * 2 + 4px);pointer-events:auto}.inventory-dock .toolbar{position:relative;left:auto;bottom:auto;transform:none;width:100%;max-width:none;display:block;padding:10px var(--bag-pad) 11px;border:2px solid #9e8255;border-radius:2px;background:repeating-linear-gradient(2deg,transparent 0 8px,#231f181c 9px 10px),linear-gradient(#675139,#453a2b);box-shadow:0 5px #24342a,inset 0 1px #d6bb7c88}.inventory-dock .toolbar:before,.inventory-dock .toolbar:after{top:auto;bottom:4px;box-shadow:none}.inventory-dock #hotbar,.inventory-dock .drawer-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--bag-gap)}.inventory-dock .slot,.inventory-dock .bag-slot{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;width:var(--bag-slot);height:66px;min-height:0;margin:0;padding:5px 3px 10px;border:1px solid #291f16;border-radius:2px;background:#baa57a;color:#443927;box-shadow:inset 0 0 0 2px #ead5a653,inset 0 -5px #6a563b44;touch-action:none}.inventory-dock .slot svg,.inventory-dock .bag-slot svg{width:32px;height:32px}.inventory-dock .slot small,.inventory-dock .bag-slot small{font-size:8px;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.inventory-dock .slot kbd{position:absolute;top:3px;right:4px;font:9px monospace;color:#655336}.inventory-dock .stack-count{position:absolute;font-size:10px;right:5px;bottom:7px;color:#453722;text-shadow:0 1px #f9ecc2}.inventory-dock .slot.active,.inventory-dock .bag-slot.chosen{border-color:#f2dc9e;background:#d5bc81;outline:2px solid #d5bd7a;outline-offset:-1px;box-shadow:inset 0 0 0 2px #f4e0a6a6}.inventory-dock .utility-slot{position:absolute;left:calc(100% + 9px);bottom:0;width:53px;height:66px;background:#695840;border-color:#9b8259;color:#eadbb5}.inventory-dock .utility-slot kbd{color:#c5b28a}.inventory-dock .utility-slot small{font-size:10px}.inventory-dock .bag-expand{bottom:100%;z-index:2}.inventory-dock .bag-expand svg{transition:transform .26s ease}.inventory-dock .backpack-drawer{display:grid;grid-template-rows:0fr;position:relative;left:auto;bottom:auto;transform:none;width:auto;max-width:none;max-height:none;padding:0;border:0;border-radius:0;box-shadow:none;background:none;color:#eadbb5;opacity:0;visibility:hidden;transition:grid-template-rows .26s ease,opacity .18s ease,visibility 0s .26s}.inventory-dock .backpack-drawer:before{display:none}.bag-expanded .inventory-dock .backpack-drawer{grid-template-rows:1fr;opacity:1;visibility:visible;transition-delay:0s}.inventory-dock .bag-content{min-height:0;overflow:hidden}.inventory-dock .bag-header{margin:0 0 10px;padding-top:2px}.inventory-dock .bag-header strong{color:#eadbb5;font-size:12px}.inventory-dock .drawer-grid{max-height:min(360px,calc(100dvh - 260px));overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;padding:2px 0 10px;scrollbar-color:#a98c5b #55432d}.action-wrap>button{border-radius:50%;background:radial-gradient(circle at 35% 25%,#debb78,#a9824b)}@media(max-width:700px){.inventory-dock{--bag-slot: clamp(38px, calc((100vw - 140px)/5) , 46px);--bag-gap: 4px;--bag-pad: 7px;bottom:117px}.inventory-dock .toolbar{padding-top:7px;padding-bottom:8px}.inventory-dock .slot,.inventory-dock .bag-slot{height:53px;padding:3px 1px 8px}.inventory-dock .slot svg,.inventory-dock .bag-slot svg{width:26px;height:26px}.inventory-dock .slot small,.inventory-dock .bag-slot small,.inventory-dock .slot kbd{font-size:7px}.inventory-dock .stack-count{font-size:8px;bottom:5px;right:4px}.inventory-dock .utility-slot{left:calc(100% + 6px);width:35px}.inventory-dock .utility-slot small{font-size:8px}.inventory-dock .utility-slot kbd{display:none}.inventory-dock .bag-header{margin-bottom:7px}.inventory-dock .drawer-grid{max-height:calc(100dvh - 400px)}}@media(max-height:580px){.inventory-dock{bottom:max(18px,env(safe-area-inset-bottom))}.inventory-dock .drawer-grid{max-height:calc(100dvh - 220px)}}@media(prefers-reduced-motion:reduce){.inventory-dock .backpack-drawer,.inventory-dock .bag-expand svg{transition:none}}.bag-expanded .inventory-dock .bag-content{overflow:visible}.bag-trash-anchor{position:relative;flex:0 0 36px;height:33px;--trash-height: 33px;--trash-icon: 20px}#bag-trash{position:absolute;z-index:10;left:0;top:0;width:36px;height:var(--trash-height);min-height:0;padding:0;transition:left .18s ease-out,top .18s ease-out,width .18s ease-out,height .18s ease-out}#bag-trash svg{width:var(--trash-icon);height:var(--trash-icon);transition:width .18s ease-out,height .18s ease-out}.dragging-item #bag-trash{left:-12px;top:calc((var(--trash-height) - 55px) / 2 - 24px);width:60px;height:55px}.dragging-item #bag-trash svg{width:32px;height:32px}@media(max-width:700px){.bag-trash-anchor{height:29px;--trash-height: 29px;--trash-icon: 18px}}@media(prefers-reduced-motion:reduce){#bag-trash,#bag-trash svg{transition:none}}.discard-mode #bag-trash{background:#873d32;color:#ffe3cf;border-color:#ef9a7c;box-shadow:inset 0 0 0 2px #c7624d}.discard-mode .inventory-dock [data-item-index]{border-color:#c46752}#bag-trash.drop-target{background:#c7382e;color:#fff2df;border-color:#ffb29a;box-shadow:0 0 0 3px #f56b50}.item-icon{position:relative;display:inline-flex;align-items:center;justify-content:center;width:38px;height:36px;flex-shrink:0;background:transparent}.item-meter{position:absolute;bottom:4px;left:5px;right:5px;height:5px;border:1px solid #fff;border-radius:2px;overflow:hidden;background:transparent}.item-meter i{display:block;height:100%;background:var(--item-color)}.bag-slot:has(.item-meter) small{padding-bottom:4px}.inventory-dock .item-icon svg{position:relative;z-index:1;filter:drop-shadow(0 1px 0 #3f372566)}@media(max-width:700px){.item-icon{width:30px;height:29px}}.inventory-dock{bottom:max(12px,env(safe-area-inset-bottom));z-index:20}.joystick,.action-wrap{z-index:10}.is-building .action-wrap{display:flex}.build-cancel{bottom:130px;right:130px;z-index:10;width:48px;height:48px}@media(max-width:760px){.inventory-dock{bottom:max(12px,env(safe-area-inset-bottom))}.joystick,.action-wrap{bottom:calc(max(12px,env(safe-area-inset-bottom)) + 100px)}.inventory-dock .drawer-grid{max-height:calc(100dvh - 230px)}.build-panel{bottom:220px}}#survival-vignette{position:absolute;inset:0;pointer-events:none;z-index:3;background:radial-gradient(ellipse at center,transparent 30%,#000 100%);opacity:0;transition:opacity .3s}#hurt-vignette{box-shadow:none;background:radial-gradient(ellipse at center,transparent 32%,#e31810 100%);animation:none}#action.context-ready{border-color:#fff4ad;box-shadow:0 0 14px #ffe59466,inset 0 0 0 3px #8c754d}.foundation-health,.fishing-panel{pointer-events:none!important}.facility-need,.facility-local-feedback{position:absolute;pointer-events:none;transform:translate(-50%,-100%) scale(var(--progress-scale,1));transform-origin:center bottom;color:#fff3c7}.facility-need{width:32px;height:32px;display:grid;place-items:center;border-radius:50%;background:#263f35de;border:2px solid #e0cc98}.facility-need svg{width:23px;height:23px}.facility-local-feedback{display:flex;align-items:center;gap:5px;font-size:21px;font-weight:700;white-space:nowrap;text-shadow:0 2px 3px #17332b}.facility-local-feedback svg{width:26px;height:26px}.facility-need[hidden],.facility-local-feedback[hidden],#aux-action[hidden]{display:none}.action-wrap>#aux-action{position:absolute;bottom:calc(100% + 8px);right:17px;width:43px;height:43px;padding:8px;border-width:2px;border-radius:50%;background:#677c72;box-shadow:0 2px #243d32}#aux-action svg{width:23px;height:23px}.build-confirm{position:absolute;transform:translate(-50%,-100%);width:38px;height:38px;border:2px solid #c8ffe0;border-radius:3px;background:#27894b;color:#fff;display:grid;place-items:center;z-index:25;padding:5px}.build-confirm svg{width:26px;height:26px}#modal .modal-card{height:78dvh;max-height:78dvh;overflow:hidden;display:flex;flex-direction:column;padding-top:38px}#modal-content{display:flex;flex-direction:column;min-height:0;flex:1;overflow:hidden}#modal-content>h2,#modal-content>.tiny-label{flex:none}#modal-content>.crafting-list,#modal-content>.construction-list,#modal-content>.research-list,#modal-content>.achievement-list,#modal-content>#developer-tools{min-height:0;flex:1;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y}#modal-content>.crafting-list>*,#modal-content>.construction-list>*{flex-shrink:0}#modal[data-kind=chest] #modal-content>.storage-grid{min-height:0;overflow-y:auto;flex:1;align-content:start}#modal[data-kind=settings] #modal-content{overflow-y:auto}#modal .close{position:absolute;z-index:2}#modal-content>.crafting-list,#modal-content>.construction-list,#modal-content>.research-list,#modal-content>.achievement-list{overflow-x:hidden;padding-right:6px}.research-list,.achievement-list{display:grid;gap:12px}.research-row{display:flex;align-items:center;gap:12px;width:100%;min-height:82px;padding:12px;border-radius:10px;text-align:left}.research-row.available{background:#8d7952;border-color:#e7d5a0;box-shadow:0 5px #302c23,inset 0 2px #e5c58a;color:#ffe09a;transform:translateY(-2px)}.research-row.locked{background:#383d36;border-color:#262e2c;box-shadow:inset 0 4px 7px #151f24aa;color:#171d19;opacity:1}.research-row>svg{width:20px;height:20px;flex-shrink:0}.research-shadow svg{width:42px;height:42px;filter:brightness(0);opacity:.75}.research-row strong{font-size:22px;letter-spacing:2px}.research-cost{display:flex;gap:8px;margin-left:auto;flex-wrap:wrap;color:#e0d9c0}.research-cost>span{display:grid;justify-items:center}.research-cost svg{width:24px;height:24px}.research-cost small{font-size:11px}.research-complete{text-align:center;padding:36px}.research-complete svg{width:60px;height:60px;color:#a3c57c}.storage-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.storage-grid .bag-slot{min-width:0;width:100%;height:72px;position:relative}.storage-grid small{font-size:10px}.storage-grid .item-icon{width:30px;height:30px}.storage-grid .item-icon svg{width:28px;height:28px}.storage-bag{max-height:270px;overflow:auto}.planter-slots{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;max-width:260px;margin:20px auto}.planter-slot{height:100px;position:relative;background:#574630;box-shadow:inset 0 4px #372e23}.planter-slot.selected{border-color:#f2d490}.planter-slot>svg{width:50px;height:50px}.planter-slot>svg:last-child:not(:first-child){width:18px;height:18px;position:absolute;right:4px;top:4px;color:#79bad4}.crop-meter{position:absolute;bottom:6px;left:8px;right:8px;height:6px;border:1px solid #fff;overflow:hidden;border-radius:2px}.crop-meter i{display:block;height:100%;background:#76b94f}.planter-seeds,.planter-actions{display:flex;justify-content:center;gap:12px;margin:16px 0}.planter-seeds button,.planter-actions button{min-width:52px;padding:8px;position:relative}.planter-seeds svg,.planter-actions svg{width:32px;height:32px}.planter-seeds b{font-size:12px}.planter-actions button{min-width:80px}.achievement-row{display:flex;gap:14px;align-items:center;padding:14px 4px;border-bottom:1px solid #b7a27a33;opacity:.45}.achievement-row.earned{opacity:1}.achievement-row>svg{width:36px;height:36px;flex-shrink:0}.achievement-row p{margin:5px 0;font-size:12px;color:#c5baa0}.achievement-row strong{color:#f0d38f}.achievement-row>svg:last-child:not(:first-child){margin-left:auto;width:22px}.player-mutter{z-index:18;background:none;border:0;padding:0;box-shadow:none;white-space:nowrap}.player-mutter[hidden]{display:none}.facility-process-bar.crop-progress i{background:#75bc53!important}.achievement-notices{position:absolute;right:12px;top:110px;width:min(270px,calc(100vw - 24px));display:flex;flex-direction:column;gap:9px;z-index:24;pointer-events:none}.achievement-notice{position:relative;display:flex;align-items:center;gap:12px;min-height:72px;box-sizing:border-box;padding:14px 16px;border:2px solid #636a69;border-radius:2px;background:linear-gradient(135deg,#414849f5,#333a3cf5);box-shadow:inset 0 0 0 1px #252c2d,inset 0 2px #ffffff0c,0 4px 12px #071c242c;animation:achievement-enter .42s cubic-bezier(.2,.9,.3,1.12) both}.achievement-notice:before{content:"";position:absolute;inset:5px;pointer-events:none;background:radial-gradient(circle at 2px 2px,#929997 0 1px,#252c2d 1.5px 2.5px,transparent 3px),radial-gradient(circle at calc(100% - 2px) 2px,#929997 0 1px,#252c2d 1.5px 2.5px,transparent 3px),radial-gradient(circle at 2px calc(100% - 2px),#929997 0 1px,#252c2d 1.5px 2.5px,transparent 3px),radial-gradient(circle at calc(100% - 2px) calc(100% - 2px),#929997 0 1px,#252c2d 1.5px 2.5px,transparent 3px)}.achievement-medal{flex:0 0 32px;opacity:.85}.achievement-medal svg{display:block;width:32px;height:32px;filter:saturate(.45)}.achievement-notice strong{display:block;font-size:13px;line-height:1.4;font-weight:700;color:#e0e3da}.achievement-notice p{margin:5px 0 0;font-size:11px;line-height:1.5;color:#b7c0be;text-shadow:none}.achievement-notice.leaving{animation:achievement-exit .42s ease-in both}@keyframes achievement-enter{0%{opacity:0;transform:translateY(-28px)}to{opacity:1;transform:translateY(0)}}@keyframes achievement-exit{to{opacity:0;transform:translate(calc(100% + 24px))}}@media(prefers-reduced-motion:reduce){.achievement-notice,.achievement-notice.leaving{animation-duration:.01s}}.planter-actions [data-water]{color:#448eaa}.table-required svg{width:18px;height:18px;vertical-align:middle}.achievement-notices{top:8px;right:8px;width:min(232px,calc(100vw - 16px))}.achievement-notice{min-height:60px;padding:10px 12px;gap:9px}.achievement-medal{flex-basis:26px}.achievement-medal svg{width:26px;height:26px}.achievement-notice strong{font-size:12px}.achievement-notice p{font-size:10px;margin-top:3px}.research-row{box-sizing:border-box;gap:8px;border:2px solid transparent}.research-go{flex-shrink:0;min-width:52px;min-height:44px;padding:8px;color:#fff1c9;background:#6f7650;border:2px solid #4c5439;border-radius:6px;font-weight:700}.research-go:disabled{color:#c49a7f;background:#653d32;border-color:#593a2e;cursor:not-allowed}.research-go:focus-visible{outline:2px solid #ffe09a;outline-offset:2px}.build-rotate{position:absolute;right:22px;bottom:235px;width:44px;height:44px;border:2px solid #d2bc85;border-radius:9px;background:#65583a;color:#fff0c9;pointer-events:auto}.build-rotate svg{width:28px;height:28px}.construction-list{max-height:60vh;overflow-y:auto}.build-height-control{position:absolute;right:30px;bottom:205px;height:150px;width:40px;display:flex;flex-direction:column;align-items:center;gap:6px;background:#514a35dc;border:1px solid #d2bc85;border-radius:8px;padding:8px;color:#ffedc0;pointer-events:auto}.build-height-control input{writing-mode:vertical-lr;direction:rtl;width:24px;height:115px;accent-color:#a9cf8b}.is-building .build-rotate{right:84px;bottom:235px}
