:root{color-scheme:dark;--bg:#17231e;--panel:#22332b;--line:#485548;--ink:#eef0df;--muted:#a8b5a1;--gold:#efc776;--mint:#b6d4a0;--danger:#eda189;font:13px system-ui,-apple-system,sans-serif}*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden;background:var(--bg);color:var(--ink);overscroll-behavior:none}body{height:100dvh}button,a.button,select{font:inherit;color:inherit;background:#293b31;border:1px solid var(--line);border-radius:7px;min-height:44px;min-width:44px;padding:8px 11px;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button{cursor:pointer}button.active,button[aria-pressed=true]{background:var(--gold);color:#24261c;border-color:var(--gold)}button:disabled{opacity:.45;cursor:default}button:focus-visible,select:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:2px}[hidden]{display:none!important}#game-shell{height:100%;display:flex;flex-direction:column;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);max-width:1800px;margin:auto}.topbar{height:52px;display:flex;align-items:center;gap:7px;padding:4px 9px;flex-shrink:0;border-bottom:1px solid var(--line);z-index:2}.brand{display:flex;align-items:center;gap:7px;background:transparent;border:none;padding:0 3px;white-space:nowrap}.brand b{font-size:13px;letter-spacing:.13em}.brand-mark{width:31px;height:31px;display:grid;place-items:center;background:var(--gold);color:#202c21;font-size:27px;border-radius:8px}.resource-chips{margin-left:auto;min-width:0}.resource-chips button{display:flex;align-items:center;gap:5px;padding:6px 8px;font-variant-numeric:tabular-nums;font-size:11px}.item{display:inline-block;width:11px;height:11px;transform:rotate(30deg);background:var(--mint);border:1px solid #eff0df70;border-radius:2px;flex-shrink:0}.item.iron{background:#97bdce}.item.copper{background:#d8895f}.item.coal{background:#485049}#research-button{display:flex;align-items:center;gap:5px;padding:6px 8px;font-size:10px}#research-button span{font-size:20px}.world{position:relative;flex:1;min-height:130px;overflow:hidden;background:#535742}#world{display:block;width:100%;height:100%;touch-action:none}.map-tools{position:absolute;left:8px;top:8px;display:flex;flex-direction:column;gap:4px}.map-tools button{width:44px;height:44px;padding:0;background:#17231ee8;font-size:24px;box-shadow:0 2px 6px #0002}#player-button{font-size:12px;color:var(--gold);font-weight:800}.world-overlays{position:absolute;right:8px;top:8px;display:flex;flex-direction:column;align-items:flex-end;gap:4px}#minimap-button{padding:4px;min-height:0;background:#17231ee8;border-color:#8d967766}#minimap{display:block;width:96px;height:72px}.layer-buttons{display:flex;gap:4px}.layer-buttons button{font-size:10px;min-width:44px;padding:4px 6px;background:#17231ee8}#world-status{position:absolute;bottom:8px;left:8px;right:8px;display:flex;gap:7px;pointer-events:none;font-size:10px}#world-status span{background:#17231edd;border:1px solid #7d8a6b55;padding:5px 7px;border-radius:5px}#save-status{margin-left:auto;color:var(--mint)}#toast{position:absolute;top:12px;left:62px;right:116px;margin:auto;max-width:420px;padding:10px 12px;background:#17231ef0;border:1px solid var(--gold);border-radius:8px;opacity:0;pointer-events:none;text-align:center;z-index:4;font-size:12px}#toast.visible{opacity:1}#build-controls{position:absolute;bottom:38px;left:7px;right:7px;display:flex;align-items:center;gap:4px;padding:5px;background:#17231ef3;border:1px solid var(--line);border-radius:9px;max-width:470px;margin:auto;z-index:3}#build-controls b{font-size:11px;flex:1;padding-left:4px}#build-controls button{padding:4px 7px;font-size:11px}#rotate-build{font-size:20px!important}.tool-deck{flex-shrink:0;padding:5px 7px;border-top:1px solid var(--line);background:var(--bg);z-index:2}.tool-row{display:flex;gap:4px;margin-bottom:5px}.tool-row button{flex:1;font-size:11px;padding:6px}#guide-button{flex:0 0 44px;font-size:19px}.hotbar{display:flex;gap:5px;overflow-x:auto;scrollbar-width:thin;overscroll-behavior:contain;padding-bottom:2px;touch-action:pan-x}.hotbar button{flex:0 0 60px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;position:relative;min-height:58px;padding:4px 3px;font-size:8px;background:#283b30}.hotbar button.active{background:var(--gold);color:#222b20}.hotbar .symbol{font-size:21px;line-height:1.2}.hotbar .count{position:absolute;right:5px;top:2px;font-size:9px;color:var(--muted)}.hotbar button.active .count{color:#34452b}dialog{width:min(560px,calc(100vw - 16px));max-height:calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));border:1px solid #81906d;border-radius:13px;color:var(--ink);background:var(--bg);padding:15px;overflow:auto;box-shadow:0 18px 70px #0008}dialog::backdrop{background:#111b16bd;backdrop-filter:blur(3px)}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:8px;position:sticky;top:-15px;background:var(--bg);padding:8px 0;z-index:2}.dialog-head h2{font-size:21px;margin:0}.dialog-head button{font-size:24px;background:none;border:none;padding:0}.summary{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:12px}.summary span,.badge{padding:5px 8px;border:1px solid var(--line);border-radius:5px;font-size:11px;color:var(--mint)}.recipe-control{display:grid;grid-template-columns:60px 1fr;align-items:center;gap:6px;margin-bottom:12px}.recipe-control label{font-size:11px;color:var(--muted)}.ingredients{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:5px;font-size:10px;color:var(--muted)}.buffer-heading{font-size:11px;font-weight:700;color:var(--gold);margin:15px 0 5px}.buffer-row{display:flex;align-items:center;gap:6px;padding:6px 0;border-bottom:1px solid #48554866;min-height:52px}.buffer-row .item-name{flex:1;font-size:12px;min-width:0}.buffer-row .item-qty{font-size:12px;min-width:24px;text-align:right;font-variant-numeric:tabular-nums}.buffer-row button{font-size:11px;padding:5px 7px}.machine-actions{display:flex;gap:6px;margin-top:15px}.machine-actions button{flex:1;font-size:11px;padding:5px}.warning{border-color:#af7b62;color:#f1b093;background:#3c3327}.notice{color:var(--gold);font-size:11px;line-height:1.4;margin-top:9px;min-height:0}.notice:empty{display:none}.tabs{display:flex;gap:6px;margin-bottom:12px}.tabs button{flex:1}.inventory-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.inventory-cell{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-height:72px;padding:7px 3px;border:1px solid var(--line);border-radius:7px;background:#25372b;font-size:10px}.inventory-cell .item{width:18px;height:18px}.inventory-cell strong{font-size:15px;font-variant-numeric:tabular-nums}.recipe-list{display:flex;flex-direction:column;gap:7px}.recipe-card{display:flex;align-items:center;gap:7px;min-height:65px;border:1px solid var(--line);padding:8px;border-radius:7px}.recipe-card>div{flex:1;min-width:0}.recipe-card b{font-size:12px;display:block}.recipe-card .ingredients{margin-top:5px}.recipe-card button{font-size:11px;padding:5px 8px}.queue-row{display:flex;align-items:center;gap:7px;margin-top:8px;padding:8px;border:1px solid var(--line);border-radius:7px}.queue-row span{flex:1;font-size:11px}.queue-row button{font-size:11px}.technology{border:1px solid var(--line);border-radius:8px;padding:12px;margin-bottom:9px}.technology>div{display:flex;justify-content:space-between;align-items:center;gap:7px}.technology b{font-size:13px}.technology .ingredients{margin:7px 0}.progress{height:7px;background:#364737;border-radius:3px;overflow:hidden;margin:9px 0}.progress i{height:100%;display:block;background:var(--gold)}.menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.button{text-decoration:none;text-align:center;display:flex;align-items:center;justify-content:center}.guide-step{display:flex;align-items:center;gap:9px;min-height:60px;padding:8px 0;border-bottom:1px solid var(--line)}.guide-step>div{flex:1}.guide-step b{display:block;font-size:12px}.guide-step small{display:block;color:var(--muted);font-size:11px;margin-top:4px;line-height:1.4}.guide-step button{font-size:11px}.guide-step.done b{color:var(--mint)}#guide-controls{width:100%;margin-top:12px}dl{margin:0}dt{font-size:13px;color:var(--gold);font-weight:700;margin-top:15px}dd{margin:4px 0 0;font-size:12px;line-height:1.65;color:#b3c1aa}dialog p{font-size:12px;line-height:1.7;color:#b5c3ac}.eyebrow{font-size:9px!important;letter-spacing:.1em;color:var(--gold)!important}
@media(max-width:370px){.brand b{font-size:10px;letter-spacing:.08em}.brand-mark{width:26px;height:26px}.topbar{padding:4px 6px;gap:3px}.resource-chips button{gap:4px;padding:4px 6px;font-size:10px}#research-button b{display:none}.inventory-grid{grid-template-columns:repeat(3,1fr)}#toast{right:65px}.buffer-row{gap:4px}.buffer-row button{padding:4px;font-size:10px}}
@media(orientation:landscape) and (max-height:560px){.topbar{height:44px;padding:0 8px}.brand b{font-size:12px}.tool-deck{display:flex;align-items:center;gap:7px;padding:3px 7px}.tool-row{flex:0 0 240px;margin:0;gap:3px}.tool-row button{font-size:10px;padding:4px;min-width:44px}#guide-button{flex-basis:44px}.hotbar{flex:1;min-width:0;padding-bottom:0}.hotbar button{min-height:48px;flex-basis:48px;font-size:7px}.hotbar .symbol{font-size:17px}.map-tools{flex-direction:row;top:5px;left:5px}.world-overlays{right:5px;top:5px}#minimap{width:80px;height:60px}.layer-buttons{gap:3px}.layer-buttons button{padding:3px;font-size:9px}.world{min-height:130px}#build-controls{bottom:34px;max-width:370px}#world-status{bottom:5px;font-size:9px}#toast{top:6px;left:195px;right:95px;padding:7px;font-size:11px}dialog{max-height:calc(100dvh - 16px)}.dialog-head{padding:3px 0}}
@media(orientation:landscape) and (max-width:600px){.tool-row{flex-basis:232px}.tool-row button{padding:3px}#guide-button{flex-basis:44px}.hotbar button{flex-basis:48px}.layer-buttons{display:none}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* The visible game owns selection/callouts; native forms keep keyboard/IME/focus support. */
#world,button,button *,a.button,.topbar,.tool-deck,#build-controls,#world-status,.summary,.buffer-row,.inventory-grid,.recipe-card,.queue-row,.technology,.tabs,.dialog-head,.recipe-control label{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
select,input,textarea{user-select:auto;-webkit-user-select:auto;-webkit-touch-callout:default}

body{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}

#game-shell,#game-shell *,dialog,dialog *{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
#game-shell input,#game-shell textarea,#game-shell select,dialog input,dialog textarea,dialog select{user-select:auto;-webkit-user-select:auto;-webkit-touch-callout:default}

.direct-controls{position:absolute;bottom:42px;left:12px;right:12px;display:flex;align-items:flex-end;justify-content:space-between;pointer-events:none;z-index:2}#joystick{position:relative;pointer-events:auto;width:106px;height:106px;min-width:106px;border-radius:50%;background:#17231eaa;border:2px solid #e5d29a80;touch-action:none;padding:0}.joystick-knob{position:absolute;left:30px;top:30px;width:42px;height:42px;border:1px solid #e9d898aa;background:#d3bd8280;border-radius:50%;pointer-events:none}#joystick::before,#joystick::after{content:"";position:absolute;background:#bfb98355}#joystick::before{width:1px;height:74px;left:51px;top:14px}#joystick::after{height:1px;width:74px;top:51px;left:14px}.action-pad{display:flex;gap:7px;pointer-events:auto}.action-pad button{width:58px;height:58px;border-radius:50%;padding:0;font-size:12px;touch-action:none;background:#17231ee6;border-color:#dbca9580}.action-pad button[aria-pressed=true]{background:var(--gold)}#build-controls{bottom:155px}.tool-row button{min-width:44px}
@media(orientation:landscape) and (max-height:560px){.direct-controls{bottom:32px;left:10px;right:10px}#joystick{width:84px;height:84px;min-width:84px}.joystick-knob{left:20px;top:20px}#joystick::before{left:40px;top:8px;height:64px}#joystick::after{top:40px;left:8px;width:64px}.action-pad button{width:50px;height:50px}.tool-row{flex:0 0 204px}#build-controls{bottom:92px}}
@media(max-width:370px){#joystick{width:94px;height:94px;min-width:94px}.joystick-knob{left:25px;top:25px}#joystick::before{left:45px;top:10px;height:70px}#joystick::after{top:45px;left:10px;width:70px}}
