/* Field terminal: hard edges, restrained dithering, readable Korean bitmap type. */
@font-face{font-family:Galmuri;src:url('fonts/Galmuri11.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Galmuri;src:url('fonts/Galmuri11-Bold.woff2') format('woff2');font-weight:700;font-display:swap}
:root{--bg:#10130f;--panel:#22281d;--line:#4d5640;--text:#e3dfbd;--muted:#a3ac8e;--gold:#e7a44f;--rust:#a95638;--edge:#070b08;--pixel-font:Galmuri,'Malgun Gothic',monospace}
body{font-family:var(--pixel-font);font-size:16px;line-height:1.65;background-color:var(--bg);background-image:repeating-linear-gradient(0deg,transparent 0 3px,#85935a08 3px 4px);padding:12px}
button,input,a,select{font-family:inherit}h1,h2,h3,b,strong{font-weight:700}h1,h2,h3{line-height:1.5;letter-spacing:0}::selection{background:#e7a44f;color:#11160f}
*{scrollbar-width:thin;scrollbar-color:#7b8060 #12180f}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-track{background:#10160e;border-left:2px solid #080c07}::-webkit-scrollbar-thumb{background:#778160;border:3px solid #10160e}
button{position:relative;min-height:42px;border:2px solid #667051;border-right-color:#10170f;border-bottom-color:#10170f;background:#303927;box-shadow:inset 2px 2px #81876633,2px 2px 0 #080c07;padding:9px 12px;transition:none;line-height:1.5;font-size:14px;text-shadow:1px 1px #11180d}
button:hover:not(:disabled){color:#fff0bc;background:#455134;border-color:#a6b174;border-right-color:#24301b;border-bottom-color:#24301b}
button:active:not(:disabled){transform:translate(2px,2px);box-shadow:inset 2px 2px #0b1309;border-color:#15210f}
button:focus-visible,input:focus-visible,a:focus-visible{outline:3px dashed #ffd17e;outline-offset:4px}
button:disabled{opacity:1;color:#8a8f75;background:repeating-linear-gradient(135deg,#252c20 0 3px,#2b3125 3px 5px);border-color:#39402f;text-shadow:none;box-shadow:none}
body>header{height:84px;padding:10px 22px;background:#242a20;border:3px solid #62694c;border-right-color:#30382a;border-bottom:6px solid var(--edge);box-shadow:inset 2px 2px #93977340;position:relative;gap:20px}
body>header:after{content:'';height:4px;position:absolute;bottom:-4px;left:0;right:0;background:repeating-linear-gradient(90deg,#c38943 0 18px,#1c2116 18px 30px)}
.brand{color:#eab66c;font:700 36px/1 var(--pixel-font);letter-spacing:4px;white-space:nowrap;text-shadow:3px 3px #0c130a,5px 5px #805232}
.brand span{font:400 12px/1.7 var(--pixel-font);letter-spacing:1px;display:inline-block;margin-left:20px;color:#a9af92;text-shadow:none}
.header-right{gap:8px}.header-right .live{color:#b4c489;background:#11180f;border:2px inset #4a5738;padding:7px 10px;font-size:12px;margin:0 6px 0 0}.header-right button{font-size:12px}
main{gap:10px;grid-template-columns:236px minmax(360px,1fr) 320px;padding-top:10px;min-height:calc(100vh - 110px)}
aside{padding:20px 17px;background:var(--panel);border:3px solid #596146!important;border-right-color:#121b0f!important;border-bottom-color:#10180d!important;box-shadow:inset 2px 2px #939a6929;min-width:0}
.eyebrow{font-size:12px;letter-spacing:1px;color:#aeb893;font-weight:400}.left>.eyebrow,.right>.eyebrow{border-bottom:2px solid #586341;padding:0 0 10px;color:#d6ba7f}
.left h1{font-size:24px;color:#e7e0b8;margin:14px 0 5px}.left>.muted{font-size:12px;line-height:1.8}.survivor{gap:12px;margin:18px 0;background:#161d13;border:2px inset #4f5e3c;padding:10px;align-items:center}.survivor b{font-size:12px;line-height:1.8}.survivor small{font-size:12px;line-height:1.8;margin-top:4px}
.emblem{width:56px;height:80px;flex-shrink:0;border:0;border-bottom:4px solid #56623c;background:repeating-linear-gradient(0deg,#273222 0 3px,#2d3b26 3px 4px);overflow:hidden}.emblem img{width:56px;height:80px;object-fit:contain;image-rendering:pixelated;filter:none}
.stat{margin:15px 0}.stat-top{font-size:14px}.stat-top b{font-weight:400;color:#e4dbad}.stat-top small{color:#a7ae8e;font-size:12px}.stat-top span:before{content:'■';font-size:9px;margin-right:8px;color:#b6845e}.stat:nth-child(2) .stat-top span:before{color:#b8ae65}.stat:nth-child(3) .stat-top span:before{color:#78b6bd}.stat:nth-child(4) .stat-top span:before{color:#aec174}.stat:nth-child(5) .stat-top span:before{color:#d4a151}
.bar{height:12px;border:2px solid #090f08;background:#131c10;margin-top:7px;position:relative;box-shadow:0 1px #636e464d}.bar:after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 calc(10% - 2px),#11180c calc(10% - 2px) 10%);pointer-events:none}.bar i{transition:width .25s steps(10);box-shadow:inset 0 2px #ffffff25,inset 0 -2px #0003}
.divider{height:4px;background:repeating-linear-gradient(90deg,#626b48 0 4px,transparent 4px 8px);margin:23px 0}.left h2{font-size:18px;color:#e5b56d}.mission{font-size:14px;line-height:1.9;color:#bdc1a2}#objectives{font-size:12px;line-height:2.4;background:#182012;padding:10px;border-left:4px solid #ba8241}.tip{padding:11px;border:2px dashed #525b3d;margin-top:20px;background:#282d1d}.tip span{font-size:12px}.tip p{font-size:12px;margin:7px 0 0}.save{font-size:12px;margin-top:20px;color:#a3ad86}
.map-area{border:3px solid #546244;border-bottom-color:#15210f;box-shadow:inset 0 0 0 3px #10180e;background:#151f14}.map-top{padding:16px 20px 12px;background:#283424;border-bottom:3px solid #091206;gap:12px}.map-top .eyebrow{font-size:12px}.map-top h2{font-size:24px;margin:6px 0 0;color:#d9e2b3}.clock{font-family:var(--pixel-font);font-size:14px;white-space:nowrap;background:#111c0e;border:2px inset #58693c;padding:7px 10px;line-height:1.8}.clock small{font-size:12px;color:#a8b691}
.map-wrap{margin:12px;box-shadow:0 0 0 2px #435536,inset 0 0 0 3px #071105;background:#162213;min-height:440px}.map-wrap:before,.map-wrap:after{content:'';position:absolute;width:14px;height:14px;border:3px solid #acb888;pointer-events:none;z-index:1}.map-wrap:before{left:-2px;top:-2px;border-right:0;border-bottom:0}.map-wrap:after{right:-2px;bottom:-2px;border-left:0;border-top:0}
#map{min-height:420px;height:min(65vh,690px);shape-rendering:crispEdges}#map>rect:first-of-type{fill:#142019}#geography>path:first-child{fill:#34422a;stroke:#92a36e;stroke-width:2}#map text,#local-map text{font-family:var(--pixel-font)!important}.city text{font-size:14px;stroke-width:5px;fill:#d6dfb8}.city circle{stroke-width:2px}.sea{font-size:15px;fill:#627a68}.map-legend{font-size:12px;left:16px;gap:12px}.dot{border-radius:0;width:8px;height:8px;border-width:2px}.map-note{font-size:12px;color:#9daa89;padding:0 10px;line-height:1.7}.region{font-size:12px}
#player,#local-player{filter:none}.player-art{image-rendering:pixelated}.walking .player-art{animation:pixel-walk .4s steps(2,end) infinite}@keyframes pixel-walk{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
#explore-toolbar{padding:10px 16px;background:#1d2b18;border-bottom:2px solid #455536}#explore-breadcrumb{font-size:12px;color:#c1cb9e}#go-exit{font-size:12px;min-height:36px}.map-wrap.local-view{padding-bottom:34px}#local-map{min-height:400px;max-height:calc(100vh - 225px);shape-rendering:crispEdges}#local-map>rect{fill:#182418}.local-map-caption{font-size:18px;fill:#e1dfb6}.local-map-subtitle{fill:#a7b293;font-size:12px}.building-name,.point-label{font-size:12px}.building-count{font-size:12px;fill:#b8c99b}.building-mark{font-family:var(--pixel-font)!important}.room-label{font-size:12px}.floor-label{fill:#e7c077;font-size:18px}.loot-point rect{rx:0;stroke-width:2px}.map-building rect{stroke-width:3px}.exit-tile rect{rx:0}
.log{margin:0 12px 12px;padding:14px 16px;background:#141b10;border:2px inset #596542;min-height:144px}.log .eyebrow{color:#c9a968}#journal{font-size:12px;color:#aebc96;line-height:2}#journal time{color:#d2ae70}
.location-title h2,.right .location-title h2{font-size:24px;color:#e9bd76}.risk{font-size:12px;border:2px solid #956440;color:#edbe77;background:#32261a;padding:3px 6px;white-space:nowrap}.place-type{font-size:12px;color:#c3be93}#location p{font-size:14px;min-height:0;margin:12px 0;line-height:1.85}.area-meta{font-size:12px;border-block:2px dotted #566044;padding:10px 0;gap:10px;color:#b4bc95}
#actions{margin:16px 0 22px;gap:8px}#actions button:first-child{background:#b47b38;color:#fff1c1;border-color:#e9ba6c;border-bottom-color:#583715;border-right-color:#583715;box-shadow:inset 2px 2px #ffdc882e,2px 2px #080d06}#actions button:first-child:hover:not(:disabled){background:#c88d44}#actions button:first-child:disabled{background:#343326;border-color:#514d32;color:#939379;box-shadow:none}#actions small{font-size:12px;opacity:1;color:inherit;line-height:1.8}
nav{gap:4px;border-bottom:3px solid #b88742}nav button{min-height:42px;background:#1a2115;border:2px solid #465336;border-bottom:0;font-size:14px;box-shadow:none}nav .active{color:#f0d098;background:#4c5032;border:2px solid #938351;border-bottom:0}
.bag-summary{font-size:12px;padding:12px 0;gap:8px}.bag-summary button{font-size:12px;min-height:34px;padding:5px 8px}.bag-items{padding:4px 8px 4px 4px;max-height:438px;background:#121a0f;border:2px inset #4c5937}.bag-items .item{gap:10px;padding:10px 7px;margin-bottom:4px;background:#232e1d;border:1px solid #455235;border-right:3px solid #0e170b;border-bottom:3px solid #0e170b;flex-wrap:wrap}.item-body{flex:1;min-width:100px}.item b{font-size:12px;font-weight:400;line-height:1.8}.item small{font-size:12px;color:#a7b490;line-height:1.7}.item button{font-size:12px;min-height:32px;padding:5px 7px}.equipped{font-size:12px}.pixel-item{background:#111b0d;border:2px solid #67774c;border-top-color:#10180b;border-left-color:#10180b;box-shadow:1px 1px #85935c30;width:52px;height:52px;padding:2px}.pixel-item.small{width:36px;height:36px;padding:2px}.pixel-item.large{width:88px;height:88px;padding:5px}.recipe-icon{width:44px;height:44px}
.frequency{position:relative;padding:15px;border:3px solid #66704d;border-right-color:#101a0b;border-bottom-color:#101a0b;background:#131d0f;box-shadow:inset 3px 3px #050b04;margin-top:22px}.frequency>span{font-size:12px;color:#b3c18b}.frequency>b{font-family:var(--pixel-font);font-size:28px;color:#b9cf81;letter-spacing:0;text-shadow:2px 2px #080d04}.frequency small,.frequency p{font-size:12px}.wave{color:#809e51;letter-spacing:2px;height:32px;line-height:24px;background:repeating-linear-gradient(0deg,transparent 0 3px,#68834818 3px 4px)}.frequency p{color:#a1b37e;line-height:1.8}
dialog{border:4px solid #8b8d61;border-right-color:#303b24;border-bottom-color:#303b24;background:#222d1d;box-shadow:0 0 0 3px #0a1107,8px 8px #0008;padding:24px;max-height:90dvh;overflow:auto}dialog::backdrop{background:#080e09df;backdrop-filter:none}dialog h2{font-size:24px}dialog p,dialog li{font-size:14px}dialog button{background:#ab7738;color:#fff0bd;border-color:#d9aa60;border-right-color:#543b1d;border-bottom-color:#543b1d}
#craft-dialog{background:#222d1d;border:4px solid #848d5d;border-right-color:#28381e;border-bottom-color:#28381e;width:min(1000px,95vw);max-width:1000px}#craft-dialog[open]{height:min(850px,92dvh)}#craft-dialog .craft-header{background:#303b26;border-bottom:4px solid #111a0c;padding:16px 22px;box-shadow:inset 0 2px #bbc18f25}#craft-dialog .craft-header h2{font-size:24px;color:#e9c47d;margin-top:7px}#craft-dialog .craft-header .eyebrow{color:#a9b58c;font-size:12px}
#craft-dialog button{background:#303b26;font-size:14px}#craft-dialog #craft-close{font-size:12px;min-height:40px;padding:8px 12px}.craft-filters{padding:14px 20px;gap:14px}.craft-filters>input{background:#101a0b;border:2px inset #768452;color:#e3eac5;font:14px/1.6 var(--pixel-font);padding:10px 12px;border-radius:0}.craft-filters input::placeholder{color:#a3ae89}.craft-filters label{font-size:12px;color:#bac59e}.craft-filters input[type=checkbox]{width:16px;height:16px;vertical-align:middle;accent-color:#d7b16a}
#craft-categories{padding:0 20px;gap:6px}#craft-dialog button.active{background:#75613a;color:#fff0b9;border-color:#d5ad63;border-right-color:#3b2d18;border-bottom-color:#3b2d18}#craft-count{font-size:12px;margin:12px 20px;color:#bdc8a0}.craft-layout{grid-template-columns:300px 1fr;border-top:3px solid #101c09}#recipe-list{background:#15210f;border-right:3px solid #101c09;padding:10px}#craft-dialog .recipe-row{padding:10px;margin-bottom:6px;min-height:74px;background:#25321e;border:2px solid #455637;border-right-color:#0c1608;border-bottom-color:#0c1608;box-shadow:none}#craft-dialog .recipe-row.selected{background:#4b5030;border-color:#bc9b56;box-shadow:inset 4px 0 #d6b36b}.recipe-row b{font-size:14px;font-weight:400}.recipe-row span{font-size:12px;color:#b0be96;line-height:1.7}.recipe-title-art{margin:15px 0;gap:16px}#recipe-detail{padding:20px 22px;background:#26321f}#recipe-detail h2{font-size:24px}#recipe-detail h3{font-size:14px;color:#c6d2a8;margin-top:20px}#recipe-detail h3 small{font-size:12px}.recipe-effect{font-size:14px;line-height:1.9;color:#bccca4}.recipe-output{font-size:14px;border-block:2px dotted #64734d}.recipe-output span{font-size:12px}.ingredients li{font-size:14px;padding:10px 0;border-bottom:2px solid #3d4d2f;gap:12px}.ingredient-name{gap:10px}.ingredients .missing{color:#efaa79}.bench-check{border:2px solid #897040;background:#3c331c;color:#e8ca8b;font-size:14px}.bench-check.ready{border-color:#5e7544;background:#24391d;color:#c3d9a1}.bench-check small{font-size:12px}.batch-controls span{font-size:14px}.craft-error{font-size:12px!important;line-height:1.8}#craft-dialog .craft-confirm{background:#a97b39;color:#fff0bf;border-color:#e1bc75;border-right-color:#563c1a;border-bottom-color:#563c1a;min-height:48px}#craft-dialog .craft-confirm:disabled{background:#36402b;border-color:#576143;color:#a2aa88}.craft-intro h3{font-size:20px}.craft-intro p{font-size:14px}.station-hints{font-size:12px}
.activity{background:#27331f;border:4px solid #c39b52;box-shadow:0 0 0 3px #111b0a,8px 8px #0008;backdrop-filter:none;padding:20px;width:min(510px,calc(100vw - 32px));bottom:24px}.activity-head h2{font-size:20px}.activity-head>b{font:24px var(--pixel-font)}.activity-spinner{width:24px;height:24px;border:4px solid #506039;border-top-color:#eec372;border-radius:0;animation:spin 1.4s steps(4,end) infinite}.activity progress{height:16px;border:3px solid #10190a;background:#121b0e}.activity progress::-webkit-progress-bar{background:#121b0e}.activity progress::-webkit-progress-value{background:repeating-linear-gradient(90deg,#d1aa5d 0 12px,#3d4126 12px 15px)}.activity progress::-moz-progress-bar{background:repeating-linear-gradient(90deg,#d1aa5d 0 12px,#3d4126 12px 15px)}.activity p{font-size:14px}.activity-footer small{font-size:12px;line-height:1.7}.activity-footer button{font-size:12px;min-height:36px}.result-items li{border-bottom:2px solid #465536}.result-cost{font-size:12px!important}#notice{background:#302e1b;border:3px solid #cb9952;box-shadow:4px 4px #060d05;font-size:14px;line-height:1.8}
@media(min-width:1600px){main{grid-template-columns:268px minmax(400px,1fr) 350px}aside{padding:24px}.map-top{padding:18px 24px}}
@media(max-width:1150px) and (min-width:701px){main{grid-template-columns:215px minmax(320px,1fr)}.right{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:0 24px}.right>.eyebrow{grid-column:1/-1}.right nav{grid-column:2;grid-row:2;align-self:start}.right #inventory{grid-column:2;grid-row:3/6}.right #location{grid-column:1;grid-row:2/4}.right #actions{grid-column:1;grid-row:4}.right .frequency{grid-column:1;grid-row:5}.header-right .live{display:none}.brand span{font-size:12px;margin-left:12px}.map-top{padding:12px;flex-wrap:wrap}.clock{text-align:left}}
@media(max-width:700px){body{padding:6px;font-size:16px}body>header{height:auto;min-height:74px;padding:12px;gap:12px;flex-wrap:wrap}.brand{font-size:30px}.brand span{display:none}.header-right .live{display:none}.header-right{gap:6px}.header-right button{font-size:12px;padding:7px;min-height:36px}main{display:flex;flex-direction:column;gap:8px;padding-top:8px}.left{padding:12px}.left>.eyebrow,.left h1,.left>.muted,.survivor,.left .divider,.left h2,.mission,.tip,.save{display:none}#stats{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.stat{margin:6px 0}.stat-top{font-size:12px}.stat-top span:before{margin-right:5px}.bar{height:10px}#objectives{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;margin-top:10px;padding:5px 9px}.map-top{padding:12px;gap:8px;flex-wrap:wrap}.map-top h2{font-size:24px}.clock{font-size:12px;padding:5px 8px}.clock small{font-size:12px}.map-top .eyebrow{font-size:12px;letter-spacing:0}.map-wrap{margin:8px;min-height:480px}#map{height:auto;min-height:460px}.map-legend{font-size:12px;flex-wrap:wrap;gap:5px 10px;bottom:45px;left:10px}.map-note{font-size:12px;bottom:7px;padding:0 8px}.map-wrap.local-view{padding-bottom:8px;min-height:0}#local-map{min-height:0;max-height:none}#explore-toolbar{padding:8px 10px;gap:8px;flex-wrap:wrap}.local-view .map-note{position:static;margin-top:5px}.log{margin:0 8px 8px;padding:12px}#journal{font-size:12px}.right{display:block;padding:16px}.bag-items{max-height:420px}.pixel-item{width:52px;height:52px}.recipe-icon{width:40px;height:40px;margin-right:8px}.item b{font-size:14px}.item button{min-height:36px}.frequency{margin-top:20px}dialog{padding:18px;width:calc(100vw - 24px)}#craft-dialog{width:calc(100vw - 16px)}#craft-dialog[open]{height:auto;max-height:94dvh;overflow:auto}#craft-dialog .craft-header{padding:14px;gap:8px;flex-shrink:0}#craft-dialog .craft-header h2{font-size:20px}#craft-dialog .craft-header .eyebrow{font-size:12px;letter-spacing:0}.craft-filters{padding:12px;gap:10px;flex-wrap:wrap}.craft-filters>input{flex-basis:100%}#craft-categories{padding:0 12px;gap:5px}#craft-dialog #craft-categories button{padding:6px 9px;font-size:12px;min-height:36px}#craft-count{margin:10px 12px}.craft-layout{display:block;flex:none;overflow:visible;min-height:0}#recipe-list{display:grid;grid-template-columns:1fr 1fr;max-height:190px;border-right:0;border-bottom:3px solid #101c09;padding:7px;gap:5px}#craft-dialog .recipe-row{padding:8px 6px;margin:0;min-height:80px}.recipe-row b{font-size:12px}.recipe-row span{font-size:12px;clear:both;padding-top:5px}#recipe-detail{padding:16px;overflow:visible}#recipe-detail h2{font-size:22px}.pixel-item.large{width:72px;height:72px}.ingredients li{font-size:12px}.ingredients .ingredient-name{gap:7px}.recipe-title-art{gap:12px}.activity{bottom:14px;padding:15px}.activity-head h2{font-size:18px}.activity-head>b{font-size:20px}.activity-footer{align-items:flex-start}.activity-head .eyebrow{font-size:12px;letter-spacing:0}}
@media(prefers-reduced-motion:reduce){.walking .player-art,.activity-spinner{animation:none}.bar i{transition:none}button:active:not(:disabled){transform:none}}
