:root{--ink:#e9e7de;--muted:#c6bca9;--gold:#d7b568;--gold-light:#efd7a2;--navy:#070e23;--panel:#0b1630;--line:#ffffff1a;--serif:Georgia,'Times New Roman',serif;--sans:Arial,Helvetica,sans-serif;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--navy);color:var(--ink);font-family:var(--sans);font-size:17px}button,input,select{font:inherit}button,a,input,select{outline-offset:4px}button{cursor:pointer;color:inherit}button{border:0}button:disabled{cursor:default;opacity:.4}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,.map-stage:focus-visible{outline:2px solid var(--gold-light)}button, a{-webkit-tap-highlight-color:transparent}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}a{color:inherit}button{transition:background .15s,color .15s}button:hover{color:var(--gold-light)}.masthead{height:88px;display:flex;justify-content:space-between;align-items:center;margin:0 42px;border-bottom:1px solid var(--line)}.wordmark{text-decoration:none;display:flex;gap:14px;align-items:center;font-size:13px;letter-spacing:2.4px;color:var(--gold-light)}.wordmark small{display:block;font-size:12px;letter-spacing:1.65px;color:var(--muted);margin-top:7px}.crest{font-size:35px;line-height:1;color:var(--gold)}.private{display:flex;align-items:center;gap:8px;font-size:14px;color:#e2d8c5;letter-spacing:.4px;border:1px solid #c6bca92e;border-radius:30px;padding:9px 13px}.private svg{width:13px;height:13px}main{padding:0 42px;max-width:2000px;margin:0 auto}.intro{display:flex;justify-content:space-between;align-items:center;padding:31px 0 30px}.eyebrow{color:var(--gold);letter-spacing:2.3px;font-size:13px;font-weight:600;margin:0 0 10px}h1{font:60px/.95 var(--serif);letter-spacing:-2px;margin:0 0 10px;font-weight:400}h1 .title-star{font-size:26px;color:var(--gold);margin-left:24px;vertical-align:middle}.subtitle{font:italic 17px var(--serif);color:#e2d8c5;margin:0}.intro-note{text-align:right;display:flex;gap:33px;align-items:center}.intro-note p{font:italic 17px/1.55 var(--serif);color:#e2d8c5;text-align:left;border-left:1px solid #8f826d60;padding-left:19px;margin:0}.intro-note>span{font-size:12px;letter-spacing:2px;writing-mode:vertical-rl;color:var(--gold);line-height:1.3}.atlas{display:grid;grid-template-columns:minmax(0,1fr) 326px;border:1px solid #c6bca92c;background:var(--panel);border-radius:5px;overflow:hidden;box-shadow:0 18px 55px #0003}.map-column{min-width:0}.map-toolbar{height:57px;display:flex;align-items:center;padding:0 15px;gap:10px;border-bottom:1px solid var(--line)}.filter-scroll{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;flex:1}.filter{white-space:nowrap;font-size:14px;background:transparent;border-radius:4px;padding:9px 10px;color:var(--muted)}.filter.active{background:#d7b56820;color:var(--gold-light)}.filter:hover{background:#ffffff0b}.labels{border-left:1px solid var(--line)!important;padding-left:12px!important;display:flex;gap:5px;align-items:center;font-size:14px;flex:none}.labels svg{width:16px}.icon-button{background:transparent;padding:6px;font-size:24px;border-radius:3px}.map-stage{height:clamp(440px,58vw,680px);max-height:calc(100svh - 265px);min-height:410px;position:relative;overflow:hidden;background:#070e23;touch-action:none;cursor:grab;isolation:isolate}.map-stage.dragging{cursor:grabbing}.map-world{width:2048px;height:1536px;position:absolute;left:0;top:0;transform-origin:0 0;will-change:transform}.map-world>img{display:block;width:100%;height:100%;user-select:none}.pin{position:absolute;padding:0;transform:translate(-50%,-50%) scale(var(--pin-scale,1));background:transparent;width:34px;height:34px;z-index:2;color:#fae8ba;touch-action:none}.pin-dot{width:29px;height:29px;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:bold;font-variant-numeric:tabular-nums;background:#0b1630;border:1.5px solid #f3d895;border-radius:50%;box-shadow:0 2px 6px #070e2390,0 0 0 3px #070e2340;transition:background .15s,box-shadow .15s}.pin:hover,.pin:focus-visible,.pin.selected,.pin.compared{z-index:5}.pin:hover .pin-dot,.pin:focus-visible .pin-dot,.pin.selected .pin-dot{background:#f4d697;color:#0b1630;box-shadow:0 0 0 5px #0b163080,0 2px 5px #0005}.pin.compared .pin-dot{background:#e2d8c5;color:#0b1630;border-color:#fff}.pin-label{pointer-events:none;position:absolute;bottom:43px;left:50%;transform:translateX(-50%);white-space:nowrap;background:#0b1630f5;color:#fff3d6;padding:8px 12px;border:1px solid #d7b56880;border-radius:4px;font-size:15px;box-shadow:0 2px 8px #0005;display:none}.pin:hover .pin-label,.pin:focus-visible .pin-label{display:block}.pin[hidden]{display:none}.map-hint{position:absolute;top:17px;left:50%;transform:translateX(-50%);pointer-events:none;padding:9px 14px;background:#0b1630ee;border:1px solid #ffffff26;color:#e9e7da;font-size:13px;letter-spacing:.3px;border-radius:20px;white-space:nowrap;box-shadow:0 3px 10px #0002}.zoom-controls{position:absolute;left:18px;bottom:20px;display:flex;align-items:center;background:#0b1630ed;border:1px solid #d7b56866;border-radius:5px;box-shadow:0 3px 15px #0005;padding:3px}.zoom-controls button{width:35px;height:36px;background:transparent;display:grid;place-items:center;font-size:23px;border-radius:3px}.zoom-controls button:hover{background:#ffffff14}.zoom-controls output{width:44px;text-align:center;font-size:13px;letter-spacing:.4px;color:#e2d8c5}.zoom-controls>span{width:1px;height:18px;background:var(--line);margin:0 4px}.overview{position:absolute;right:18px;bottom:20px;padding:0;width:115px;height:87px;border:1px solid #d7b568;border-radius:3px;overflow:hidden;box-shadow:0 3px 15px #0005;background:#0b1630}.overview img{width:100%;height:100%;opacity:.68}.overview span{position:absolute;border:1.5px solid #ffe6a7;background:#ffe6a722;pointer-events:none;min-width:3px;min-height:3px}.map-caption{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 17px;font-size:13px;letter-spacing:.2px;color:#c6bca9;border-top:1px solid var(--line)}.map-caption>span{display:flex;align-items:center;gap:8px}.map-caption i{display:block;width:5px;height:5px;border-radius:50%;background:var(--gold)}.map-caption button{background:transparent;color:#cdb98d;font-size:13px;padding:2px 0}.sidebar{border-left:1px solid var(--line);display:flex;flex-direction:column;min-width:0;max-height:calc(clamp(440px,58vw,680px) + 100px)}.search-wrap{display:flex;align-items:center;gap:9px;margin:17px 19px 0;padding:10px 10px;border:1px solid #c6bca935;border-radius:4px;background:#0b1630}.search-wrap svg{width:17px;color:#c5b488;flex:none}.search-wrap input{width:100%;min-width:0;border:0;background:transparent;color:#ecece3;outline:0;font-size:15px;line-height:20px}.search-wrap:focus-within{outline:1px solid var(--gold)}.search-wrap input::placeholder{color:#c6bca9}.search-wrap kbd{font-size:13px;color:#c6bca9;border:1px solid #c6bca940;padding:1px 4px;border-radius:2px}#sidebar-content{overflow-y:auto;flex:1;scrollbar-width:thin;scrollbar-color:#26395b transparent}.directory-head{display:flex;align-items:center;justify-content:space-between;padding:24px 21px 13px}.directory-head h2{font:23px var(--serif);margin:0}.counter{font-size:13px;color:var(--gold);font-variant-numeric:tabular-nums}.directory-intro{color:var(--muted);line-height:1.6;font-size:14px;margin:0 21px 17px}.place-list{list-style:none;padding:0 12px 12px;margin:0}.place-row{width:100%;background:transparent;display:flex;align-items:center;text-align:left;gap:12px;padding:13px 9px;border-bottom:1px solid #ffffff0a;border-radius:3px}.place-row:hover{background:#ffffff06}.place-row .num{font:14px var(--serif);color:var(--gold);border:1px solid #bca26a4a;width:29px;height:29px;border-radius:50%;display:grid;place-items:center;flex:none}.place-row .name{font:18px var(--serif);line-height:1.28;display:block}.place-row small{display:block;margin-top:5px;font-size:12px;letter-spacing:.3px;color:var(--muted)}.place-row .chevron{margin-left:auto;font-size:17px;color:#a99a80}.unplaced-heading{font-size:12px;letter-spacing:1.5px;color:#c6bca9;padding:21px 9px 4px;text-transform:uppercase}.detail{padding:19px 22px 25px}.back-button{background:transparent;padding:0;color:#e2d8c5;font-size:13px;letter-spacing:.3px;margin-bottom:25px}.detail-topline{display:flex;align-items:center;gap:7px;color:var(--gold);font-size:12px;text-transform:uppercase;letter-spacing:1.3px;line-height:1.5}.detail-topline i{width:5px;height:5px;border-radius:50%;background:var(--gold);flex:none}.detail h2{font:32px/1.09 var(--serif);font-weight:400;letter-spacing:-.7px;margin:11px 0 17px}.detail .lore{font:18px/1.7 var(--serif);color:#f4eee2;margin:0 0 20px}.detail h3{font-size:12px;letter-spacing:1.8px;color:var(--gold);font-weight:600;text-transform:uppercase;margin:0 0 10px}.geo-box{padding:16px 15px;border:1px solid #c6bca924;border-left:2px solid #ad9768;background:#070e232e;margin-bottom:18px}.geo-box p{color:#e2d8c5;font-size:15px;line-height:1.7;margin:0}.note{font-size:14px;color:#c6bca9;line-height:1.7;padding-bottom:5px}.primary{display:flex;justify-content:center;align-items:center;gap:8px;width:100%;padding:12px 15px;background:#c8ac73;color:#0b1630;border:1px solid #d5bf8c;border-radius:3px;font-size:14px;font-weight:bold}.primary:hover{background:#e2c891;color:#0b1630}.secondary{background:transparent;border:1px solid #a99a804d;border-radius:3px;padding:11px 13px;font-size:14px;color:#e2d8c5}.secondary:hover{background:#fff1}.detail-actions{display:flex;gap:7px;margin:19px 0 24px}.detail-actions .primary{flex:1}.source-details{border-top:1px solid var(--line);padding-top:14px;margin-top:22px}.source-details summary{font-size:14px;color:#e2d8c5;cursor:pointer}.source-details ul{padding-left:15px;font-size:13px;line-height:1.7;color:var(--muted)}.related{display:flex;flex-wrap:wrap;gap:6px}.related button{border:1px solid #c6bca930;border-radius:3px;padding:7px 9px;background:#ffffff03;font-size:13px;color:#e2d8c5}.related button:hover{background:#ffffff0b}.compare-panel{padding-top:18px;margin-top:18px;border-top:1px solid var(--line)}.compare-panel label{display:block;color:var(--gold);font-size:12px;letter-spacing:1.7px;text-transform:uppercase;margin-bottom:10px}.compare-panel select{padding:11px;width:100%;background:#0b1630;border:1px solid #c6bca95e;color:var(--ink);border-radius:3px;font-size:14px}.compare-result{margin-top:17px}.compare-result h3{line-height:1.6;margin-bottom:8px}.compare-result p{font-size:15px;line-height:1.7;color:#e2d8c5}.compare-result .compare-name{font:22px var(--serif);color:#e2d8c5;margin:0 0 12px}.compare-result .no-route{font-size:13px;color:#c6bca9}.empty{padding:30px 22px;color:var(--muted);font-size:15px;line-height:1.8}.empty strong{display:block;color:var(--ink);font:22px var(--serif);margin-bottom:12px}.empty button{margin-top:15px;width:100%}footer{display:flex;justify-content:space-between;gap:20px;padding:23px 0;color:#c6bca9;font-size:12px;letter-spacing:1.3px}footer b{color:var(--gold);padding:0 10px}footer>span:last-child{font:italic 15px var(--serif);letter-spacing:.1px;color:#c6bca9}dialog{background:#0b1630;color:#e7e6db;max-width:540px;width:calc(100% - 32px);max-height:85svh;overflow:auto;border:1px solid #b59f6755;border-radius:6px;padding:27px 30px;box-shadow:0 25px 100px #0008}dialog::backdrop{background:#070e23d9;backdrop-filter:blur(5px)}.dialog-heading{display:flex;justify-content:space-between;align-items:center}dialog h2{font:34px var(--serif);margin:12px 0 17px}dialog p,dialog dd{font-size:15px;line-height:1.8;color:#e2d8c5}dialog dt{color:var(--gold);font-size:14px;margin-top:15px}dialog dd{margin:5px 0 0}dialog .primary{margin-top:22px}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip{position:absolute;top:-100px;left:12px;background:var(--gold);padding:12px;color:var(--navy);z-index:100}.skip:focus{top:12px}@media(min-width:1650px){.atlas{grid-template-columns:minmax(0,1fr) 370px}.map-stage{max-height:calc(100svh - 290px)}.detail{padding:22px 27px}.search-wrap{margin-left:26px;margin-right:26px}}@media(max-width:1150px){main{padding:0 24px}.masthead{margin:0 24px}.atlas{grid-template-columns:minmax(0,1fr) 295px}.map-toolbar{padding:0 9px}.filter{padding:9px 8px;font-size:13px}.map-stage{height:570px}.sidebar{max-height:670px}.overview{width:88px;height:66px}.intro{padding:28px 0}h1{font-size:54px}}@media(max-width:800px){main{padding:0 16px}.masthead{height:75px;margin:0 16px}.intro{padding:25px 0}.intro-note{display:none}h1{font-size:48px}.eyebrow{font-size:12px}.subtitle{font-size:18px}.atlas{grid-template-columns:1fr}.map-stage{height:57vw;max-height:none;min-height:340px}.sidebar{border-left:0;border-top:1px solid var(--line);max-height:none}.search-wrap{margin:18px 20px 0}#sidebar-content{max-height:590px;min-height:220px}.directory-head{padding-top:19px}.place-list{display:grid;grid-template-columns:1fr 1fr}.place-list .unplaced-heading{grid-column:1/-1}.map-caption{padding:12px 15px}.map-toolbar{height:54px}.detail{padding:20px 24px 28px}.detail h2{font-size:33px}.detail .lore{font-size:18px}.map-hint{font-size:12px}.private{font-size:13px}.wordmark{font-size:12px;letter-spacing:1.9px}.wordmark small{font-size:12px}.crest{font-size:29px}footer{letter-spacing:.7px;font-size:12px;line-height:1.8}footer>span:last-child{max-width:110px;text-align:right;font-size:14px}.intro .title-star{font-size:20px}}@media(max-width:450px){.private{font-size:0;padding:9px}.private svg{width:13px;height:13px}.place-list{grid-template-columns:1fr}.map-stage{min-height:330px}.map-hint{padding:8px 11px}.zoom-controls{bottom:14px;left:12px}.overview{bottom:14px;right:12px;width:76px;height:57px}.map-caption{font-size:12px}.map-caption button{font-size:12px}.labels span{display:none}.filter{font-size:13px}.wordmark small{letter-spacing:1px}.map-toolbar{padding:0 9px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
.icon-button.labels{font-size:14px}.counter{white-space:nowrap}.intro-note>span{writing-mode:horizontal-tb;margin-top:13px;font-size:12px;letter-spacing:1.5px}.intro-note{display:block}.intro-note p{font-size:16px}.intro{padding:30px 0}.map-stage{max-height:calc(100svh - 340px)}@media(max-width:800px){.intro-note{display:none}.map-stage{max-height:none}.intro{padding:25px 0}}@media(max-width:450px){.pin{width:26px;height:26px}.pin-dot{width:23px;height:23px;font-size:12px}.pin-label{bottom:33px}}
