:root{--panel:#121e1ee6;--line:#3a4a48;--text:#edf3df;--muted:#a2b6a7;--accent:#e4ca88;--select:#6cff7c;--player:#79d8cb;--enemy:#ff8a73}html,body{height:100%;color:var(--text);-webkit-user-select:none;user-select:none;background:#3f5230;margin:0;font:13px/1.45 system-ui,Segoe UI,Microsoft JhengHei,sans-serif;overflow:hidden}canvas{display:block}[hidden]{display:none!important}kbd{background:#2b3533;border:1px solid #4a5a58;border-radius:4px;padding:0 4px;font:12px/1.5 inherit}.muted{color:var(--muted)}button{color:var(--text);border:1px solid var(--accent);cursor:pointer;font:inherit;background:#24302e;border-radius:6px;padding:4px 12px}button:hover:not(:disabled){background:#33423f}button:disabled{opacity:.55;cursor:default}#topbar{background:var(--panel);border:1px solid var(--line);white-space:nowrap;font-variant-numeric:tabular-nums;border-radius:8px;align-items:center;gap:14px;padding:5px 12px;display:flex;position:fixed;top:10px;left:50%;transform:translate(-50%)}#topbar .p b{color:var(--player)}#topbar .e b{color:var(--enemy)}#topbar .res b{color:var(--accent);text-align:right;min-width:2.2em;display:inline-block}#topbar .res small{color:var(--muted)}#help{background:var(--panel);border:1px solid var(--line);border-radius:8px;max-width:320px;padding:8px 12px;position:fixed;top:54px;left:10px}#help h1{color:var(--accent);cursor:pointer;margin:0;font-size:14px}#help:not(.collapsed) h1{margin-bottom:4px}#help .row{margin:1px 0}#help .toggle{color:var(--muted);cursor:pointer;font-size:12px}#help.collapsed .body{display:none}#selection{background:var(--panel);border:1px solid var(--line);text-align:center;border-radius:8px;min-width:260px;padding:8px 12px;position:fixed;bottom:10px;left:50%;transform:translate(-50%)}#selection .types{flex-wrap:wrap;justify-content:center;gap:6px;margin-top:6px;display:flex}#selection .types button{border-color:#4a5a58}#selection .types button.on,#build button.on{border-color:var(--accent);background:#3a4a36}#selection .types button small,#build button small{color:var(--muted);font-size:11px;display:block}#selection .train button{min-width:64px}#selection .actions{margin-top:6px}#selection .hint{margin-top:2px;font-size:11px}button.danger{border-color:var(--enemy);color:var(--enemy)}#build{background:var(--panel);border:1px solid var(--line);border-radius:8px;align-items:center;gap:6px;padding:6px 8px;display:flex;position:fixed;bottom:10px;left:10px}#build .title{color:var(--accent);writing-mode:vertical-rl;letter-spacing:2px;font-weight:700}#build button{border-color:#4a5a58;min-width:64px}#build button.short small{color:var(--enemy)}#selection .bar{background:#1a2422;border-radius:3px;height:6px;margin-top:6px;overflow:hidden}#selection .bar i{background:var(--player);height:100%;display:block}#modeHint{white-space:nowrap;background:#781e14e0;border-radius:6px;padding:4px 12px;position:fixed;bottom:120px;left:50%;transform:translate(-50%)}#modeHint.ok{background:#1c4628e0}#toasts{pointer-events:none;flex-direction:column;align-items:center;gap:6px;display:flex;position:fixed;top:54px;left:50%;transform:translate(-50%)}#toasts div{background:var(--panel);border:1px solid var(--accent);border-radius:6px;padding:5px 14px;font-weight:600;transition:opacity .4s}#toasts div.warn{border-color:var(--enemy);color:var(--enemy)}#minimap{border:1px solid var(--accent);cursor:pointer;image-rendering:auto;background:#4f6a33;border-radius:6px;width:240px;height:180px;position:fixed;bottom:10px;right:10px}#stats{color:var(--muted);font-variant-numeric:tabular-nums;text-shadow:0 1px 2px #000;font-size:12px;position:fixed;bottom:196px;right:12px}#box{border:1px solid var(--select);pointer-events:none;background:#6cff7c1f;display:none;position:fixed}.overlay{background:#0a12108c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.card{background:var(--panel);border:1px solid var(--accent);text-align:center;border-radius:12px;min-width:280px;padding:22px 30px}#start h1{color:var(--accent);letter-spacing:3px;margin:0 0 6px;font-size:32px}#start .choices{justify-content:center;gap:8px;margin:16px 0;display:flex}#start .choices button{border-color:#4a5a58;min-width:76px}#start .choices .label{color:var(--muted);text-align:right;align-self:center;width:36px;font-size:13px}#start .choices button.on{border-color:var(--accent);background:#3a4a36}#start .option{color:var(--muted);cursor:pointer;margin:-4px 0 14px;display:block}#startBtn,#restart{padding:8px 26px;font-size:16px}#techPick h2{color:var(--accent);margin:0 0 4px}#techPick .choices{justify-content:center;gap:10px;margin-top:14px;display:flex}#techPick .choices button{min-width:130px;padding:10px 14px}#techPick .choices button b{color:var(--accent);font-size:15px;display:block}#techPick .choices button small{color:var(--muted);margin-top:4px;display:block}#banner .title{color:var(--accent);letter-spacing:4px;font-size:42px;font-weight:800}#banner .result{margin:10px 0 16px;line-height:1.8}#audioPanel{background:var(--panel);border:1px solid var(--line);z-index:5;border-radius:8px;flex-direction:column;gap:6px;padding:8px 12px;display:flex;position:fixed;top:52px;right:50%;transform:translate(calc(50% + 300px))}#audioPanel label{justify-content:space-between;align-items:center;gap:8px;display:flex}#audioPanel input[type=range]{width:130px;accent-color:var(--accent)}#paused{position:fixed;top:54px;right:10px}#paused .card{align-items:center;gap:10px;min-width:0;padding:8px 14px;font-weight:700;display:flex}#paused small{color:var(--muted);font-weight:400}@media (width<=1100px){#selection{bottom:10px;left:auto;right:262px;transform:none}}@media (width<=760px){#help{display:none}#topbar{gap:8px;font-size:12px}#topbar .muted{display:none}}
