:root{--bg:#0b1420;--surface:#121d2b;--surface-2:#1a2738;--border:#2a3a50;--text:#e4e9f0;--muted:#8b9bb0;--accent:#d8b25a;--font:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);font:14px/1.4 var(--font);margin:0;overflow:hidden}button,select,input{font:inherit;color:inherit}button{background:var(--surface-2);border:1px solid var(--border);cursor:pointer;border-radius:6px;padding:4px 10px}button:hover{border-color:var(--muted)}button.active{background:var(--accent);border-color:var(--accent);color:#15120a}button.secondary{background:0 0}button.link{color:var(--accent);text-align:left;background:0 0;border:none;padding:0}.muted{color:var(--muted)}#app{grid-template:"hud hud""map panel"1fr/1fr 340px;height:100%;display:grid}#hud{background:var(--surface);border-bottom:1px solid var(--border);grid-area:hud;align-items:center;gap:16px;padding:8px 14px;display:flex}#hud .brand{letter-spacing:.04em;color:var(--accent);font-weight:700}#hud .date{font-variant-numeric:tabular-nums;min-width:110px;font-weight:600}#hud .speeds,#hud .modes{gap:4px;display:flex}#hud .speeds button{min-width:32px}#hud .tick{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}#hud .player{align-items:baseline;gap:10px;display:flex}#hud .modes{margin-left:auto}main{grid-area:map;min-height:0;position:relative}#map{width:100%;height:100%;display:block}#legend{position:absolute;bottom:12px;left:12px}.legend{background:color-mix(in srgb, var(--surface) 92%, transparent);border:1px solid var(--border);border-radius:8px;min-width:200px;padding:8px 10px}.legend-title{margin-bottom:6px;font-weight:600}.legend .bar{border-radius:3px;height:10px}.legend .labels{color:var(--muted);justify-content:space-between;font-size:12px;display:flex}.swatches{gap:4px;margin:0;padding:0;list-style:none;display:grid}.swatches li{align-items:center;gap:8px;display:flex}.swatch{background:var(--c);border-radius:3px;flex:none;width:14px;height:14px;display:inline-block}.swatch[data-fill=hatched]{background:repeating-linear-gradient(45deg, var(--c) 0 3px, transparent 3px 6px);border:1px solid var(--c)}.swatch[data-fill=tint]{background:color-mix(in srgb, var(--c) 45%, #777)}#feed{pointer-events:none;max-width:360px;position:absolute;bottom:12px;right:12px}.feed{gap:4px;margin:0;padding:0;list-style:none;display:grid}.feed li{background:color-mix(in srgb, var(--surface) 90%, transparent);border:1px solid var(--border);border-radius:6px;gap:8px;padding:4px 8px;font-size:13px;display:flex}#panel{background:var(--surface);border-left:1px solid var(--border);grid-area:panel;padding:12px 14px;position:relative;overflow-y:auto}#panel h2{margin:0 0 4px;font-size:18px}#panel h3{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:14px 0 6px;font-size:13px}#panel section+section{border-top:1px solid var(--border);margin-top:18px;padding-top:12px}#panel .close{padding:0 8px;position:absolute;top:8px;right:10px}.stats{grid-template-columns:1fr auto;gap:2px 12px;margin:8px 0;display:grid}.stats dt{color:var(--muted)}.stats dd{text-align:right;font-variant-numeric:tabular-nums;margin:0}.leaning{border-radius:3px;gap:2px;height:10px;display:flex;overflow:hidden}table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:13px}th,td{text-align:right;padding:2px 4px}th:first-child,td:first-child{text-align:left}th{color:var(--muted);font-weight:500}.ranking{padding-left:22px}.ranking button{justify-content:space-between;gap:8px;width:100%;display:flex}.controls label{gap:4px;margin:8px 0;display:grid}.controls input[type=range]{width:100%;accent-color:var(--accent)}.controls select{background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:4px}#overlay{z-index:10;background:#050a12b3;place-items:center;display:grid;position:fixed;inset:0}#overlay[hidden]{display:none}.start{background:var(--surface);border:1px solid var(--border);border-radius:12px;width:min(760px,100vw - 32px);max-height:calc(100vh - 64px);padding:20px 24px;overflow-y:auto}.start.small{width:min(420px,100vw - 32px)}.start h1{color:var(--accent);margin:0}.start .choices{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:6px;display:grid}.choice{text-align:left;align-items:center;gap:8px;display:flex}.choice .muted{margin-left:auto;font-size:12px}.start .row{justify-content:flex-end;gap:8px;display:flex}#status{background:var(--bg);z-index:20;place-items:center;font-size:18px;display:grid;position:fixed;inset:0}
