:root{--paper: #c9b98a;--paper-deep: #bfae7e;--ink: #2a2419;--brass: #c9a227;--brass-deep: #8a734d;--panel: #20242e;--panel-soft: #262c38;--text: #e8e2d2;--muted: #9a937f;--border: #3a4152;--sea: #22303e;--sea-deep: #1a2530;--chit: #d8c99a;--signal: #a63a3a;--p1: #6b7a3f;--p2: #3e5a78;--p3: #7e3b3b;--p4: #b49b62;--neutral: #6e6e6a;--font-display: "Black Ops One", "Arial Black", sans-serif;--font-text: "Barlow Condensed", "Arial Narrow", sans-serif;--radius: 3px}.btn{font-family:var(--font-text);font-weight:600;letter-spacing:.06em;text-transform:uppercase;font-size:.85em;padding:8px 16px;border-radius:var(--radius);border:1px solid var(--brass-deep);cursor:pointer;transition:filter .12s ease}.btn:hover{filter:brightness(1.12)}.btn:disabled{opacity:.45;cursor:default}.btn-brass{background:linear-gradient(180deg,#d9b13b,var(--brass));color:var(--ink);border-color:#6e5a1e}.btn-steel{background:linear-gradient(180deg,#39404f,#2a2f3b);color:var(--text);border-color:var(--border)}.panel{background:var(--panel);border:1px solid var(--brass-deep);border-radius:var(--radius);box-shadow:0 8px 24px #00000073}.stencil-head{font-family:var(--font-display);letter-spacing:.08em;color:var(--text);text-transform:uppercase}.chip{display:inline-block;padding:2px 10px;border-radius:var(--radius);font-family:var(--font-text);font-weight:600;letter-spacing:.05em;font-size:.85em;color:var(--text);border:1px solid rgba(0,0,0,.4)}.field-order{background:var(--chit);color:var(--ink);border:1px solid var(--brass-deep);border-radius:var(--radius);box-shadow:0 12px 32px #0000008c}.field-order .stencil-head{color:var(--ink)}:root{--bg: #14161c;--bg2: #191d26;--panel: #202634;--panel2: #262d3e;--border: #313b50;--text: #edf1f7;--muted: #9aa5b8;--faint: #67718a;--accent: #5b8cff;--accent-ink: #0a1022;--accent-soft: rgba(91, 140, 255, .14);--danger: #ff5d5d;--danger-soft: rgba(255, 93, 93, .1);--ok: #43d68a;--ok-soft: rgba(67, 214, 138, .1);--warn: #ffb020;--radius: 10px;--shadow: 0 8px 28px rgba(0, 0, 0, .45)}html,body{height:100%;margin:0}body{font-family:var(--font-text);background:radial-gradient(1200px 700px at 50% -10%,#1d2330 0%,var(--bg) 60%) fixed,var(--bg);color:var(--text);overflow:hidden;font-size:15px;line-height:1.45;letter-spacing:.02em}button{font-family:var(--font-text);font-weight:600;letter-spacing:.06em;text-transform:uppercase;font-size:.85em;padding:8px 16px;border-radius:var(--radius);background:linear-gradient(180deg,#39404f,#2a2f3b);color:var(--text);border:1px solid var(--border);cursor:pointer;white-space:nowrap;transition:filter .12s ease}button:hover{filter:brightness(1.12)}button:active{transform:translateY(1px)}button:disabled{opacity:.45;cursor:default;transform:none}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--brass);outline-offset:1px}.btn-primary,.btn-brass{background:linear-gradient(180deg,#d9b13b,var(--brass));color:var(--ink);border-color:#6e5a1e}.btn-primary:hover,.btn-brass:hover{filter:brightness(1.08)}.btn-large{padding:10px 26px;font-size:1.05em}input,select{background:#12151d;color:var(--text);border:1px solid var(--border);border-radius:7px;padding:5px 8px;font-size:.92em}input::placeholder{color:var(--faint)}#setup{position:fixed;top:0;right:0;bottom:0;left:0;overflow-y:auto;display:flex;justify-content:center;padding:clamp(16px,3vmin,40px)}.war-room-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;background-color:#1a120b;background-image:radial-gradient(ellipse 60% 45% at 18% 8%,rgba(255,190,90,.22) 0%,transparent 60%),radial-gradient(ellipse 70% 60% at 50% 45%,rgba(120,80,40,.25) 0%,transparent 70%),repeating-linear-gradient(93deg,transparent 0px,rgba(0,0,0,.12) 2px,transparent 4px),repeating-linear-gradient(88deg,transparent 0px,rgba(60,35,15,.08) 3px,transparent 7px),linear-gradient(160deg,#241811,#1a120b 40%,#120c07)}.war-room-bg:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at center,transparent 45%,rgba(0,0,0,.6) 100%)}.setup-dossier{position:relative;margin:auto;width:min(680px,94vw);padding:clamp(24px,4vmin,44px) clamp(20px,4vmin,48px);background-color:#d8c49a;background-image:radial-gradient(ellipse at 30% 15%,rgba(255,250,235,.35) 0%,transparent 50%),radial-gradient(ellipse at 75% 85%,rgba(120,90,50,.2) 0%,transparent 50%),linear-gradient(135deg,#e0cba0,#d8c49a,#cbb287);border:1px solid #8a7355;border-radius:4px;box-shadow:0 20px 60px #000000b3,0 2px 8px #00000080,inset 0 1px #fffaeb66;color:#3a2e1f;text-align:center}.setup-dossier:before{content:"";position:absolute;left:12px;top:16px;bottom:16px;width:2px;background:repeating-linear-gradient(to bottom,#8a7355 0px,#8a7355 8px,transparent 8px,transparent 20px);opacity:.4}.title-block{position:relative;margin-bottom:clamp(18px,3vmin,28px)}.gear-star{width:clamp(56px,10vmin,88px);height:auto;margin-bottom:8px;filter:drop-shadow(0 2px 3px rgba(0,0,0,.3))}.title-block h1{margin:0;font-family:Black Ops One,Courier New,monospace;font-size:clamp(28px,6vmin,52px);letter-spacing:.08em;text-transform:uppercase;color:#2a2018;text-shadow:0 1px 0 rgba(255,250,235,.5);line-height:1.1}.title-block .subtitle{margin:6px 0 0;font-family:Courier New,monospace;font-size:clamp(12px,2vmin,18px);letter-spacing:.35em;text-transform:uppercase;color:#5e4a30}.eval-stamp{position:absolute;top:-8px;right:clamp(0px,2vmin,16px);transform:rotate(12deg);padding:6px 12px;border:3px solid #8b1a1a;border-radius:4px;color:#8b1a1a;font-family:Courier New,monospace;font-weight:700;font-size:clamp(11px,1.8vmin,15px);letter-spacing:.15em;text-transform:uppercase;opacity:.85;background:#8b1a1a0f;line-height:1.3}.mode-row{display:flex;gap:clamp(8px,1.5vmin,14px);justify-content:center;margin-bottom:clamp(16px,2.5vmin,24px);flex-wrap:wrap}.mode-plaque{flex:1 1 0;min-width:140px;max-width:200px;padding:12px 8px;background:linear-gradient(180deg,#6b5a3e,#4a3d28);border:2px solid #8a7355;border-radius:6px;color:#e8d5b5;cursor:pointer;font-family:Courier New,monospace;transition:all .2s ease;box-shadow:0 3px 8px #0000004d,inset 0 1px #ffffff26}.mode-plaque.active{background:linear-gradient(180deg,#c9a227,#8a6d1a);border-color:#e8c547;color:#2a2018;box-shadow:0 0 16px #c9a22780,0 3px 8px #0000004d}.mode-plaque.locked{opacity:.45;cursor:not-allowed}.mode-plaque .plaque-title{display:block;font-size:clamp(13px,2vmin,17px);font-weight:700;letter-spacing:.12em;text-transform:uppercase}.mode-plaque .plaque-desc{display:block;margin-top:4px;font-size:clamp(10px,1.4vmin,12px);opacity:.75}.phase-tag{display:inline-block;margin-top:6px;padding:2px 8px;background:#0000004d;border:1px solid currentColor;border-radius:3px;font-size:clamp(9px,1.2vmin,11px);letter-spacing:.1em}.map-row{display:flex;gap:clamp(8px,1.5vmin,14px);justify-content:center;margin-bottom:clamp(16px,2.5vmin,24px);flex-wrap:wrap}.map-folio{flex:1 1 0;min-width:140px;max-width:200px;padding:16px 10px;background:linear-gradient(135deg,#e6d3a8,#d4b483);border:2px solid #8a7355;border-radius:3px;color:#3a2e1f;cursor:pointer;font-family:Courier New,monospace;transition:all .2s ease;box-shadow:0 3px 8px #00000040;position:relative}.map-folio:before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:repeating-linear-gradient(to bottom,#6b5a3e 0px,#6b5a3e 4px,transparent 4px,transparent 12px);border-radius:3px 0 0 3px}.map-folio.active{border-color:#c9a227;box-shadow:0 0 14px #c9a22766,0 3px 8px #00000040}.map-folio.locked{opacity:.5;cursor:not-allowed}.map-folio .folio-title{display:block;font-size:clamp(12px,1.8vmin,15px);font-weight:700;letter-spacing:.1em;text-transform:uppercase}.map-folio .folio-desc{display:block;margin-top:6px;font-size:clamp(10px,1.4vmin,12px);color:#6b5a3e}.setup-controls{display:flex;gap:clamp(16px,3vmin,32px);justify-content:center;align-items:flex-end;margin-bottom:clamp(20px,3vmin,28px);flex-wrap:wrap}.control-label{display:block;margin-bottom:8px;font-family:Courier New,monospace;font-size:clamp(11px,1.6vmin,14px);letter-spacing:.25em;text-transform:uppercase;color:#5e4a30}.dogtags{display:flex;gap:10px}.dogtag{width:clamp(48px,8vmin,64px);height:clamp(64px,10vmin,84px);background:linear-gradient(135deg,#9a9a9a,#6a6a6a,#8a8a8a);border:2px solid #4a4a4a;border-radius:12px 12px 16px 16px;color:#2a2a2a;font-family:Courier New,monospace;font-size:clamp(20px,3.5vmin,32px);font-weight:700;cursor:pointer;transition:all .2s ease;box-shadow:0 3px 6px #0000004d,inset 0 1px #fff6;position:relative}.dogtag:before{content:"";position:absolute;top:6px;left:50%;transform:translate(-50%);width:10px;height:10px;border-radius:50%;background:#3a2e1f;box-shadow:inset 0 1px 2px #0009}.dogtag.active{background:linear-gradient(135deg,#e8c547,#c9a227,#a88420);border-color:#6b5a1a;color:#2a2018;box-shadow:0 0 14px #c9a22780,0 3px 6px #0000004d;transform:translateY(-2px)}.op-code input{width:clamp(120px,20vmin,180px);padding:10px 14px;background:#f5ecd8;border:2px solid #8a7355;border-radius:3px;color:#2a2018;font-family:Courier New,monospace;font-size:clamp(16px,2.5vmin,22px);font-weight:700;letter-spacing:.2em;text-align:center;box-shadow:inset 0 2px 4px #00000026}.op-code input:focus{outline:none;border-color:#c9a227;box-shadow:0 0 10px #c9a2274d,inset 0 2px 4px #00000026}.wax-seal-btn{position:relative;width:clamp(140px,24vmin,200px);height:clamp(140px,24vmin,200px);border-radius:50%;border:none;cursor:pointer;margin:0 auto 16px;display:block;background:radial-gradient(circle at 35% 30%,#c04040,#8b1a1a 55%,#5e0f0f);box-shadow:0 8px 24px #00000080,0 0 0 4px #8b1a1a33,inset 0 2px 8px #ffffff40,inset 0 -4px 12px #0006;transition:all .25s ease}.wax-seal-btn:before{content:"";position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px;border-radius:50%;background:radial-gradient(circle at 40% 35%,rgba(176,48,48,.6) 0%,rgba(139,26,26,.3) 60%,transparent 70%);z-index:-1}.wax-seal-btn:hover{transform:scale(1.05);box-shadow:0 10px 32px #0009,0 0 24px #c9a22766,inset 0 2px 8px #ffffff4d,inset 0 -4px 12px #0006}.wax-seal-btn:active{transform:scale(.97)}.seal-text{font-family:Courier New,monospace;font-size:clamp(14px,2.4vmin,20px);font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:#f5d0d0;text-shadow:0 2px 4px rgba(0,0,0,.5),0 -1px 1px rgba(255,255,255,.2);line-height:1.4}#setup .hint{margin:0;padding:12px 16px;background:#3a2e1f14;border:1px solid rgba(138,115,85,.4);border-radius:4px;color:#5e4a30;font-size:clamp(12px,1.8vmin,14px);font-family:Courier New,monospace}#setup .hint strong{color:#2a2018}.setup-alt-actions{margin:0 0 16px;text-align:center}.load-plaque{display:inline-block;padding:10px 24px;background:linear-gradient(180deg,#6b5a3e,#4a3d28);border:2px solid #8a7355;border-radius:6px;color:#e8d5b5;font-family:Courier New,monospace;font-size:clamp(12px,1.8vmin,15px);letter-spacing:.15em;text-transform:uppercase;cursor:pointer;transition:all .2s ease;box-shadow:0 3px 8px #0000004d,inset 0 1px #ffffff26}.load-plaque:hover{border-color:#c9a227;box-shadow:0 0 12px #c9a2274d,0 3px 8px #0000004d}[data-tip]{position:relative}[data-tip]:after{content:attr(data-tip);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%) translateY(4px);width:max-content;max-width:220px;padding:8px 12px;background:#f5ecd8;border:1px solid #8a7355;border-radius:3px;color:#3a2e1f;font-family:Courier New,monospace;font-size:12px;font-weight:400;letter-spacing:0;text-transform:none;line-height:1.4;text-align:center;white-space:normal;box-shadow:0 4px 12px #0006;opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease;z-index:100}[data-tip]:hover:after,[data-tip]:focus-visible:after{opacity:1;transform:translate(-50%) translateY(0)}.control-label[data-tip]{cursor:help;border-bottom:1px dotted #8a7355}#setup[hidden]{display:none}#game{display:flex;flex-direction:column;height:100vh;height:100dvh}#game[hidden]{display:none}#topbar{flex:0 0 auto;display:flex;align-items:center;gap:14px;padding:8px 16px;background:#191d26eb;border-bottom:1px solid var(--border);flex-wrap:wrap;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}#banner{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:.95em}#topbar .spacer{flex:1 1 auto}.topbar-btn{background:transparent;border:1px solid var(--border);color:var(--muted);padding:5px 12px;border-radius:6px;font-size:.85em;cursor:pointer;transition:all .15s ease}.topbar-btn:hover{border-color:var(--accent);color:var(--text);background:#ffffff0d}.bstat{background:var(--panel2);border:1px solid var(--border);border-radius:20px;padding:2px 12px;white-space:nowrap}.bstat.turn{border-color:var(--accent);color:#fff;font-weight:600;background:var(--accent-soft)}.bstat.econ{color:var(--warn);font-weight:600}.bsep{color:var(--faint)}#steps{display:flex;gap:4px;flex-wrap:wrap;margin-left:auto}#steps .step{padding:3px 12px;border-radius:20px;background:#0000004d;border:1px solid transparent;font-size:.82em;color:var(--faint);white-space:nowrap}#steps .step.done{color:var(--muted);border-color:var(--border)}#steps .step.done:before{content:"✓ ";color:var(--ok)}#steps .step.cur{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:700}#app{flex:1 1 auto;min-height:0;display:flex;gap:12px;padding:12px 16px}#mapcol{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;min-height:0;position:relative}#map{flex:1 1 auto;min-height:0;width:100%;min-height:62vh;background:radial-gradient(900px 500px at 45% 40%,#232b3d,#1b212e 55%,#161b26);border:1px solid var(--border);border-radius:var(--radius);box-shadow:inset 0 0 60px #00000059}#map polygon.terr{cursor:pointer;stroke:#0d0f14;stroke-width:2;transition:filter .12s}#map polygon.terr:hover{filter:brightness(1.18)}#map polygon.terr.selfrom{stroke:#fff;stroke-width:3.5;filter:drop-shadow(0 0 6px rgba(255,255,255,.55))}#map polygon.terr.dest{stroke:#ffd23e;stroke-width:3.5;stroke-dasharray:8 5}#map line{stroke-width:4;filter:drop-shadow(0 0 4px rgba(0,0,0,.8))}#map text{pointer-events:none;fill:#101319;font-family:system-ui,sans-serif;paint-order:stroke;stroke:#ffffff47;stroke-width:2.5px;stroke-linejoin:round}#map polygon.terr.battle{stroke:#ff5252;stroke-width:3;animation:battlepulse 1.1s ease-in-out infinite}@keyframes battlepulse{50%{stroke-width:5.5}}#map.board-mode .board-art{pointer-events:none}#map.board-mode polygon.terr{fill-opacity:.75;stroke-width:2.5}#map.board-mode polygon.terr.sea{fill-opacity:.38}#map.board-mode polygon.terr:hover{fill-opacity:.85;stroke:#fff;stroke-width:4}#map.board-mode polygon.terr.sea:hover{fill-opacity:.5}#map.board-mode polygon.terr.selfrom{fill-opacity:.85;stroke:#fff;stroke-width:5;filter:drop-shadow(0 0 10px rgba(255,255,255,.7))}#map.board-mode polygon.terr.dest{fill-opacity:.85;stroke:#ffd23e;stroke-width:5;stroke-dasharray:16 9}#map.board-mode polygon.terr.battle{stroke:#ff5252;stroke-width:6;animation:battlepulse-board 1.1s ease-in-out infinite}@keyframes battlepulse-board{50%{stroke-width:10}}#map.board-mode text.board-aux{fill:#eef4fa;stroke:#0a1420e6;stroke-width:5px}#map.board-mode text.board-tname{font-family:var(--font-display);font-weight:600;letter-spacing:.02em;fill:#182430;stroke:#faf6e7a6;stroke-width:6px;paint-order:stroke}#map.board-mode text.board-ipc{font-family:var(--font-text);font-weight:600;letter-spacing:.08em;fill:#182430;opacity:.78;stroke:#faf6e78c;stroke-width:4px;paint-order:stroke}#map.board-mode text.board-seanum{font-family:var(--font-text);font-weight:700;fill:#e9f2f9;stroke:#091626d9;stroke-width:6px;paint-order:stroke}#map.board-mode .ripple{stroke-width:6}@media(prefers-reduced-motion:reduce){#map.board-mode polygon.terr.battle{animation:none}}#map .ocean{pointer-events:none}#map polygon.sheen{pointer-events:none}#map text.seafont{fill:#d7e6f2;stroke:#12263ae6}#map text.dim{opacity:.75}#map text.tname{font-family:var(--font-display);font-size:12px;letter-spacing:.06em;fill:var(--ink);stroke:#c9b98ad9;stroke-width:3px;paint-order:stroke}#map text.towner{font-family:var(--font-text);font-weight:600;font-size:10px;letter-spacing:.08em;text-transform:uppercase;fill:var(--ink);opacity:.85;stroke:#c9b98ab3;stroke-width:2.5px;paint-order:stroke}#map .ipcpill{fill:var(--ink);stroke:var(--brass-deep);stroke-width:1;opacity:.96}#map .ipctext{font-family:var(--font-text);font-weight:600;letter-spacing:.05em;fill:var(--brass);stroke:none}#map .capring{stroke:var(--brass-deep);stroke-width:1.2}#map .capstar{fill:var(--brass);stroke:none}#map .facglyph{fill:#4a3f2a;stroke:var(--chit);stroke-width:1;stroke-linejoin:round}#map .facglyph.fresh{fill:#6b5f45;stroke-dasharray:2 1.5}#map .uframe{fill:var(--chit);stroke:var(--ink);stroke-width:1.2}#map .uink{stroke:var(--ink);stroke-width:1.3;fill:none;stroke-linecap:round}#map .uinkfill{fill:var(--ink)}#map .ucount{font-family:var(--font-text);font-weight:600;fill:var(--ink);stroke:#d8c99acc;stroke-width:2px;paint-order:stroke}#map .ripple{fill:none;stroke:#fff;stroke-width:2;opacity:.9;animation:ripplefade .6s ease-out forwards}@keyframes ripplefade{to{opacity:0;stroke-width:7}}@media(prefers-reduced-motion:reduce){#map polygon.terr.battle,#map .ripple{animation:none}}#mapctrl{position:absolute;top:10px;right:10px;display:flex;gap:4px;z-index:2}#mapctrl button{background:#11141ad9}#maptip{position:absolute;z-index:3;pointer-events:none;background:#11141a;border:1px solid #666;border-radius:4px;padding:3px 8px;font-size:.82em;white-space:nowrap}#maptip[hidden]{display:none}#selinfo{position:absolute;z-index:20;min-width:240px;max-width:320px;max-height:70%;overflow-y:auto;background:var(--chit);color:var(--ink);border:1px solid var(--brass-deep);border-radius:var(--radius);box-shadow:0 12px 32px #0000008c;padding:10px 14px;font-size:.92em}#selinfo:empty{display:none}#selinfo .insp-close{position:absolute;top:6px;right:8px;border:none;background:transparent;color:var(--muted);font-size:1.1em;cursor:pointer;padding:2px 6px}#selinfo .insp-close:hover{color:var(--text)}.insp-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:1.05em}.insp-head strong{font-size:1.08em}.insp-units{margin-top:4px;color:var(--muted)}.insp-hint{margin:8px 0 0;padding:8px 10px;background:var(--accent-soft);border-left:3px solid var(--accent);border-radius:0 6px 6px 0;color:var(--text);font-size:.92em}#selinfo p{margin:6px 0}#selinfo button{margin-top:6px}#side{flex:0 0 300px;display:flex;flex-direction:column;gap:10px;min-height:0}#roster{flex:0 1 auto;overflow-y:auto;max-height:26%;display:flex;flex-direction:column;gap:6px}#roster .p{display:flex;align-items:center;gap:10px;padding:7px 12px;border-radius:8px;background:var(--panel);border:1px solid var(--border);font-size:.88em}#roster .pdot{flex:0 0 auto;width:12px;height:12px;border-radius:50%;box-shadow:0 0 6px #00000080}#roster .pinfo{min-width:0}#roster .pinfo strong{display:block;font-size:1.02em}#roster .pinfo .dim{font-size:.92em}#roster .p .out{margin-left:auto;font-size:.75em;font-weight:700;letter-spacing:.08em;color:var(--danger);border:1px solid var(--danger);border-radius:4px;padding:1px 6px}#roster .p.cur{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),0 4px 14px #5b8cff40}#phasepanel{flex:0 0 auto;background:var(--panel);border:1px solid var(--brass-deep);border-radius:var(--radius);padding:10px 14px;max-height:42%;overflow-y:auto}#phasepanel h3{margin:0 0 8px;font-family:var(--font-display);font-size:1em;letter-spacing:.06em;text-transform:uppercase;display:flex;align-items:center;gap:8px}#phasepanel h3 .pdot{width:10px;height:10px;border-radius:50%;display:inline-block}#phasepanel p{margin:6px 0;font-size:.92em;color:var(--muted)}#phasepanel button{margin:4px 6px 4px 0}#tabs{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:8px 12px 10px}#tabbtns{flex:0 0 auto;display:flex;gap:4px;margin-bottom:6px;border-bottom:1px solid var(--border);padding-bottom:6px}.tab{background:transparent;border:none;color:var(--faint);border-radius:6px 6px 0 0}.tab:hover{background:#ffffff0a;color:var(--text)}.tab.active{background:var(--accent-soft);color:#fff;font-weight:600}#log{flex:1 1 auto;min-height:0;overflow-y:auto;font-size:.82em}#log div{padding:3px 2px;border-bottom:1px solid rgba(255,255,255,.05);color:var(--muted)}#log div:last-child{color:var(--text)}#chatwrap{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}#chatwrap[hidden]{display:none}#chat{flex:1 1 auto;min-height:0;overflow-y:auto;font-size:.88em;margin-bottom:6px}#chat div{padding:4px 2px;border-bottom:1px solid rgba(255,255,255,.05)}#chatrow{flex:0 0 auto;display:flex;gap:6px}#chatText{flex:1;min-width:0}#actionbar{flex:0 0 auto;display:flex;align-items:center;gap:10px;padding:8px 16px;background:#191d26eb;border-top:1px solid var(--border)}#fb-phase{font-weight:600;white-space:nowrap}#fb-phase .pdot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px}#error{color:var(--danger);font-size:.9em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#actionbar .spacer{flex:1 1 auto}.btn-end-phase{padding:12px 32px;font-size:1.1em;font-weight:700;letter-spacing:.06em;border-radius:10px;box-shadow:0 4px 16px #c9a22759,0 2px 6px #0006;transition:all .2s ease}.btn-end-phase:hover{transform:translateY(-1px);box-shadow:0 6px 20px #c9a22780,0 2px 6px #0006}.btn-end-phase:active{transform:translateY(1px)}#loadLabel{cursor:pointer;background:var(--panel2);border:1px solid var(--border);padding:6px 14px;border-radius:7px;font-size:.92em}#loadLabel:hover{background:#303a52}#modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#080a0fa8;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:10}#modal[hidden]{display:none}#modal-box{background:linear-gradient(180deg,var(--panel2),var(--panel));border:1px solid var(--brass-deep);border-radius:var(--radius);box-shadow:var(--shadow);width:min(620px,94vw);max-height:88vh;display:flex;flex-direction:column;animation:pop .14s ease-out}@keyframes pop{0%{transform:scale(.97) translateY(6px);opacity:0}to{transform:none;opacity:1}}#modal-head{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;border-bottom:1px solid var(--brass-deep)}#modal-title{font-family:var(--font-display);font-size:1.1em;letter-spacing:.06em;text-transform:uppercase}#modal-close{background:transparent;border:none;font-size:1.1em;color:var(--muted);padding:4px 10px}#modal-close:hover{color:var(--text);background:#ffffff0f}#modal-body{padding:14px 18px 18px;overflow-y:auto}#modal-body p{margin:8px 0}#modal-body button{margin:4px 6px 4px 0}#modal-box.wide{width:min(760px,96vw)}.help-root h3{font-family:var(--font-display);font-size:1em;letter-spacing:.06em;text-transform:uppercase;color:var(--brass);margin:18px 0 6px}.help-root h3:first-child{margin-top:0}.help-root h4{font-size:.95em;margin:12px 0 2px;color:var(--text)}.help-root ol.help-steps,.help-root ul.help-rules{margin:6px 0;padding-left:20px}.help-root li{margin:5px 0;line-height:1.45}.help-root table.help-units{border-collapse:collapse;width:100%}.help-root table.help-units th,.help-root table.help-units td{padding:6px 8px;font-size:.92em;text-align:left;border-bottom:1px solid rgba(255,255,255,.06)}.help-root table.help-units th{color:var(--muted);font-weight:600;white-space:nowrap}.help-root table.help-units td:nth-child(2),.help-root table.help-units td:nth-child(3),.help-root table.help-units td:nth-child(4),.help-root table.help-units td:nth-child(5){text-align:center;white-space:nowrap}.help-root table.help-units td.unote{color:var(--muted)}#modal-body table.shop-table{border-collapse:collapse;width:100%}#modal-body table.shop-table td{padding:7px 8px;font-size:.95em;text-align:left;border-bottom:1px solid rgba(255,255,255,.06)}#modal-body table.shop-table tr:last-child td{border-bottom:none}#modal-body table.shop-table td:last-child{text-align:right;white-space:nowrap}.uname{font-weight:600}.ucost{color:var(--warn);font-weight:600;margin:0 6px}.cartbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:12px 0 4px;padding:10px 14px;background:#00000047;border:1px solid var(--brass-deep);border-radius:var(--radius);font-weight:600}.cartbar .remaining{color:var(--ok);font-weight:600}.stepper{display:inline-flex;align-items:center;gap:0;margin:3px 8px 3px 0;background:#12151d;border:1px solid var(--border);border-radius:8px;overflow:hidden}.stepper button{border:none;border-radius:0;background:transparent;padding:6px 12px;font-size:1.05em;font-weight:700;color:var(--accent)}.stepper button:hover{background:var(--accent-soft)}.stepper input{width:46px;text-align:center;border:none;border-left:1px solid var(--border);border-right:1px solid var(--border);border-radius:0;background:transparent;font-weight:700;font-size:1em;padding:6px 2px;-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.stepper input::-webkit-outer-spin-button,.stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.stepper .ulab{font-size:.78em;color:var(--muted);margin:0 8px 0 6px;text-transform:uppercase;letter-spacing:.04em}.stepgrid{margin:8px 0;display:flex;flex-wrap:wrap}.tinynum{width:52px}.moves{font-size:.88em;margin:8px 0}.moves>strong{display:block;margin-bottom:4px;font-size:.82em;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.moves div:not(.moves){padding:3px 10px;margin:2px 6px 2px 0;background:#00000040;border-radius:6px;display:inline-block}.battle-list{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}.battle-list button{text-align:left}.battle-list button:disabled{opacity:1;border-color:var(--accent);background:var(--accent-soft);color:#fff}.forces{display:flex;gap:10px;align-items:stretch;margin:10px 0}.force{flex:1 1 0;background:#00000052;border:1px solid var(--border);border-radius:10px;padding:10px 12px}.force.atk{border-top:3px solid var(--danger);background:linear-gradient(180deg,var(--danger-soft),rgba(0,0,0,.32))}.force.def{border-top:3px solid var(--ok);background:linear-gradient(180deg,var(--ok-soft),rgba(0,0,0,.32))}.force>strong{display:block;margin-bottom:6px;font-size:.95em}.forces-table{border-collapse:collapse;width:100%;font-size:.88em}.forces-table td{padding:2px 4px;color:var(--muted)}.forces-table td:last-child{text-align:right;font-weight:700;color:var(--text)}.vs{align-self:center;font-size:.85em;color:var(--muted);white-space:nowrap}.hits{color:var(--danger);font-weight:700}.dice{margin:10px 0;padding:8px 12px;background:#00000047;border-radius:8px}.dicerow{margin:4px 0;font-size:.92em;display:flex;align-items:center;flex-wrap:wrap;gap:2px}.die{font-size:1.9em;margin-right:3px;line-height:1}.sbrhit{font-size:1.05em;font-weight:700;color:var(--warn)}.casualties{margin:10px 0;padding:10px 12px;background:#00000052;border:1px solid var(--border);border-left:3px solid var(--warn);border-radius:8px}.casualties>strong{display:block;margin-bottom:6px}#modal-body button[data-dest]{text-align:left}.chip{padding:2px 10px;border-radius:20px;color:#0d0f14;font-size:.85em;font-weight:600}.dim{color:var(--muted);font-size:.85em}#log::-webkit-scrollbar,#chat::-webkit-scrollbar,#selinfo::-webkit-scrollbar,#roster::-webkit-scrollbar,#phasepanel::-webkit-scrollbar,#modal-body::-webkit-scrollbar{width:8px}#log::-webkit-scrollbar-thumb,#chat::-webkit-scrollbar-thumb,#selinfo::-webkit-scrollbar-thumb,#roster::-webkit-scrollbar-thumb,#phasepanel::-webkit-scrollbar-thumb,#modal-body::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}@media(prefers-reduced-motion:reduce){#modal-box{animation:none}button{transition:none}#map polygon.terr{transition:none}}@media(min-width:1700px){#side{flex-basis:420px}#phasepanel,#selinfo{font-size:1em}}@media(min-width:2400px){#side{flex-basis:480px}body{font-size:18px}}@media(max-width:1100px){#side{flex-basis:290px}#banner{font-size:.85em}#steps{margin-left:0}}#intro-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background-color:#dcc394;background-image:radial-gradient(ellipse at 30% 20%,rgba(255,250,235,.4) 0%,transparent 50%),radial-gradient(ellipse at 70% 80%,rgba(120,90,50,.25) 0%,transparent 50%),radial-gradient(ellipse at 50% 50%,rgba(160,120,70,.15) 0%,transparent 70%),linear-gradient(135deg,#e6d3a8,#dcc394,#d4b483 60%,#c9a876);display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transition:opacity .6s ease}#intro-overlay.intro-parchment{opacity:1}#intro-overlay.intro-done{opacity:0;pointer-events:none}#intro-map{width:min(1400px,96vw);height:auto;max-height:92vh;filter:sepia(.15)}#intro-grain{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.35;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0.3 0 0 0 0 0.24 0 0 0 0 0.15 0 0 0 0.4 0'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)'/%3E%3C/svg%3E")}#intro-vignette{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 40%,rgba(60,35,15,.45) 100%)}#intro-text{position:absolute;bottom:10%;left:0;right:0;text-align:center;font-family:Courier New,Special Elite,monospace;font-size:clamp(16px,2.5vmin + 8px,36px);letter-spacing:.25em;color:#3a2e1f;text-transform:uppercase;text-shadow:0 1px 2px rgba(255,250,235,.5)}#intro-text.intro-complete-text{color:#5e0f0f;animation:intro-text-settle 1s ease-out}@keyframes intro-text-settle{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}#intro-skip{position:absolute;bottom:3%;left:0;right:0;text-align:center;font-family:Courier New,monospace;font-size:clamp(10px,1.2vmin + 6px,14px);letter-spacing:.2em;color:#8a7355;text-transform:uppercase}.intro-terr{opacity:0;transition:opacity .6s ease}.intro-terr.intro-revealed{opacity:1}.intro-seal{transform-box:fill-box;transform-origin:center}.intro-seal.intro-seal-stamp{animation:intro-seal-stamp .45s cubic-bezier(.2,1.6,.4,1)}@keyframes intro-seal-stamp{0%{transform:scale(1.6) rotate(-12deg);opacity:0}60%{transform:scale(.94) rotate(2deg);opacity:1}to{transform:scale(1) rotate(0);opacity:1}}.intro-wash{transform-box:fill-box;transform-origin:center}.intro-wash.intro-wash-expand{animation:intro-wash-expand 2.8s ease-out forwards}@keyframes intro-wash-expand{0%{transform:scale(1);opacity:.9}to{transform:scale(45);opacity:0}}.phase-tag.new-tag{background:#c9a22740;border-color:#c9a227;color:#e8c547}#lobby{margin:clamp(12px,2vmin,20px) 0;padding:clamp(12px,2vmin,20px);background:#00000040;border:1px solid var(--brass-deep);border-radius:var(--radius)}.lobby-head .stencil-head{font-size:clamp(15px,2.2vmin,20px);margin:0 0 8px}.trust-note{font-family:var(--font-text);color:#4a4132;font-size:clamp(12px,1.7vmin,15px);line-height:1.45;margin:0 0 12px;max-width:70ch}.trust-note strong{color:#2a2419}#seatcards{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px}.seat-card{background:var(--panel-soft);border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px}.seat-head{display:flex;gap:8px;align-items:center;margin-bottom:8px}.seat-name{flex:1 1 auto;min-width:0;background:#0000004d;border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-family:var(--font-text);font-size:1em;font-weight:600;padding:6px 8px}.kind-toggle{display:flex;gap:4px}.kind-toggle .btn{padding:6px 10px;font-size:.75em}.kind-toggle .btn.active-kind{background:linear-gradient(180deg,#d9b13b,var(--brass));color:var(--ink);border-color:#6e5a1e}.seat-field{display:block;margin:8px 0}.seat-field>span{display:block;font-family:var(--font-text);text-transform:uppercase;letter-spacing:.06em;font-size:.75em;color:var(--muted);margin-bottom:4px}.seat-field select,.seat-field input[type=password]{width:100%;box-sizing:border-box;background:#00000059;border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-family:var(--font-text);font-size:.95em;padding:7px 8px}.remember-row{display:flex;align-items:center;gap:6px;margin-top:6px;font-family:var(--font-text);font-size:.85em;color:var(--muted);cursor:pointer}.key-status{margin-top:6px;font-family:var(--font-text);font-size:.85em;color:var(--signal)}.key-status.ok{color:#7fae6e}.key-clear{margin-top:6px;padding:4px 10px;font-size:.72em}.lobby-error{margin-top:12px;padding:10px 14px;background:#a63a3a26;border:1px solid var(--signal);border-radius:var(--radius);color:var(--text);font-family:var(--font-text)}.lobby-error ul{margin:0;padding-left:20px}#aiwrap{overflow-y:auto;max-height:100%}#ai{display:flex;flex-direction:column;gap:10px;padding:4px 2px 12px}.ai-head{display:flex;align-items:center;gap:10px;padding:8px 12px}.ai-head .stencil-head{font-size:.95em}.ai-head-status{flex:1 1 auto;font-family:var(--font-text);color:var(--muted);font-size:.9em}.ai-head .btn{padding:5px 12px;font-size:.75em}.ai-seats{display:flex;flex-direction:column;gap:8px}.ai-seat{padding:8px 12px}.ai-seat-head{display:flex;align-items:center;gap:8px}.ai-seat-head strong{font-family:var(--font-text);letter-spacing:.04em}.ai-seat-head .chip{margin-left:auto;font-size:.75em;color:var(--muted)}.ai-seat-status{font-family:var(--font-text);color:var(--text);margin-top:4px}.ai-seat-usage{font-family:var(--font-text);color:var(--muted);font-size:.85em;margin-top:2px}.ai-rationale{margin-top:6px}.ai-rationale summary{cursor:pointer;font-family:var(--font-text);text-transform:uppercase;letter-spacing:.06em;font-size:.78em;color:var(--brass)}.ai-text{margin-top:6px;padding:8px;background:#0000004d;border-left:2px solid var(--brass-deep);font-family:var(--font-text);font-size:.92em;line-height:1.45;color:var(--text);white-space:pre-wrap;max-height:220px;overflow-y:auto}.ai-tools{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.ai-tools .chip{font-size:.75em;color:var(--muted)}.ai-activity{padding:8px 12px}.ai-activity h4{margin:0 0 6px;font-size:.85em}.ai-feed{display:flex;flex-direction:column;gap:3px;max-height:220px;overflow-y:auto;font-family:var(--font-text);font-size:.9em;color:var(--text)}.ai-feed .ok{color:#7fae6e}.ai-feed .bad{color:var(--signal)}.ai-fatal{padding:12px 16px;margin-bottom:4px}.ai-resume-notice{padding:10px 14px;margin-bottom:8px;border:1px solid #c9a227}.ai-fatal p{font-family:var(--font-text);color:var(--ink)}#seaterr{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;align-items:center;justify-content:center;background:#0a0804b8}#seaterr[hidden]{display:none}.seaterr-card{max-width:520px;width:calc(100vw - 48px);padding:20px 24px}.seaterr-card .stencil-head{margin:0 0 8px;font-size:1.05em}.se-headline{font-family:var(--font-text);font-weight:600;font-size:1.05em;margin:0 0 6px}.se-guidance{font-family:var(--font-text);color:var(--ink);opacity:.8;margin:0 0 12px;line-height:1.45}.se-keyrow{display:flex;gap:8px;margin-bottom:12px}.se-keyrow[hidden]{display:none}.se-keyrow input{flex:1 1 auto;background:#fff9;border:1px solid var(--brass-deep);border-radius:var(--radius);padding:8px;font-family:var(--font-text)}.se-actions{display:flex;flex-wrap:wrap;gap:8px}.se-actions .field-order .btn,.seaterr-card .btn{font-size:.8em}body.ai-thinking #phasepanel,body.ai-thinking #actionbar{pointer-events:none;opacity:.65}body.ai-thinking #actionbar:after{content:"AI deliberating…";font-family:var(--font-text);text-transform:uppercase;letter-spacing:.08em;font-size:.75em;color:var(--brass);margin-left:12px;pointer-events:none}.ai-diplomacy{padding:8px 12px}.ai-dip-head{display:flex;align-items:center;gap:8px}.ai-dip-head h4{margin:0;font-size:.85em}.ai-dip-status{font-family:var(--font-text);color:var(--muted);font-size:.85em;flex:1}.dip-filters{display:flex;gap:6px;margin:8px 0}.dip-filters .btn.active{outline:2px solid var(--brass)}.dip-budgets{display:flex;flex-direction:column;gap:3px;margin-bottom:8px}.dip-budget{display:flex;align-items:center;gap:8px;font-family:var(--font-text);font-size:.85em;color:var(--text)}.dip-bar{flex:1;height:6px;background:#2a2f24;border-radius:3px;overflow:hidden;max-width:220px}.dip-bar-fill{display:block;height:100%;background:var(--brass)}.dip-feed{display:flex;flex-direction:column;gap:4px;max-height:240px;overflow-y:auto;font-family:var(--font-text);font-size:.9em;color:var(--text);margin-bottom:8px}.dip-msg .dip-to{color:var(--muted);font-size:.85em}.dip-msg .dip-round{color:var(--muted);font-size:.8em}.chip-priv{background:var(--signal);color:var(--text);font-size:.7em;margin-right:6px}.dip-compose{display:flex;gap:6px;margin-top:8px}.dip-compose select{background:#1c1f18;color:var(--text);border:1px solid var(--brass-deep);border-radius:4px;padding:4px}.dip-compose input[type=text]{flex:1;background:#1c1f18;color:var(--text);border:1px solid var(--brass-deep);border-radius:4px;padding:4px 8px}
