:root{color-scheme:dark;--base:#111728;--panel:#192238;--line:#344057;--fg:#f1f3f7;--dim:#b1bbce;--accent:#deff74;font-family:system-ui,sans-serif;color:var(--fg);background:var(--base)}
*{box-sizing:border-box}body,figure,ul,h1,h2,h3,p{margin:0}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--accent);outline-offset:3px}[hidden]{display:none!important}.shell{width:min(1240px,94%);margin:auto}.bar,nav,.context{display:flex;align-items:center;justify-content:space-between;gap:22px}.bar{min-height:70px}.brand{font-size:19px;font-weight:750}.mark{color:var(--accent);margin-right:9px;letter-spacing:-2px}header,footer{background:#151d30;border-bottom:1px solid var(--line)}nav,small,.caption,footer{font-size:14px;color:var(--dim)}
.overview{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:7%;align-items:center;padding:clamp(34px,5vw,72px) 0}.overview h1{font-size:clamp(39px,5vw,76px);letter-spacing:-.062em;line-height:1.01}.overview h1 span{display:block;color:var(--accent)}.overview p,.guide p{line-height:1.55;color:var(--dim);max-width:48ch;margin-top:18px}.overview figure{background:var(--panel);padding:20px 26px;border-radius:10px}.overview figcaption{font-size:16px;font-weight:650}.plot{display:flex;align-items:end;gap:5%;padding:16px 0 10px}.bin{flex:1;text-align:center;font:13px ui-monospace,monospace}.bin i{display:block;height:var(--height);margin:6px 0;background:#9aafe8;border-radius:3px 3px 0 0}.bin:last-child i{background:var(--accent)}.bin small{white-space:nowrap;font-size:11px}.caption{font-size:12px}.context{flex-wrap:wrap;gap:6px}.context h2,.guide h2{font-size:clamp(22px,2.5vw,32px);letter-spacing:-.04em}.switch{justify-content:start;gap:7px;margin:18px 0}.switch a{padding:9px 14px;border:1px solid var(--line);border-radius:6px;color:var(--fg)}.switch a[aria-current]{background:var(--accent);border-color:var(--accent);color:#162000}.switch em{font:12px ui-monospace,monospace}
form{display:flex;gap:12px;align-items:end;flex-wrap:wrap;background:var(--panel);padding:16px;border-radius:8px}label{display:grid;gap:6px;font-size:12px;color:var(--dim)}label:first-child{flex:1;min-width:180px}input,select,button{font:inherit;color:var(--fg);background:var(--base);border:1px solid var(--line);border-radius:5px;padding:9px}input,select,.reset{font-size:15px}button{cursor:pointer}.listhead,.row{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(100px,.65fr) minmax(180px,.85fr);gap:16px;align-items:center}.listhead{padding:16px;color:var(--dim);font-size:13px}.listhead h3{font-size:16px;color:var(--fg)}ul{padding:0;list-style:none}.row{padding:14px 16px;border-top:1px solid var(--line)}.row:hover{background:var(--panel)}.who strong,.who small{display:block}.who strong,code{overflow-wrap:anywhere}.who small{margin-top:4px}.players{color:var(--dim);font:14px ui-monospace,monospace}.players b{color:var(--fg)}meter{display:block;width:min(110px,100%);height:9px;accent-color:var(--accent)}.endpoint{display:grid;justify-items:start;gap:5px}.endpoint button,.action{color:var(--accent);background:none;padding:3px 0;border:0;font-size:13px}.action{justify-self:start}.guide{margin:40px 0;display:grid;grid-template-columns:1fr 1fr;gap:6%;border-top:1px solid var(--line);padding-top:26px}#feedback{font-size:14px;margin-top:10px;color:var(--dim)}kbd{color:var(--fg)}
@media(max-width:740px){.shell{width:92%}.bar{flex-wrap:wrap;gap:8px;padding:12px 0}.bar nav{gap:12px;font-size:12px}.overview{grid-template-columns:1fr;gap:20px}.overview figure{padding:15px}.plot i{height:calc(var(--height) * .55)}.listhead,.row{grid-template-columns:minmax(0,1fr) minmax(70px,.55fr);gap:8px;padding:12px 4px}.listhead span:last-child{display:none}.endpoint,.action{grid-column:1/-1}.endpoint{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.guide{grid-template-columns:1fr;gap:22px}.context small{font-size:12px}}
.routes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:30px}.routes a{display:grid;gap:6px;padding:16px 18px;background:var(--panel);border:1px solid var(--line);border-radius:7px}.routes a:hover{border-color:var(--accent)}.routes strong{color:var(--accent);font-size:16px}.routes span{font-size:13px}.selection-note{font-size:14px;line-height:1.55;color:var(--dim);max-width:84ch;margin:14px 0 0}.players small,.list .row>div:nth-child(2)>small{display:block;margin-top:5px;font:12px system-ui;color:var(--dim)}.handbook{border-top:1px solid var(--line);margin:36px 0;padding:26px 0}.handbook h2{font-size:clamp(24px,3vw,38px);letter-spacing:-.04em}.guide-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px 5%;margin-top:20px}.guide-grid article{border-top:1px solid var(--line);padding-top:16px}.guide-grid h3{font-size:21px}.guide-grid p{color:var(--dim);line-height:1.6;margin:12px 0}.guide-grid a{color:var(--accent);font-size:14px}#servers,#help{scroll-margin-top:12px}@media(max-width:740px){.routes,.guide-grid{grid-template-columns:1fr}.routes a{padding:12px}.routes{gap:6px}.selection-note{font-size:13px}}

.overview {
  position: relative;
  isolation: isolate;
  display: grid;
  grid-template-columns: 1fr;
  overflow: hidden;
  margin: 20px 0 14px;
  padding: clamp(24px, 4.8vw, 64px);
  min-height: clamp(280px, 27vw, 365px);
  border-radius: 10px;
  background: #141a25;
}
.skyline, .overview::before {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.skyline { z-index: -2; object-fit: cover; object-position: center 55%; }
.overview::before {
  content: "";
  z-index: -1;
  background: linear-gradient(90deg, rgba(11,17,30,.97), rgba(11,17,30,.87) 32%, rgba(11,17,30,.26) 68%, transparent);
}
.overview p { color: #ebedf2; max-width: 51ch; }
.routes a { padding: 0 0 14px; overflow: hidden; align-content: start; }
.routes img { width: 100%; height: clamp(80px, 9vw, 122px); object-fit: cover; }
.routes strong, .routes span { margin-inline: 14px; }
.routes strong { margin-top: 4px; }
.population { margin-top: 10px; color: var(--dim); }
.population summary { cursor: pointer; }
.population figure { max-width: 450px; padding: 16px; }
@media (max-width: 740px) {
  .overview { align-content: end; padding-top: 115px; }
  .overview::before { background: linear-gradient(0deg, #101726 2%, rgba(15,21,37,.9) 50%, rgba(15,21,37,.06) 95%); }
  .routes a { grid-template-columns: 84px 1fr; grid-template-rows: auto auto; gap: 0; padding: 0; }
  .routes img { grid-row: span 2; height: 100%; min-height: 68px; }
  .routes strong { align-self: end; margin-top: 8px; }
  .routes span { align-self: start; margin-block: 3px 8px; }
}
