:root{color-scheme:dark;--bg:#071113;--panel:#102024;--ink:#edf7f3;--muted:#a9bfba;--line:#31565a;--cyan:#69e4c5;--gold:#f1c66a;--warn:#ff9e7d;--route:#ff7965;--violet:#b9a1ff}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 15% 0,#17383b,#071113 46rem);color:var(--ink);font:16px/1.5 system-ui,sans-serif;overflow-x:hidden}a{color:var(--cyan)}button,input,select,textarea{font:inherit}button,select,input,textarea{min-height:44px;border-radius:.5rem;border:1px solid var(--line);background:#081719;color:var(--ink)}button{padding:.55rem .8rem;cursor:pointer}button:hover,button:focus-visible{border-color:var(--cyan);outline:2px solid transparent}button:disabled{cursor:not-allowed;opacity:.55}header{padding:1rem max(1rem,calc((100% - 96rem)/2));display:flex;align-items:center;gap:1rem;flex-wrap:wrap;border-bottom:1px solid var(--line);background:#09171ae8;position:sticky;top:0;z-index:5}header strong{margin-right:auto}nav{display:flex;gap:.8rem;flex-wrap:wrap}main{max-width:96rem;margin:auto;padding:1rem}.hero{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(18rem,.8fr);gap:1rem;align-items:start}.panel{background:#102024;border:1px solid var(--line);border-radius:.8rem;padding:1rem}.eyebrow{color:var(--gold);font-weight:800;letter-spacing:.09em;text-transform:uppercase}.notice{border-left:.35rem solid var(--warn);background:#2a1b18;padding:.8rem 1rem}.facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.fact{background:#0a171a;border:1px solid var(--line);border-radius:.55rem;padding:.7rem}.fact strong{display:block;font-size:1.35rem;color:var(--gold)}label{display:block;font-weight:700;margin:.8rem 0 .3rem}input,select,textarea{width:100%;padding:.65rem}textarea{resize:vertical;font-family:ui-monospace,Consolas,monospace}.map-shell{margin-top:1rem;display:grid;grid-template-columns:minmax(19rem,25rem) minmax(0,1fr);gap:1rem;align-items:start}.map-shell>*{min-width:0}.inspector{max-height:calc(100vh - 6rem);overflow:auto;position:sticky;top:5rem}.room-detail{padding:.8rem;border:1px solid var(--line);border-radius:.6rem;background:#0a171a}.room-detail h3{margin:.2rem 0}.room-detail dl{display:grid;grid-template-columns:auto 1fr;gap:.25rem .6rem}.room-detail dt{font-weight:800;color:var(--gold)}.room-detail dd{margin:0;overflow-wrap:anywhere}.button-row,.map-toolbar{display:flex;gap:.5rem;flex-wrap:wrap;margin:.7rem 0}.button-row>*{flex:1}.map-toolbar{align-items:center;margin-top:0}.map-toolbar button{min-width:44px}.map-toolbar output{color:var(--muted);font-variant-numeric:tabular-nums}.map-scroll{overflow:auto;min-height:38rem;max-height:76vh;background:#050d0f;border:1px solid var(--line);border-radius:.7rem;scroll-behavior:smooth}.map-scroll svg{display:block;max-width:none}.edge{stroke:#3f6769;stroke-width:1.25}.edge.diagonal{stroke:var(--warn);stroke-dasharray:4 3}.route-edge{stroke:var(--route);stroke-width:4;stroke-linecap:round;opacity:.9}.room-node{cursor:pointer;outline:none}.room-node:focus .room{stroke:white;stroke-width:3}.room{fill:#80dcca;stroke:#071113;stroke-width:1}.room.labelled{fill:var(--gold)}.room.match{fill:#ff7965;stroke:white;stroke-width:2.5}.room.selected{stroke:var(--violet);stroke-width:4}.room.route{fill:var(--route);stroke:#fff;stroke-width:2}.room.route-start{fill:var(--cyan)}.room.route-end{fill:var(--violet)}.map-label{fill:#f5e3ac;font-size:9px;font-weight:700;paint-order:stroke;stroke:#071113;stroke-width:3px;stroke-linejoin:round;pointer-events:none}.legend{display:flex;gap:1rem;flex-wrap:wrap;color:var(--muted);font-size:.9rem}.swatch{display:inline-block;width:.75rem;height:.75rem;border-radius:50%;background:#80dcca;margin-right:.3rem}.swatch.labelled{background:var(--gold)}.swatch.selected{background:var(--violet)}.swatch.route{background:var(--route)}.muted{color:var(--muted)}code{overflow-wrap:anywhere}.text-reference{margin-top:1rem}.room-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:.6rem}.room-card{min-height:8rem;text-align:left;padding:.75rem;display:grid;align-content:start;gap:.3rem}.room-card strong{color:var(--gold)}.room-card code{color:var(--cyan)}.room-card span{color:var(--muted);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}footer{max-width:96rem;margin:2rem auto 0;padding:1rem;border-top:1px solid var(--line);color:var(--muted)}@media(max-width:820px){.hero,.map-shell{grid-template-columns:1fr}.facts{grid-template-columns:1fr}.inspector{position:static;max-height:none}.map-scroll{min-height:28rem;max-height:68vh}header{position:static}main{padding:.7rem}.room-list{grid-template-columns:1fr}.map-toolbar button{min-width:52px}}
.compact-labels .map-label{display:none}
