#match-setup{position:fixed;inset:0;overflow:auto;color:#29343b;background:#f4f0e6;font:15px/1.5 system-ui,sans-serif}#match-setup *{box-sizing:border-box}.setup-shell{max-width:1120px;margin:auto;padding:48px max(24px,env(safe-area-inset-right)) 48px max(24px,env(safe-area-inset-left))}#match-setup h1{font-size:28px;font-weight:600;margin:0 0 32px}#match-setup label{display:block;margin:20px 0 6px}#match-setup button,#match-setup input,#match-setup select{font:inherit;border:1px solid #b9b3a6;border-radius:4px;min-height:44px;background:#faf8f1;color:inherit;padding:10px 12px}#match-setup select{display:block;width:100%}#match-setup button,#match-setup summary{cursor:pointer}#match-setup button:hover{background:#ecebe4;border-color:#58646b}#match-setup :focus-visible{outline:2px solid #365778;outline-offset:3px}#match-setup p{color:#58646b;font-size:13px;margin:10px 0}#match-setup .mission{min-height:39px;margin:8px 0 0}#match-setup .launch{display:block;width:100%;margin:20px 0 24px;background:#253f58;color:#fff;border-color:#253f58;font-weight:600}#match-setup .launch:hover{background:#304f6c}#match-setup :disabled{opacity:.5;cursor:default}#match-setup summary{min-height:44px;padding:12px 0}.solo-setup{display:grid;grid-template-columns:320px minmax(0,1fr);column-gap:48px;align-items:start}.setup-choices{min-width:0}#match-setup .setup-choices label:first-child{margin-top:0}.setup-launch{grid-column:1}.solo-setup .map-preview{grid-column:2;grid-row:1 / 3}.campaign-entry,.online-options,.controls-guide{max-width:320px}.map-preview{display:block;width:100%;height:auto;border:1px solid #d6d0c2}.campaign-entry,.online-options,.controls-guide{border-top:1px solid #d6d0c2}.campaign-entry{padding:16px 0 8px}.online-options[open],.controls-guide[open]{padding-bottom:16px}.online-unavailable{margin:0;padding:12px 0}#match-setup .online,#match-setup .campaign-open{width:100%}.join-room div{display:flex;gap:8px}.join-room input{min-width:0;width:100%;text-transform:uppercase}#match-setup .setup-error{color:#a23424}.setup-error:empty{display:none}.lobby-back{position:fixed;top:20px;left:20px;min-height:44px;padding:10px 16px;border:1px solid #b9b3a6;border-radius:4px;background:#faf8f1;color:#29343b;font:15px system-ui,sans-serif;cursor:pointer}.lobby-back:focus-visible{outline:2px solid #365778;outline-offset:3px}@media(max-width:480px){.setup-shell{padding:24px 20px}#match-setup h1{margin-bottom:24px}}@media(max-width:760px){.setup-shell{max-width:600px}.solo-setup{display:flex;flex-direction:column}.setup-choices,.setup-launch{width:100%}.solo-setup .map-preview{margin-top:24px}.campaign-entry,.online-options,.controls-guide{max-width:none}}@media(orientation:landscape)and (max-height:520px){.setup-shell{max-width:none;padding:max(12px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left))}#match-setup h1{font-size:clamp(18px,6vh,26px);margin:0 0 12px}#match-setup label{margin:10px 0 4px}#match-setup .mission{min-height:0;margin:4px 0 0}.solo-setup{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);column-gap:20px;align-items:start}.setup-choices,.setup-launch{grid-column:1}.solo-setup .map-preview{grid-column:2;grid-row:1 / 3;width:auto;height:auto;max-width:100%;max-height:82svh;justify-self:center;margin-top:0}#match-setup .launch{margin:12px 0}}:root{--game-safe-top: env(safe-area-inset-top, 0px);--game-safe-right: env(safe-area-inset-right, 0px);--game-safe-bottom: env(safe-area-inset-bottom, 0px);--game-safe-left: env(safe-area-inset-left, 0px)}#hud{--paper: #f4f0e6;--graphite: #26313b;--obstacle: #d8d2c5;--scrim: rgba(244, 240, 230, .92);--amber: #f59e0b;--rule: #c9c2b2;--muted: #58646b;position:fixed;inset:0;z-index:10;pointer-events:none;padding:var(--game-safe-top) var(--game-safe-right) var(--game-safe-bottom) var(--game-safe-left);color:var(--graphite);font-family:system-ui,sans-serif;-webkit-user-select:none;user-select:none}#hud[hidden],#hud [hidden]{display:none}#hud button,#hud .hud-control{pointer-events:auto}.hud-ico{width:1em;height:1em;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;display:block;flex:none}.hud-topbar{position:absolute;left:0;right:0;top:0;display:flex;align-items:center;gap:14px;padding:10px clamp(12px,2vw,22px);border-bottom:1px solid var(--rule);background:linear-gradient(var(--scrim),rgba(244,240,230,.28))}.hud-spacer{flex:1 1 0}.hud-left,.hud-right{display:flex;align-items:center;gap:12px;min-width:0}.hud-right{justify-content:flex-end}.hud-unit{display:flex;align-items:center;gap:8px}.hud-unit--right{flex-direction:row-reverse}.hud-readout{display:flex;align-items:center;gap:7px}.hud-readout--right{flex-direction:row-reverse}.hud-dot{width:9px;height:9px;border-radius:50%;background:var(--team);flex:none}.hud-side{font:600 12px/1 system-ui,sans-serif;letter-spacing:.16em;color:var(--team)}.hud-count{font:600 clamp(18px,2.6vh,24px) / 1 ui-monospace,"SFMono-Regular",Menlo,monospace;font-variant-numeric:tabular-nums;color:var(--graphite)}.hud-track{height:2px;width:clamp(28px,4vw,50px);border-radius:2px;background:linear-gradient(90deg,var(--team),transparent)}.hud-readout--right .hud-track{background:linear-gradient(270deg,var(--team),transparent)}.hud-chips{display:flex;align-items:center;gap:6px}.hud-chip{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 8px;border:1px solid var(--rule);border-radius:999px;background:#f4f0e6b3;color:var(--team);font:600 12px/1 ui-monospace,monospace;font-variant-numeric:tabular-nums}.hud-chip .hud-ico{width:13px;height:13px}.hud-clock{display:inline-flex;align-items:center;gap:8px}.hud-clock .hud-ico{width:18px;height:18px;color:var(--muted)}.hud-time{font:600 clamp(20px,3vh,26px) / 1 ui-monospace,"SFMono-Regular",Menlo,monospace;font-variant-numeric:tabular-nums;letter-spacing:.02em}.hud-btn{display:inline-flex;align-items:center;gap:7px;height:40px;min-width:40px;padding:0 13px;border:1px solid var(--rule);border-radius:3px;background:#f4f0e6d9;color:var(--graphite);font:600 12px/1 system-ui,sans-serif;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.hud-btn:hover{border-color:var(--graphite)}.hud-btn:focus-visible{outline:2px solid #365778;outline-offset:2px}.hud-btn .hud-ico{width:17px;height:17px}.hud-icon-btn{padding:0;justify-content:center}.hud-primary{background:#253b58;border-color:#253b58;color:var(--paper)}.hud-underbar{position:absolute;top:calc(60px + var(--game-safe-top));left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:7px;text-align:center}.hud-center{display:flex;gap:16px}.hud-overtime{display:inline-flex;align-items:center;gap:6px;color:var(--amber);font:700 12px/1 system-ui,sans-serif;letter-spacing:.22em;text-transform:uppercase}.hud-objective{display:inline-flex;align-items:center;gap:8px;padding:4px 11px;border:1px solid var(--rule);border-radius:999px;background:#f4f0e6d1;color:var(--muted);font:600 11px/1 system-ui,sans-serif;letter-spacing:.12em;text-transform:uppercase}.hud-objective .hud-ico{width:14px;height:14px;color:var(--graphite)}.hud-obj-role{color:var(--graphite)}.hud-pips{display:inline-flex;gap:4px}.hud-pips i{width:7px;height:7px;border:1.5px solid var(--muted);border-radius:50%}.hud-pips i.on{background:var(--muted)}.hud-obj-setup{color:var(--amber)}.hud-obj-bar{width:64px;height:4px;border-radius:2px;background:var(--obstacle);overflow:hidden}.hud-obj-bar>i{display:block;height:100%;background:#ef4444}.hud-mission{display:inline-flex;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:2px 10px;text-align:center;max-width:min(90vw,420px);padding:5px 13px;border:1px solid var(--rule);border-radius:14px;background:#f4f0e6e0;color:var(--graphite);font:600 13px/1.2 system-ui,sans-serif}.hud-mission-count{color:var(--muted);font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}.hud-fit{position:absolute;right:clamp(12px,2vw,22px);bottom:clamp(12px,2vw,22px)}.hud-banner{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:var(--scrim);text-align:center}.hud-crown{width:30px;height:30px;color:var(--amber)}.hud-rule{width:min(220px,40vw);height:1px;background:var(--rule)}.hud-title{margin:0;font:600 clamp(28px,6vh,44px) / 1 system-ui,sans-serif;letter-spacing:.22em;text-transform:uppercase}.hud-sub{margin:0;color:var(--muted);font:600 12px/1 system-ui,sans-serif;letter-spacing:.16em;text-transform:uppercase}.hud-actions{display:flex;gap:12px;margin-top:6px}.campaign-screen .setup-shell{max-width:1280px}.campaign-header{display:flex;align-items:baseline;gap:20px;flex-wrap:wrap;margin-bottom:20px}#match-setup .campaign-header h1{margin:0;font-family:Georgia,Times New Roman,serif}#match-setup .campaign-progress{margin:0}.campaign-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:32px;align-items:start}.overworld{position:relative;width:100%;background:#faf6ec;box-shadow:0 1px #d6d0c2,0 6px 18px #26313b14}.overworld svg{position:absolute;inset:0;width:100%;height:100%}.overworld .sea,.overworld .sea-cover{fill:#e8e7dd;stroke:#e8e7dd}.overworld .sea-cover{fill:none}.overworld .waterline{fill:none;stroke:#8e9a9f}.overworld .land{fill:#faf6ec;stroke:#46525a;stroke-width:1.3;stroke-linejoin:round}.overworld .lake{fill:#e8e7dd;stroke:#46525a;stroke-width:1}.overworld .lake-ring{fill:none;stroke:#7d8a90;stroke-width:.7;opacity:.6}.overworld .river{fill:none;stroke:#6f7d84;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.overworld .road{fill:none;stroke:#8b8578;stroke-width:.9;stroke-dasharray:5 4}.overworld .rail{fill:none;stroke:#3a454d;stroke-width:1.3}.overworld .rail-ties{fill:none;stroke:#3a454d;stroke-width:5;stroke-dasharray:.9 5}.overworld .peak{fill:#faf6ec;stroke:#46525a;stroke-width:1.1;stroke-linejoin:round}.overworld .peak-shade,.overworld .hachure{fill:none;stroke:#6c675c;stroke-width:.7;stroke-linecap:round}.overworld .crest{fill:none;stroke:#46525a;stroke-width:1.2;stroke-linecap:round}.overworld .tree{fill:#faf6ec;stroke:#5d6650;stroke-width:.8}.overworld .trunk{fill:none;stroke:#5d6650;stroke-width:.7}.overworld .marsh{fill:none;stroke:#6f7d84;stroke-width:.7;stroke-linecap:round}.overworld .enemy-ground{fill:url(#enemy-hatch)}.overworld .enemy-hatch{stroke:#b3342a;stroke-width:.8;opacity:.22}.overworld .front{fill:none;stroke:#b3342a;stroke-width:2.2;stroke-linejoin:round;stroke-linecap:round}.overworld .front-teeth{fill:#b3342a;stroke:none}.overworld .neatline-outer{fill:none;stroke:#26313b;stroke-width:1.8}.overworld .neatline-inner,.overworld .graticule{fill:none;stroke:#26313b;stroke-width:.7}.overworld .compass-ring{fill:none;stroke:#46525a;stroke-width:.7}.overworld .compass-star{fill:#faf6ec;stroke:#26313b;stroke-width:.8;stroke-linejoin:round}.overworld .compass-north{fill:#26313b}.overworld .compass text{font:600 11px Georgia,Times New Roman,serif;fill:#26313b}.overworld .label{font-family:Georgia,Times New Roman,serif;paint-order:stroke;stroke:#faf6ec;stroke-width:3.5;stroke-linejoin:round}.overworld .label.place{font-weight:600;fill:#26313b}.overworld .label.water{font-style:italic;fill:#58646b;stroke:#e8e7dd}.overworld .label.region{fill:#6c675c}#match-setup .mission-node{position:absolute;transform:translate(-50%,-50%);min-width:0;height:auto;min-height:0;aspect-ratio:1;padding:0;border-radius:50%;border:2px solid #26313b;background:#faf8f1;font:700 clamp(11px,1.05vw,15px) system-ui,sans-serif;color:#26313b}#match-setup .mission-node[data-state=available]{background:#3b82f6;border-color:#253f58;color:#fff;box-shadow:0 0 0 4px #3b82f640}#match-setup .mission-node[data-state=completed]{background:#26313b;color:#f4f0e6}#match-setup .mission-node[data-state=completed]:after{content:"✓";position:absolute;right:-6px;top:-8px;font-size:13px;color:#26313b}#match-setup .mission-node[data-state=locked]{border-style:dashed;border-color:#8a8f8f;color:#8a8f8f}#match-setup .mission-node[aria-current=true]{box-shadow:0 0 0 2px #faf6ec,0 0 0 4px #253f58}#match-setup .mission-node:hover{border-color:#253f58}.campaign-briefing{min-width:0;display:flex;flex-direction:column}#match-setup .briefing-act{margin:0;font:12px ui-monospace,monospace;letter-spacing:.06em;text-transform:uppercase}#match-setup .campaign-briefing h2{margin:6px 0 0;font:600 24px Georgia,Times New Roman,serif}#match-setup .briefing-text{font-size:14px;color:#29343b;min-height:6em}@media(max-width:900px){.campaign-layout{grid-template-columns:minmax(0,1fr);gap:20px}}@media(orientation:landscape)and (max-height:520px){.campaign-screen .setup-shell{max-width:none}.campaign-header{margin-bottom:8px}.campaign-layout{grid-template-columns:minmax(0,1fr) minmax(220px,34%);gap:16px}.overworld{max-height:78svh;width:auto;max-width:100%}#match-setup .campaign-briefing label{margin-top:8px}#match-setup .campaign-start{margin:10px 0}#match-setup .briefing-text{order:1;min-height:0;font-size:13px}}
