:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#e8e8d7;background:#152321;color-scheme:dark;font-size:15px}*{box-sizing:border-box}html,body{margin:0;overflow:hidden;overscroll-behavior:none;width:100%;height:100%}body{height:100dvh}button,input,select{font:inherit}button,.filebutton{min-height:48px;border:1px solid #d9e4ca33;border-radius:9px;background:#152421d9;color:#edf0dc;padding:12px 17px;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none;transition:background .12s}button:active,.filebutton:active{background:#586b55}button:focus-visible{outline:2px solid #e7d0a1;outline-offset:3px}button:disabled{opacity:.4;cursor:default}.primary{color:#172823;background:#d6dbbc;border-color:#e5e8cd;font-weight:650}.primary:active{background:#aebc90}[hidden]{display:none!important}#view{display:block;width:100%;height:100%;touch-action:none;background:radial-gradient(ellipse at 50% 40%,#65817a,#142923 75%)}#hud{position:fixed;inset:0;pointer-events:none;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}#hud button,#joystick{pointer-events:auto}header{position:absolute;top:max(20px,env(safe-area-inset-top));right:max(22px,env(safe-area-inset-right));display:flex;align-items:center;gap:12px}.wordmark{letter-spacing:.3em;font-size:16px;margin-right:18px}.wordmark small{opacity:.55;letter-spacing:0;font-size:10px}#bagCount{display:block;font-size:10px;opacity:.65;margin-top:3px}#navigation{position:absolute;left:max(22px,env(safe-area-inset-left));top:max(20px,env(safe-area-inset-top));width:158px;background:#11221cc9;border:1px solid #bcc9ad35;border-radius:11px;padding:9px;box-shadow:0 6px 25px #0002}.mapframe{position:relative;width:138px;height:138px;overflow:hidden;border:1px solid #e7e8be25;border-radius:6px}#minimap{width:100%;height:100%}.north{position:absolute;top:4px;left:6px;font-size:10px;color:#ece9c5}.mapexpand{position:absolute;bottom:0;right:0;border-radius:5px;padding:0;min-width:44px;min-height:44px;background:#1c3022aa}.time{display:flex;justify-content:space-between;font-size:11px;letter-spacing:.08em;margin:9px 0 5px}#coords{font-size:9px;color:#bbc8b5;font-variant-numeric:tabular-nums;white-space:nowrap}#crosshair{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:21px;opacity:.7;text-shadow:0 1px 5px #000}#targetLabel{position:absolute;top:calc(50% + 26px);left:50%;transform:translateX(-50%);text-align:center;font-size:12px;text-shadow:0 2px 6px #000;max-width:50%}#toast{position:absolute;top:23%;left:50%;transform:translateX(-50%);padding:10px 18px;border-radius:8px;background:#12241cdd;font-size:13px;opacity:0;transition:opacity .2s;max-width:60%;text-align:center}#toast.visible{opacity:1}#work{position:absolute;bottom:80px;left:50%;transform:translateX(-50%);background:#142a22c9;padding:8px 14px;border-radius:6px;font-size:11px}#joystick{position:absolute;bottom:max(65px,calc(env(safe-area-inset-bottom) + 40px));left:max(35px,env(safe-area-inset-left));width:146px;height:146px;border:1px solid #e4ebd643;border-radius:50%;background:#20352a26;touch-action:none;user-select:none}#stick{position:absolute;width:62px;height:62px;left:41px;top:41px;background:#d9e6cf28;border:1px solid #eef4d77a;border-radius:50%;pointer-events:none}#joystick span{position:absolute;bottom:-25px;left:0;width:100%;text-align:center;font-size:9px;letter-spacing:.2em;opacity:.6}#actions{position:absolute;right:max(25px,env(safe-area-inset-right));bottom:max(60px,calc(env(safe-area-inset-bottom) + 40px));display:grid;grid-template-columns:repeat(3,92px);gap:9px}#actions button{min-height:60px;padding:10px 7px;font-size:12px;background:#112820ba}#actions button.primary{background:#d6dbbc;color:#172823}button[aria-pressed=true]{border-color:#d4dfb6;background:#586b55!important}#buildbar{position:absolute;bottom:210px;right:25px;display:flex;gap:5px;pointer-events:auto}#buildbar button{font-size:11px;padding:8px;min-height:44px}footer{position:absolute;bottom:max(15px,env(safe-area-inset-bottom));left:25px;right:25px;display:flex;gap:25px;color:#d4dfc0aa;font-size:9px;letter-spacing:.1em}#hint{margin:auto}#perf{font-variant-numeric:tabular-nums}.overlay{position:fixed;inset:0;background:#091912bf;display:grid;place-items:center;padding:max(20px,env(safe-area-inset-top));z-index:10}.intro{text-align:center;width:min(620px,90vw)}.eyebrow{font-size:10px;letter-spacing:.25em;color:#bbc8ae}h1{font-family:Georgia,serif;font-weight:400;letter-spacing:.24em;margin:18px 0 20px 20px;font-size:clamp(52px,9vw,96px)}.intro p{color:#d2dcc5;line-height:1.7;font-family:Georgia,serif;font-size:18px}.introbuttons{display:flex;gap:12px;justify-content:center;margin:25px 0}.introbuttons button{min-width:190px}.intro small{display:block;font-size:11px;line-height:1.7;color:#a9baa6}.intro details{margin:15px auto;color:#bccbb6;font-size:13px}.intro input[type=number]{width:130px}details summary{cursor:pointer;min-height:36px}.intro label{margin:8px;display:inline-flex;align-items:center;gap:8px}input,select{min-height:44px;font-size:16px;border:1px solid #b7c9a84a;border-radius:6px;background:#132b23;color:#e7edda;padding:8px}input[type=checkbox]{width:20px;min-height:20px;accent-color:#c2d19b}.panel{width:min(610px,95vw);max-height:90dvh;overflow:auto;background:#13251ff5;border:1px solid #bac7a64d;border-radius:16px;padding:26px;box-shadow:0 20px 80px #0007}.panelhead{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.panelhead button{font-size:22px;line-height:1;padding:10px 15px}h2{font-family:Georgia,serif;font-size:29px;font-weight:400;margin:8px 0}h3{font-size:16px;font-weight:500}.items{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.item{padding:18px 12px;background:#24372c;border:1px solid #bfd0b025;border-radius:9px}.item b{display:block;font-family:Georgia,serif;font-size:28px;margin:8px 0}.item span{font-size:12px;color:#c3d0b6}.recipe{display:flex;justify-content:space-between;align-items:center;gap:20px;border-top:1px solid #b8c9aa2a;margin-top:22px;padding-top:8px}.recipe p,.muted{color:#b4c3aa;font-size:12px;line-height:1.7}.settings{display:grid;grid-template-columns:1fr 1fr;gap:12px}.settings label{display:flex;align-items:center;gap:10px;font-size:13px;min-height:48px}.filebutton{justify-content:center}.filebutton input{display:none}.mapPanel{width:min(850px,95vw)}#fullmap{width:100%;height:50dvh;display:block;background:#0a1713;border:1px solid #cbd1aa30;border-radius:8px;touch-action:none}.maptools{display:flex;align-items:center;gap:8px;margin-top:10px}.maptools span{font-size:11px;margin-right:auto;color:#bcc9ae}.maptools button{padding:8px 14px}progress{width:80%;height:5px;accent-color:#c9d3aa}#startStatus{margin:15px 0;color:#ecce9f;font-size:12px}#portrait{display:none;position:fixed;top:50%;left:15%;width:70%;padding:22px;text-align:center;background:#162920ef;border:1px solid #c3cead6b;z-index:20;border-radius:12px;pointer-events:none}@media(orientation:portrait) and (max-width:900px){#portrait{display:block}}@media(max-height:650px){#navigation{width:136px;top:14px;left:14px}.mapframe{width:116px;height:116px}#joystick{width:126px;height:126px;bottom:55px}#stick{left:31px;top:31px}#actions{bottom:48px}#buildbar{bottom:191px}.panel{padding:18px}.panelhead{margin-bottom:10px}h1{font-size:60px;margin:8px 0}.intro p{font-size:16px}.introbuttons{margin:14px 0}}@media(hover:hover) and (pointer:fine){button:hover{filter:brightness(1.13)}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
