@font-face{font-family:'IM Fell English';src:url('assets/fonts/im-fell-english-regular.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:'IM Fell English';src:url('assets/fonts/im-fell-english-italic.woff2') format('woff2');font-style:italic;font-weight:400;font-display:swap}
@font-face{font-family:'IM Fell English SC';src:url('assets/fonts/im-fell-english-sc.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:'Inter';src:url('assets/fonts/inter-variable.woff2') format('woff2');font-style:normal;font-weight:100 900;font-display:swap}
/* Wiki palette; bundled fonts. The illustration retains its parchment. */
:root{
 --background:hsl(30 22% 7%);--card:hsl(28 24% 11%);--popover:hsl(28 24% 11%);
 --muted:hsl(28 18% 15%);--border:hsl(28 18% 21%);--foreground:hsl(41 37% 86%);
 --muted-foreground:hsl(36 24% 72%);--nav-foreground:#c9bba6;--primary:hsl(32 63% 50%);
 --accent:hsl(12 64% 55%);--secondary:hsl(95 28% 50%);--zone-city:hsl(43 70% 52%);
 --amber-border:rgba(208,133,47,.2);--shadow:0 8px 32px rgba(13,10,8,.4);--radius:8px;
 --heading:'IM Fell English',Georgia,'Times New Roman',serif;--small-caps:'IM Fell English SC',Georgia,serif;--body:'Inter',system-ui,-apple-system,'Segoe UI',Arial,sans-serif;
}
*{box-sizing:border-box}html,body{height:100%;overflow:hidden}body{margin:0;background:var(--background);color:var(--foreground);font:13px/1.5 var(--body)}
button,input,select,textarea{font:inherit}button,select{cursor:pointer}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}
button{color:var(--foreground);border:1px solid var(--border);background:var(--muted);border-radius:var(--radius);padding:8px 12px;transition:background .12s,border-color .12s}
button:hover{background:#3c2e20;border-color:#936133}button:disabled{opacity:.45;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--primary);outline-offset:3px}
a{color:var(--muted-foreground)}a:hover{color:var(--primary)}[hidden]{display:none!important}h1,h2,h3{font-family:var(--heading);font-weight:normal;line-height:1.15}
.masthead{height:68px;display:flex;align-items:center;gap:20px;padding:0 24px;border-bottom:1px solid var(--amber-border);background:var(--card)}
.brand{display:flex;align-items:center;gap:9px;white-space:nowrap;color:var(--foreground);text-decoration:none;font:27px var(--heading)}.brand-star{color:var(--primary);font-size:33px}.brand-sub{font:9px/1.4 var(--body);letter-spacing:1.4px;max-width:85px;white-space:normal;border-left:1px solid var(--border);padding-left:12px;margin-left:8px;color:var(--muted-foreground)}
.edition{flex:1;font-size:11px;color:var(--nav-foreground);letter-spacing:.4px}.map-picker{display:flex;align-items:center;gap:10px;font-size:11px;color:var(--muted-foreground)}
.map-select{min-width:140px;max-width:235px;padding:8px 28px 8px 12px;color:var(--foreground);background:var(--muted);border:1px solid var(--border);border-radius:8px;min-height:36px}
.atlas{height:calc(100dvh - 68px);display:flex;flex-direction:row-reverse;gap:12px;padding:12px;position:relative}
.journal{width:310px;min-width:310px;display:flex;flex-direction:column;overflow:auto;background:var(--card);border:1px solid var(--amber-border);border-radius:16px;padding:19px;box-shadow:var(--shadow);scrollbar-width:thin;scrollbar-color:var(--border) var(--card)}
.journal.closed{display:none}.journal-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px}.eyebrow{font:9px var(--body);letter-spacing:1.6px;color:var(--primary);margin:0 0 7px}.journal h1{font-size:29px;margin:0}.journal-heading button{width:34px;height:34px;padding:0;font-size:22px;background:transparent}
.search-label{font-size:11px;margin-bottom:6px;color:var(--muted-foreground)}.search-box{display:flex;align-items:center;border:1px solid #9f7d56;border-radius:8px;background:#f2ebde;color:#2b1e12;padding:0 10px;min-height:40px}.search-box:focus-within{outline:2px solid var(--primary);outline-offset:2px}.search-box>span{font:25px var(--heading);color:#886a4b}.search-box input{flex:1;min-width:0;width:100%;border:0;background:none;color:#2b1e12;font-size:12px;padding:10px 7px}.search-box input::placeholder{color:#765f49}.search-box input:focus-visible{outline:none}.search-box input::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none}.search-box #clear-search{flex:none;border:0;background:none;color:#624930;width:28px;height:28px;padding:0;font-size:22px}
.filter-heading,.list-heading{display:flex;justify-content:space-between;align-items:center}.filter-heading{margin:16px 0 8px;font-size:9px;letter-spacing:1px;color:var(--muted-foreground)}.filter-heading button{border:0;background:none;font-size:11px;color:var(--primary);padding:2px 5px;letter-spacing:0}
.categories{display:grid;grid-template-columns:1fr 1fr;gap:6px}.categories button{display:flex;align-items:center;gap:7px;font-size:11px;text-align:left;padding:7px 9px;background:#392b1c;border-color:#795027}.categories button[aria-pressed=false]{background:transparent;color:#a99b86;border-color:var(--border)}.categories svg{width:17px;height:17px;flex-shrink:0;color:var(--primary)}.categories b{font-size:15px;line-height:17px;color:var(--primary)}
.place-name-controls,.hidden-controls{flex:none;margin-top:8px;font-size:12px}.place-name-controls label,.hidden-controls>label{display:flex;gap:9px;align-items:center;min-height:34px;cursor:pointer}.place-name-controls input,.hidden-controls input{accent-color:var(--primary);width:16px;height:16px;margin:0}.hidden-controls{margin-top:0}.hidden-controls p{font-size:11px;line-height:1.5;color:var(--muted-foreground);margin:6px 0}.area-key{display:inline-block;width:10px;height:10px;border:1px solid #66513c;border-radius:2px}.area-key.blue{background:#83c4ed}.area-key.yellow{background:#eee57c;margin-left:8px}#hidden-swap{width:100%;font-size:11px;min-height:36px}
.list-heading{border-top:1px solid var(--border);margin-top:13px;padding-top:13px}.list-heading h2{font-size:17px;margin:0}.list-heading>span{font-size:10px;color:var(--muted-foreground)}
.results{overflow:auto;flex:1;min-height:95px;margin:8px -5px 12px;padding:0 5px;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.place{display:flex;align-items:center;width:100%;text-align:left;gap:10px;background:transparent;border:0;border-bottom:1px solid #3f352c80;border-radius:0;padding:10px 2px}.place:hover{background:var(--muted)}.place .symbol{width:24px;flex:none;font-size:20px;text-align:center;color:var(--primary)}.place .symbol svg{width:23px;height:23px;display:block}.place span:last-child{min-width:0;flex:1}.place strong{display:block;font-size:12px;font-weight:500;overflow-wrap:anywhere}.place small{display:block;font-size:10px;margin-top:3px;color:var(--muted-foreground)}
.primary{background:var(--primary);color:#1e140b;border-color:var(--primary);font-weight:600}.primary:hover{background:#e2a052;border-color:#e2a052}.journal-bottom{border-top:1px solid var(--border);padding-top:12px;text-align:center}.journal-bottom>.primary{width:100%}.journal-bottom p{font-size:10px;color:var(--muted-foreground);margin:7px 0 3px}.backup{display:flex;align-items:center;justify-content:center;gap:3px}.backup button{border:0;background:none;text-decoration:underline;font-size:10px;padding:5px;color:var(--muted-foreground)}
.journal footer{font-size:9px;line-height:1.65;color:var(--muted-foreground);margin-top:10px;text-align:center}.journal footer a{color:inherit}.journal footer a:hover{color:var(--primary)}
.journal-heading,.search-label,.search-box,.filter-heading,.categories,.list-heading,.journal-bottom,.journal>footer{flex-shrink:0}
.map-frame{position:relative;flex:1;min-width:0;border:1px solid #6f5434;border-radius:16px;overflow:hidden;background:#d7bf8e;box-shadow:var(--shadow)}#map{width:100%;height:100%;z-index:0;background:radial-gradient(ellipse,#efdfb6,#c8ac75)}
.frame-border{position:absolute;inset:6px;border:1px solid #80633b70;border-radius:10px;pointer-events:none;z-index:450}
.map-title{position:absolute;left:22px;top:21px;z-index:450;text-align:center;padding:12px 25px;border:1px solid #8b6b3f99;border-radius:8px;background:linear-gradient(115deg,#e6ce9ddd,#f2e1badd);color:#382d20;box-shadow:0 3px 12px #30251426;pointer-events:none;max-width:calc(100% - 100px)}.map-title span{font:9px var(--body);letter-spacing:1.5px;text-transform:uppercase}.map-title h2{font-size:31px;margin:2px 0 3px;overflow-wrap:anywhere}.map-title small{font:italic 11px var(--heading);color:#715532}
.map-tools{position:absolute;right:18px;top:20px;z-index:500;display:flex;flex-direction:column;padding:3px;border:1px solid var(--amber-border);border-radius:10px;background:var(--card);box-shadow:var(--shadow)}.map-tools button{background:transparent;border:0;border-radius:6px;width:36px;height:35px;padding:0;font-size:23px;line-height:1}.map-tools button:hover{background:var(--muted);color:var(--primary)}.map-tools button[aria-pressed=false]{opacity:.45}.map-tools>span{height:1px;background:var(--border);margin:4px}
.compass{position:absolute;right:24px;bottom:43px;width:70px;z-index:450;text-align:center;color:#4f432e;pointer-events:none;filter:drop-shadow(0 0 3px #fff0c5)}.compass span{font:14px var(--heading)}.compass svg{width:100%;fill:#594a30;stroke:#594a30;stroke-width:1}.compass circle{fill:none}.compass .light{fill:#ebd3a0}
.map-caption{position:absolute;left:20px;right:20px;bottom:19px;z-index:450;display:flex;justify-content:space-between;color:#483921;font:10px var(--body);pointer-events:none;text-shadow:0 0 3px #fff1cf,0 0 5px #fff1cf}.map-caption>span:first-child{letter-spacing:.6px}.embed-toolbar{display:none}
#status{position:absolute;z-index:900;bottom:46px;left:50%;transform:translateX(-50%);max-width:min(90%,490px);width:max-content;border:1px solid var(--amber-border);border-radius:8px;background:var(--popover);color:var(--foreground);padding:10px 14px;box-shadow:var(--shadow);font-size:12px;text-align:center}#cancel-place{position:absolute;z-index:700;left:50%;top:12px;transform:translateX(-50%)}.placing .leaflet-container{cursor:crosshair}
.pin{border:0;background:transparent}.pin span{display:grid;place-items:center;width:25px;height:25px;color:#fff3cf;background:var(--pin,#365f59);border:2px solid #f5e2b4;border-radius:50% 50% 50% 4px;transform:rotate(-45deg);box-shadow:0 2px 4px #30251480}.pin b{transform:rotate(45deg);font:14px var(--heading)}.pin svg{width:18px;height:18px;transform:rotate(45deg)}
.leaflet-tooltip{font:12px var(--body);border:1px solid var(--amber-border);background:var(--popover);color:var(--foreground);border-radius:6px}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:var(--popover);color:var(--foreground)}.leaflet-popup-content-wrapper{border-radius:12px;border:1px solid var(--amber-border);box-shadow:var(--shadow)}.leaflet-popup-content{font:12px/1.6 var(--body);min-width:175px;max-width:260px;overflow-wrap:anywhere}.leaflet-popup-content h3{font-size:22px;margin:2px 0 7px}.leaflet-popup-content .tag{font-size:9px;letter-spacing:1px;text-transform:uppercase;color:var(--primary)}.leaflet-popup-content p{white-space:pre-wrap;margin:8px 0}.leaflet-popup-content button{font-size:11px;margin:4px 5px 0 0}.leaflet-container a.leaflet-popup-close-button{color:var(--muted-foreground)}
.leaflet-control-attribution{font:8px var(--body)!important;background:#211911dd!important;color:var(--muted-foreground)!important;border-radius:5px 0 0 0}.leaflet-control-attribution a{color:var(--muted-foreground)!important}
dialog{color:var(--foreground);background:var(--popover);border:1px solid var(--amber-border);border-radius:16px;padding:26px;width:min(440px,calc(100% - 28px));max-height:calc(100dvh - 28px);box-shadow:var(--shadow)}dialog::backdrop{background:#0d0a08b3}dialog h2{font-size:28px;margin:6px 0 18px}dialog label{display:block;font-size:12px;margin:13px 0 5px;color:var(--muted-foreground)}dialog input,dialog select,dialog textarea{width:100%;min-width:0;background:var(--muted);border:1px solid var(--border);border-radius:8px;color:var(--foreground);padding:10px}dialog textarea{resize:vertical}.form-hint{font-size:11px;color:var(--muted-foreground)}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.dialog-actions button{font-size:12px}#delete{margin-right:auto;color:#f29579}.empty{font-size:12px;color:var(--muted-foreground);text-align:center;padding:18px 0}#link-value{font-size:11px}
#alignment-tools{padding:3px 0 12px}#alignment-tools strong{font:20px var(--heading)}#alignment-tools p{line-height:1.6}#alignment-export,#alignment-restore{width:100%;font-size:11px;margin-top:6px}.hidden-area:focus-visible{outline:none;stroke:var(--accent);stroke-width:3}.hidden-route{background:#2b2117;color:#fff0c9;border:2px solid #bd9057;border-radius:50%;text-align:center;font:bold 12px/20px var(--heading)}
/* Half-pixel overlap closes compositor hairlines at fractional Leaflet zooms. */
.leaflet-container img.leaflet-tile{width:256.5px!important;height:256.5px!important;mix-blend-mode:normal}
@media(min-width:1500px){.journal{width:330px;min-width:330px;padding:22px}}
@media(max-height:650px){.journal{padding:14px}.journal-heading{margin-bottom:10px}.eyebrow{display:none}.journal h1{font-size:25px}.categories button{padding:5px 8px}.journal-bottom{padding-top:8px}.journal footer{margin-top:6px}.map-title{padding:9px 18px}.map-title h2{font-size:25px}}
@media(max-width:1050px){.edition{display:none}.map-picker{margin-left:auto}.brand-sub{display:none}}
@media(max-width:760px){
 .masthead{height:58px;padding:0 12px;gap:10px}.brand{font-size:23px}.brand-star{font-size:27px}.masthead .map-picker{display:none}.masthead>#toggle-panel{margin-left:auto;font-size:12px}.atlas{height:calc(100dvh - 58px);padding:6px;gap:0}.map-frame{border-radius:12px}
 .journal{position:absolute;z-index:800;right:12px;top:12px;bottom:12px;width:min(310px,calc(100vw - 24px));min-width:0;box-shadow:-8px 0 30px #0008}
 .map-title{top:59px;left:15px;padding:9px 14px;max-width:calc(100% - 85px)}.map-title h2{font-size:25px}.map-title span{font-size:8px;letter-spacing:.8px}.map-title small{font-size:10px}.map-tools{right:13px;top:60px}.map-tools button{width:34px;height:35px}.compass{width:52px;right:20px;bottom:41px}.map-caption{left:14px;right:14px;font-size:9px}.map-caption>span:last-child{display:none}
 .embed-toolbar{display:flex;position:absolute;top:12px;left:14px;right:14px;z-index:550;justify-content:space-between;gap:10px;pointer-events:none}.embed-toolbar .map-select{pointer-events:auto;max-width:calc(100% - 118px);font-size:12px}.embed-toolbar #embed-guide{display:none}.place-name-controls label,.hidden-controls>label{min-height:40px}
}
/* The iframe supplies its own title/header. Compact controls float over the map. */
.embed .masthead{display:none}.embed .atlas{height:100dvh;padding:0;display:block}.embed .map-frame{height:100%;border-radius:0;border:0}.embed .frame-border{inset:4px;border-radius:0}
.embed .embed-toolbar{display:flex;position:absolute;top:10px;left:12px;right:12px;z-index:550;justify-content:space-between;gap:10px;pointer-events:none}.embed .embed-toolbar>*{pointer-events:auto}.embed .embed-toolbar #embed-guide{display:block;font-size:12px;min-height:36px}.embed .embed-toolbar .map-select{font-size:12px;max-width:calc(100% - 124px)}
.embed .journal{position:absolute;z-index:800;right:10px;top:54px;bottom:10px;width:302px;max-width:calc(100% - 20px);min-width:0;border-radius:12px;padding:14px;box-shadow:-8px 0 30px #0009}.embed .journal-heading{margin-bottom:10px}.embed .journal .eyebrow{display:none}.embed .journal h1{font-size:25px}.embed .journal .results{flex:none;min-height:110px;max-height:230px}.embed .journal .categories button{padding:5px 8px}
.embed .map-title{top:59px;left:13px;padding:8px 15px;max-width:calc(100% - 82px)}.embed .map-title h2{font-size:24px}.embed .map-title span{font-size:8px;letter-spacing:1px}.embed .map-title small{display:none}.embed .map-tools{right:12px;top:58px}.embed .map-tools button{height:32px;width:32px;font-size:22px}.embed .compass{width:48px;right:19px;bottom:36px}.embed .map-caption{bottom:16px;left:14px;right:14px;font-size:9px}.embed .map-caption>span:last-child{display:none}
@media(max-width:760px){.place-name-controls label,.hidden-controls>label{min-height:44px}}
@media(prefers-reduced-motion:reduce){button{transition:none}}

/* Atlas lettering is a separate, non-interactive, decluttered text layer. */
.place-name-anchor{pointer-events:none!important;border:0;background:none}
.place-name{position:absolute;display:block;width:max-content;max-width:245px;text-align:center;line-height:1.15;pointer-events:none;color:#30291f;font-family:var(--heading);text-shadow:-1px -1px 1px rgb(255,243,215),1px -1px 1px rgb(255,243,215),-1px 1px 1px rgb(255,243,215),1px 1px 1px rgb(255,243,215),0 0 4px rgb(255,243,215),0 0 7px rgb(255,243,215);letter-spacing:.25px}
.place-name.district{font-family:var(--small-caps);letter-spacing:.65px;font-weight:normal}
.place-name.exit{font-style:italic;max-width:185px}
.trainer-pin{background:none;border:0;overflow:visible}
.trainer-badge{display:block;width:100%;height:25px;padding:4px 5px;text-align:center;white-space:nowrap;border:1px solid #ead7ad;border-radius:4px;background:#484258;color:#fff1cf;box-shadow:0 2px 4px #30251480;font:600 11px/15px var(--body)}
.trainer-badge::after{content:'';position:absolute;left:calc(50% - 4px);top:25px;border:4px solid transparent;border-top:7px solid #484258;border-bottom:0}
.trainer-body{width:100%;height:100%;position:relative}
.trainer-badge{position:relative;z-index:1}
.trainer-badge::after{display:none}
.trainer-leader{position:absolute;left:50%;top:32px;width:1px;background:#51455f;box-shadow:0 0 1px 1px #fff0ce;transform-origin:top center;pointer-events:none}
.trainer-body::after{content:'';position:absolute;left:calc(50% - 2px);top:30px;width:4px;height:4px;border-radius:50%;background:#51455f;box-shadow:0 0 0 1px #fff0ce;pointer-events:none}

@media(max-width:760px){.place-name{max-width:165px;letter-spacing:0}.place-name.district{letter-spacing:.3px}.trainer-badge{font-size:10px}}

/* Alignment labels use their exact anchors, with a touch/keyboard hit target. */
.aligning .place-name-anchor,.aligning .place-name{pointer-events:auto!important;cursor:grab}
.aligning .place-name{padding:6px 8px;border:1px dashed #674827;border-radius:5px;background:#f2ebdecc}
.aligning .place-name::after{content:"";position:absolute;left:50%;top:50%;width:4px;height:4px;border-radius:50%;background:#8b301f;pointer-events:none}
.aligning .place-name.selected{outline:3px solid #d0852f;background:#fff2d8;z-index:2}
.aligning .place-name-anchor:focus .place-name{outline:3px solid #d0852f}

#about{border:0;background:transparent;text-decoration:underline;font-size:10px;padding:4px;color:var(--muted-foreground)}

.alignment-label-toggle{display:flex;align-items:center;gap:8px;min-height:36px;font-size:12px;cursor:pointer}.alignment-label-toggle input{accent-color:var(--primary)}

/* Optional registry levels share the same view and map controls. */
.level-controls{position:absolute;top:137px;left:22px;z-index:550;display:flex;gap:4px;padding:4px;background:var(--card);border:1px solid var(--amber-border);border-radius:10px;box-shadow:var(--shadow);max-width:calc(100% - 78px)}
.level-controls button{min-height:44px;padding:8px 12px;font-size:12px;white-space:nowrap}
.level-controls button[aria-pressed="true"]{background:#5a3b22;border-color:var(--primary);color:#fff0cc}
#map-view-note{position:absolute;left:20px;bottom:52px;z-index:450;max-width:min(360px,calc(100% - 118px));margin:0;padding:8px 10px;border:1px solid #8b6b3f99;border-radius:6px;background:linear-gradient(115deg,#e6ce9df2,#f2e1baf2);color:#382d20;box-shadow:0 2px 8px #30251426;font:12px/1.45 var(--body);pointer-events:none}
#guide-view-note{flex-shrink:0;margin:0 0 14px;color:var(--muted-foreground);font-size:12px;line-height:1.5}
.has-view-note.embed .map-title small{display:block}
@media(max-width:760px){#map-view-note{left:14px;bottom:45px;max-width:calc(100% - 94px)}}
.embed .level-controls{top:136px;left:13px}
@media(max-width:760px){.level-controls,.embed .level-controls{top:154px;left:14px}.level-controls button{padding:8px;font-size:11px}}
/* Optional platform outlines share the atlas's ink and paper colours. */
