:root{--bg: #14110d;--bg2: #1d1913;--panel: #221d16;--ink: #e9e0cf;--ink-dim: #b3a890;--muted: #8a7f6a;--gold: #d8b15a;--line: #3a3226;--caesar: #4f86c6;--pompey: #c2553f;--neutral: #6d6452;--road: #8a6f47;--road-minor: #5d4d34;--strait: #c9a14a;--sealane: #4a6d86;--good: #6fae74;font-synthesis:none}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:radial-gradient(1200px 700px at 50% -10%,#241f17,var(--bg));color:var(--ink);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}button{font-family:inherit;color:inherit;cursor:pointer}.muted{color:var(--muted)}code{background:#000;padding:1px 6px;border-radius:4px;color:var(--gold)}.setup{max-width:980px;margin:0 auto;padding:5vh 20px 40px}.setup-head h1{font-size:44px;letter-spacing:6px;margin:0;color:var(--gold);font-weight:800}.subtitle{color:var(--ink-dim);margin:6px 0 24px}.setup-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.setup section{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px 16px}.setup h2{font-size:13px;text-transform:uppercase;letter-spacing:1.5px;color:var(--gold);margin:0 0 10px}.seg{display:flex;gap:8px}.seg button,.stack-choices button{flex:1;background:var(--bg2);border:1px solid var(--line);color:var(--ink);border-radius:8px;padding:10px;text-align:left;display:flex;flex-direction:column;gap:3px}.stack-choices{display:flex;flex-direction:column;gap:8px}.seg button.on,.stack-choices button.on{border-color:var(--gold);background:#2b2418;box-shadow:0 0 0 1px var(--gold) inset}.hint{color:var(--muted);font-size:12px}.check{display:flex;align-items:center;gap:8px;margin-top:10px;color:var(--ink-dim);font-size:14px}.seed{display:flex;align-items:center;gap:8px;margin-top:12px;color:var(--ink-dim);font-size:14px}.seed input{width:130px;background:var(--bg);border:1px solid var(--line);color:var(--ink);border-radius:6px;padding:6px}.reroll{background:var(--bg2);border:1px solid var(--line);border-radius:6px;padding:6px 10px}.begin{display:block;margin:22px auto 0;background:var(--gold);color:#1a1209;border:none;font-weight:800;letter-spacing:1px;padding:14px 28px;border-radius:10px;font-size:16px}.begin:hover{filter:brightness(1.08)}.game{height:100%;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:16px;padding:8px 16px;border-bottom:1px solid var(--line);background:var(--bg2)}.brand{color:var(--gold);font-weight:800;letter-spacing:3px}.you-are{color:var(--ink-dim);font-size:13px}.resign{margin-left:auto;background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:6px 12px;color:var(--ink-dim)}.layout{flex:1;display:flex;min-height:0}.board-wrap{flex:1;display:flex;flex-direction:column;min-width:0;padding:10px;gap:8px}.side{width:360px;border-left:1px solid var(--line);background:var(--bg2);display:flex;flex-direction:column;min-height:0}.board{width:100%;flex:1;min-height:0;border:1px solid #0b0907;border-radius:10px;background:#0b0907;box-shadow:inset 0 0 70px #000,0 6px 24px #0008}.sea-label{fill:#2f5267;font-size:9px;font-style:italic;letter-spacing:2px;opacity:.85;text-transform:uppercase;pointer-events:none;paint-order:stroke;stroke:#e6d8b6;stroke-width:2px}.city-halo{fill:#2a1f0e;opacity:.16;transition:fill .12s,opacity .12s}.city-marker{stroke:#271a0a;stroke-width:1}.city-name{fill:#3a2c16;font-size:8px;font-weight:600;pointer-events:none;paint-order:stroke;stroke:#efe4c6;stroke-width:2.4px}.vp-shield{fill:#cda738;stroke:#6e5212;stroke-width:.6}.vp{fill:#2a1d08;font-size:8px;font-weight:800;pointer-events:none}.node.is-movable .city-halo{fill:var(--gold);opacity:.9}.node.is-from .city-halo{fill:#fff;opacity:.95}.node.is-dest .city-halo{fill:#5fae6a;opacity:.95}.token{stroke:#1b1208;stroke-width:.6}.token.leader{stroke:#f1cf6b;stroke-width:1.5}.tok-rating{fill:#fff;font-size:8px;font-weight:800;pointer-events:none}.tok-pip{fill:#f1d886}.tok-back{fill:none;stroke:#f0e3c4;stroke-width:1;opacity:.45}.count-chip{fill:#1b1208;stroke:var(--gold);stroke-width:.8}.count-txt{fill:#f1d886;font-size:7px;font-weight:800;pointer-events:none}.compass-n{fill:#7a6238;font-size:9px;font-weight:700}.hand{border:1px solid var(--line);border-radius:10px;background:var(--panel);padding:8px 10px}.hand-label{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--gold);margin-bottom:6px}.cards{display:flex;gap:8px;flex-wrap:wrap}.card{width:58px;height:80px;border-radius:8px;border:1px solid var(--line);background:linear-gradient(#2a2418,#1d1812);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;position:relative}.card.god{background:linear-gradient(#3a2a44,#221830);border-color:#6a4f7a}.card.pickable:hover{border-color:var(--gold);transform:translateY(-3px);transition:.1s}.card:disabled{opacity:.8;cursor:default}.cmd-vals{font-size:22px;font-weight:800}.cmd-vals .mv{color:var(--gold)}.cmd-vals .lv{color:var(--ink-dim)}.cmd-vals .slash{color:var(--muted);margin:0 1px}.god-name{font-size:13px;font-weight:700;color:#d9b8ec;text-align:center}.card-foot{font-size:8px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}.hud{padding:12px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:10px}.hud-top{display:flex;align-items:center;justify-content:space-between}.clock{font-size:12px;color:var(--ink-dim)}.clock .year{color:var(--gold);font-weight:700}.vp{display:flex;align-items:center;gap:10px}.vp-side{display:flex;flex-direction:column;align-items:center;padding:4px 10px;border-radius:8px}.vp-side.you{background:#2b2418;box-shadow:0 0 0 1px var(--gold) inset}.vp-side .lab{font-size:10px;color:var(--muted);text-transform:uppercase}.vp-side .num{font-size:22px;font-weight:800}.vp-sep{color:var(--muted);font-size:11px}.threshold{font-size:10px;color:var(--muted)}.reveal{font-size:12px;color:var(--ink-dim)}.reveal b{color:var(--ink)}.talk{min-height:34px;font-style:italic;color:var(--gold);font-size:14px;line-height:1.3}.talk.thinking{color:var(--ink-dim)}.tracker{font-size:11px;color:var(--ink-dim);display:flex;flex-direction:column;gap:2px}.log{background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:8px;height:150px;overflow:auto;font-size:12px}.log-line{color:var(--ink-dim);padding:2px 0;border-bottom:1px solid #ffffff08}.log-empty{color:var(--muted)}.panel{padding:12px;flex:1;overflow:auto;display:flex;flex-direction:column;gap:10px}.prompt{font-size:13px;color:var(--ink);line-height:1.4;background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:10px}.prompt.muted{color:var(--muted)}.orders{display:flex;flex-direction:column;gap:6px;max-height:320px;overflow:auto}.order{text-align:left;background:var(--bg2);border:1px solid var(--line);color:var(--ink);border-radius:7px;padding:8px 10px;font-size:13px}.order:hover{border-color:var(--gold)}.order.deploy{border-left:3px solid var(--caesar)}.panel-actions{display:flex;gap:8px;margin-top:auto}.end{flex:1;background:var(--gold);color:#1a1209;border:none;border-radius:8px;padding:10px;font-weight:700}.undo{background:var(--bg2);border:1px solid var(--line);border-radius:8px;padding:10px 14px;color:var(--ink-dim)}.undo:disabled{opacity:.4;cursor:default}.postgame{max-width:640px;margin:6vh auto;padding:20px}.result{text-align:center;padding:24px;border-radius:12px;border:1px solid var(--line);background:var(--panel)}.result h1{font-size:40px;letter-spacing:4px;margin:0}.result.win h1{color:var(--good)}.result.loss h1{color:var(--pompey)}.result.draw h1,.winline{color:var(--ink-dim)}.finalvp{font-size:18px;font-weight:700;margin-top:8px;color:var(--gold)}.recap{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:14px}.recap h3{margin:0 0 8px;color:var(--gold);font-size:13px;text-transform:uppercase;letter-spacing:1px}.replay{margin-top:18px;display:flex;align-items:center;justify-content:space-between;gap:14px;color:var(--ink-dim);font-size:13px}@media (max-width: 820px){.layout{flex-direction:column}.side{width:auto;border-left:none;border-top:1px solid var(--line)}.setup-grid{grid-template-columns:1fr}}
