:root{color-scheme:dark;--ink:#e9e4d4;--gold:#eac788;--muted:#a7b5bc;--bg:#0c1a24}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 20% 0,#203c4c,var(--bg) 60%);color:var(--ink);font-family:system-ui,sans-serif;font-size:14px}main{max-width:1430px;margin:auto;padding:28px 36px}header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2.6px;color:var(--gold);margin:0 0 8px}h1{font:normal 48px Georgia,serif;letter-spacing:-1.5px;margin:0}.subtitle{color:var(--muted);letter-spacing:3px;margin:5px 0 0;text-transform:uppercase;font-size:11px}button,select{font:inherit;color:var(--ink);border:1px solid #56707b;border-radius:7px;background:#1b303c;padding:10px 13px;cursor:pointer}button:hover,select:hover{background:#304956;border-color:var(--gold)}button:focus-visible,select:focus-visible{outline:3px solid #eac788;outline-offset:3px}button:disabled{opacity:.4;cursor:default}button.active{background:#3c4c48;border-color:var(--gold)}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;border-block:1px solid #334c57;padding:14px 0;margin-bottom:20px}.toolbar label{color:var(--muted)}select{margin-left:8px}.toolbar #new{background:var(--gold);color:#162a35;border-color:var(--gold);font-weight:700}#record{margin-left:auto;color:var(--gold);font-size:12px}.layout{display:grid;grid-template-columns:minmax(0,1fr) 315px;gap:24px;align-items:start}.board-panel{min-width:0}#board{position:relative;aspect-ratio:1;border-radius:12px;overflow:hidden;border:1px solid #65808a;box-shadow:0 18px 60px #0005;background:#254454}#board>img{width:100%;height:100%;object-fit:cover;filter:brightness(.63) saturate(.72)}#routes,#stations{position:absolute;inset:0;width:100%;height:100%}#routes line{stroke-linecap:round;filter:drop-shadow(0 1px 2px #000)}.station{position:absolute;transform:translate(-50%,-50%);padding:0;width:34px;height:34px;border-radius:50%;background:#142e3beb;border:1px solid #c2c8b6;color:#fff;font-weight:700;box-shadow:0 2px 8px #0009;font-size:12px;display:grid;place-items:center}.station.possible{outline:2px solid #e9c78d;outline-offset:3px}.station.reachable{background:#ded7ad;color:#132632;box-shadow:0 0 15px #f6d59b}.station.inspector{border-width:3px;width:39px;height:39px}.station.sighting::after{content:'◇';position:absolute;top:-23px;font-size:23px;color:var(--gold);text-shadow:0 1px 3px black}.station span{pointer-events:none}.station .badge{position:absolute;top:23px;font-size:9px;border-radius:3px;padding:1px 4px;background:#142632;color:#fff;white-space:nowrap}.legend{display:flex;flex-wrap:wrap;justify-content:center;gap:16px;padding:13px 5px;color:var(--muted);font-size:11px}.walk{color:#e8cb92}.tram{color:#f19e91}.ferry{color:#8bd5db}.status{padding:4px 0 16px;border-bottom:1px solid #334c57}h2{font:normal 27px Georgia,serif;margin:9px 0 12px}#message{line-height:1.7;color:#c1cdd0;margin-bottom:0}.team{display:grid;gap:8px;margin:17px 0}.agent{text-align:left;width:100%;display:flex;gap:10px;align-items:center;padding:10px}.agent .dot{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;color:#132632;font-weight:800;flex-shrink:0}.agent small{display:block;color:#b3c3c8;font-size:11px;margin-top:4px}.agent .done{margin-left:auto;color:var(--gold)}h3{font-size:11px;text-transform:uppercase;letter-spacing:1.5px;color:var(--muted);margin:17px 0 12px}#moves{display:flex;gap:7px;flex-wrap:wrap}#moves button{padding:9px 11px;min-width:85px}#pass{font-size:11px;margin-top:10px;background:transparent}#log{padding:0;margin:0;list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:6px}#log li{background:#1a303b;border-radius:4px;padding:7px 8px;font-size:11px}#log li.sighted{border:1px solid #927c52;color:var(--gold)}footer{color:#7f969f;font-size:11px;text-align:center;padding:28px 0 5px}a{color:#c1c6b6}dialog{max-width:560px;background:#142a36;color:var(--ink);border:1px solid #8e835d;border-radius:12px;padding:32px;box-shadow:0 20px 100px #0009}dialog::backdrop{background:#04121bd9;backdrop-filter:blur(4px)}dialog p,dialog li{line-height:1.8;color:#c8d4d5}dialog li{margin:10px 0}#close{float:right;padding:3px 10px;font-size:24px}#begin{background:var(--gold);color:#132632;font-weight:700}body.won #board{border-color:var(--gold)}@media(min-width:1250px){#board{max-width:830px}}@media(max-width:900px){main{padding:20px}.layout{grid-template-columns:1fr}aside{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.trail{grid-column:1/-1}#log{grid-template-columns:repeat(4,1fr)}.status{border:0}.team{margin:0}h1{font-size:39px}#record{margin-left:0}}@media(max-width:520px){main{padding:15px 12px}header{margin-bottom:17px}h1{font-size:35px}.eyebrow{font-size:8px;letter-spacing:2px}.toolbar{gap:8px}.toolbar label{width:100%}select{max-width:80%}.toolbar button{font-size:11px;padding:9px}aside{display:block}.team{margin-top:12px}.station{width:26px;height:26px;font-size:10px}.station.inspector{width:29px;height:29px}.station .badge{top:20px;font-size:7px}.station.possible{outline-offset:1px}#log{grid-template-columns:repeat(3,1fr)}.legend{font-size:10px;gap:9px}dialog{padding:22px}header>button{font-size:11px;padding:9px}}
