:root{color-scheme:dark;--ink:#e7e6df;--muted:#9da8a4;--gold:#c9a66b;--bg:#101619;--panel:rgba(17,24,27,.91);--rule:rgba(230,232,219,.16);--sans:'DM Sans',sans-serif;--serif:'Playfair Display',Georgia,serif;--mono:'DM Mono',monospace}*{box-sizing:border-box}html,body{height:100%;margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans)}body{overflow:hidden}.shell{height:100dvh;min-height:600px;position:relative;overflow:hidden;background:#101619}#map{position:absolute;inset:0;z-index:0;background:radial-gradient(ellipse at 50% 40%,#263438 0,#131b1e 50%,#101619 100%)}.map-vignette{position:absolute;z-index:1;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(12,18,20,.57) 0,rgba(12,18,20,.18) 36%,transparent 63%),linear-gradient(0deg,rgba(10,15,16,.6),transparent 24%,transparent 82%,rgba(10,15,16,.35))}.topbar{height:78px;position:absolute;z-index:5;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:0 4.1vw;border-bottom:1px solid rgba(255,255,255,.075);background:linear-gradient(180deg,rgba(14,20,22,.83),rgba(14,20,22,.32));font-family:var(--mono);font-size:10px;letter-spacing:.13em}.wordmark{display:flex;gap:11px;align-items:center;color:var(--ink);text-decoration:none}.sigil{font-size:19px;line-height:1;color:var(--gold)}.wordmark i{font-style:normal;color:var(--gold)}.edition{position:absolute;left:50%;transform:translateX(-50%);color:#c5ccc5}.edition span{color:var(--gold);padding:0 7px}.about-trigger{color:var(--ink);font:inherit;letter-spacing:.05em;background:none;border:0;cursor:pointer}.about-trigger span{color:var(--gold);margin-left:8px}main{position:absolute;inset:78px 0 154px;z-index:2}.masthead{position:absolute;top:9.2%;left:4.1vw;width:min(36vw,440px);z-index:2}.eyebrow,.filter-label,.map-legend,.timeline-kicker,.timeline-foot,.scrub-start,.scrub-end,.event-count,.card-index,.voice-tag,.place-label,.date-label,.quote-credit,.card-bottom>span,.edition,.north-mark,.map-credit{font-family:var(--mono);text-transform:uppercase;letter-spacing:.12em}.eyebrow{font-size:10px;color:#bbc4bd;display:flex;align-items:center;gap:10px}.eyebrow-line{width:23px;height:1px;background:var(--gold)}h1{font:600 clamp(40px,5vw,72px)/1.02 var(--serif);letter-spacing:-.045em;margin:23px 0 4px;color:#f0eee6}.subhead{font:500 clamp(15px,1.5vw,20px) var(--serif);font-style:italic;color:#d1bb93}.intro{font-size:14px;line-height:1.65;color:#bdc6c0;max-width:340px;margin:21px 0 23px}.filter-row{display:flex;align-items:center;gap:9px}.filter-label{font-size:9px;color:#9ba7a2}.filter-row select{border:1px solid rgba(220,229,220,.24);background:rgba(17,24,27,.72);color:#e0e5df;border-radius:3px;padding:8px 25px 8px 10px;font:12px var(--sans);outline:0;max-width:145px}.filter-row select:focus{border-color:var(--gold)}.theme-label{margin-left:8px}.map-legend{display:flex;gap:17px;margin-top:22px;color:#b1bbb4;font-size:8px;letter-spacing:.07em}.map-legend span{display:flex;align-items:center;gap:7px}.legend-dot{width:7px;height:7px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 3px rgba(201,166,107,.16)}.legend-ring{width:10px;height:10px;border:1px dashed var(--gold);border-radius:50%}.event-card{position:absolute;z-index:4;right:4.1vw;top:8.5%;width:min(365px,31vw);min-height:420px;padding:24px 25px 18px;background:linear-gradient(150deg,rgba(21,30,32,.96),rgba(13,19,21,.93));border:1px solid rgba(219,222,207,.2);box-shadow:0 22px 55px rgba(0,0,0,.28);backdrop-filter:blur(14px);display:flex;flex-direction:column}.card-top{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--rule);padding-bottom:14px}.card-index{color:#99a59e;font-size:9px}.voice-tag{font-size:8px;color:var(--gold);border:1px solid rgba(201,166,107,.42);padding:5px 7px;border-radius:2px}.place-label{font-size:9px;color:#9eaca5;margin-top:22px;line-height:1.5}.event-card h2{font:600 27px/1.2 var(--serif);letter-spacing:-.025em;margin:9px 0 8px;color:#f0eee6}.date-label{font-size:9px;line-height:1.7;color:#bfaa82;text-transform:none;letter-spacing:.01em}.event-summary{font-size:13px;line-height:1.65;color:#c2cbc4;margin:17px 0 14px}.event-card blockquote{font:italic 17px/1.5 var(--serif);color:#e4d5b5;border-left:1px solid var(--gold);padding:2px 0 2px 13px;margin:0 0 8px}.quote-credit{font-size:8px;color:#8f9b95;margin-left:14px}.card-bottom{margin-top:auto;padding-top:17px;display:flex;justify-content:space-between;align-items:end;border-top:1px solid var(--rule)}.card-bottom>span{font-size:8px;color:#94a09a}.card-nav{display:flex;gap:7px}.card-nav button,.map-tools button,.play-button{background:rgba(233,236,220,.06);color:#e7e6df;border:1px solid rgba(233,236,220,.18);cursor:pointer}.card-nav button{width:32px;height:30px;font-size:16px}.card-nav button:hover,.map-tools button:hover,.play-button:hover{border-color:var(--gold);color:var(--gold)}.map-tools{position:absolute;z-index:4;left:4.1vw;bottom:28px;display:flex;flex-direction:column;gap:6px}.map-tools button{height:34px;width:35px;font-size:18px;background:rgba(16,23,25,.74);backdrop-filter:blur(8px)}.north-mark{position:absolute;right:4.5vw;bottom:29px;z-index:2;display:flex;flex-direction:column;align-items:center;gap:1px;color:#c4c9bf;font-size:8px}.north-mark b{font-size:17px;font-family:var(--sans);font-weight:400;color:var(--gold)}.timeline{position:absolute;z-index:5;left:0;right:0;bottom:0;height:154px;background:linear-gradient(180deg,rgba(18,25,27,.92),rgba(14,20,22,.98));border-top:1px solid rgba(231,230,220,.2);padding:21px 4.1vw 14px;backdrop-filter:blur(18px)}.timeline-topline{display:flex;justify-content:space-between;align-items:center}.timeline-title{display:flex;align-items:baseline;gap:16px}.timeline-kicker{font-size:9px;color:#9fa9a2}.timeline-current{font:500 13px var(--serif);color:#e6ddc9}.timeline-actions{display:flex;align-items:center;gap:18px}.event-count{font-size:8px;color:#929e98}.play-button{padding:8px 12px;display:flex;align-items:center;gap:9px;font:9px var(--mono);letter-spacing:.1em}.play-icon{font-size:9px;color:var(--gold)}.scrubber-wrap{position:relative;margin:18px 0 7px;display:flex;align-items:center;gap:12px}.scrub-start,.scrub-end{font-size:8px;color:#87948d;white-space:nowrap}input[type=range]{appearance:none;width:100%;height:18px;background:transparent;cursor:pointer}input[type=range]::-webkit-slider-runnable-track{height:2px;background:linear-gradient(90deg,var(--gold) 0%,rgba(218,224,206,.27) 100%)}input[type=range]::-moz-range-track{height:2px;background:rgba(218,224,206,.27)}input[type=range]::-moz-range-progress{height:2px;background:var(--gold)}input[type=range]::-webkit-slider-thumb{appearance:none;width:13px;height:13px;border-radius:50%;background:#d7bc87;border:3px solid #182123;box-shadow:0 0 0 1px #d7bc87;margin-top:-5.5px}input[type=range]::-moz-range-thumb{width:9px;height:9px;border-radius:50%;background:#d7bc87;border:3px solid #182123;box-shadow:0 0 0 1px #d7bc87}.timeline-foot{display:flex;justify-content:space-between;color:#687770;font-size:8px}.map-credit{position:absolute;z-index:2;bottom:166px;right:4.1vw;font-size:7px;letter-spacing:.07em;color:rgba(226,230,222,.48)}.pin-wrap{width:24px;height:24px;display:grid;place-items:center;cursor:pointer;transition:transform .2s ease;filter:drop-shadow(0 2px 5px rgba(0,0,0,.55))}.pin-wrap:hover{transform:scale(1.25)}.pin-core{position:relative;width:10px;height:10px;border-radius:50%;background:#d4b679;border:2px solid #182326;box-shadow:0 0 0 1px #d4b679}.pin-wrap.region .pin-core{background:rgba(201,166,107,.24);border:1px dashed #dfc58e;box-shadow:0 0 0 1px rgba(223,197,142,.65)}.pin-wrap.active .pin-core{width:15px;height:15px;background:#f1d79f;box-shadow:0 0 0 5px rgba(201,166,107,.24),0 0 19px rgba(201,166,107,.7)}.pin-wrap.past{opacity:.56}.pin-wrap.future{opacity:.28}.pin-count{position:absolute;left:15px;top:-1px;color:#f0e4c7;font:8px var(--mono);white-space:nowrap;text-shadow:0 1px 5px #000}.maplibregl-ctrl-bottom-right,.maplibregl-ctrl-bottom-left{display:none}.maplibregl-canvas{outline:none}.maplibregl-popup-content{font:12px var(--sans);background:#151e20;color:#e8e7df;border:1px solid rgba(201,166,107,.42);border-radius:2px;padding:9px 12px;box-shadow:0 8px 24px #0008}.maplibregl-popup-tip{border-top-color:#151e20}.modal-backdrop{position:fixed;z-index:20;inset:0;background:rgba(5,9,10,.77);display:grid;place-items:center;padding:20px}.modal-backdrop[hidden]{display:none}.about-modal{width:min(590px,100%);max-height:88vh;overflow:auto;padding:38px 42px 34px;background:#172124;border:1px solid rgba(220,221,207,.22);box-shadow:0 25px 90px #0009;position:relative}.modal-close{position:absolute;right:18px;top:13px;background:none;border:0;color:#aeb9b2;font-size:26px;cursor:pointer}.about-modal h2{font:600 34px var(--serif);margin:14px 0 17px}.about-modal p{font:14px/1.75 var(--sans);color:#bec8c1}.sources{border-top:1px solid var(--rule);margin-top:25px;padding-top:18px}.sources h3{font:9px var(--mono);letter-spacing:.15em;color:var(--gold)}.sources a{color:#dfc28d;text-underline-offset:3px}.sources .source-note{font-size:12px;color:#89968f}.map-loading{position:absolute;z-index:2;right:50%;top:50%;transform:translate(50%,-50%);font:9px var(--mono);letter-spacing:.15em;color:#aeb9b2}.map-error{color:#d9c59d}
@media(max-width:1000px){.masthead{left:3vw;width:34vw}.event-card{right:3vw;width:35vw;padding:20px}.event-card h2{font-size:24px}.intro{max-width:300px}.filter-row{flex-wrap:wrap}.map-tools{left:3vw}.timeline{padding-left:3vw;padding-right:3vw}}
@media(max-width:700px){body{overflow:hidden}.shell{min-height:620px}.topbar{height:60px;padding:0 18px}.edition{display:none}.about-trigger{font-size:10px}main{inset:60px 0 214px}.map-vignette{background:linear-gradient(90deg,rgba(12,18,20,.4),transparent 65%),linear-gradient(0deg,rgba(10,15,16,.42),transparent 34%,rgba(10,15,16,.15))}.masthead{top:5%;left:18px;width:calc(100% - 36px);pointer-events:none}.eyebrow{font-size:8px}h1{font-size:42px;margin:12px 0 2px}.subhead{font-size:14px}.intro{display:none}.filter-row{pointer-events:auto;margin-top:12px;gap:6px}.filter-label{font-size:8px}.filter-row select{font-size:11px;padding:6px 22px 6px 8px;max-width:135px}.theme-label{margin-left:4px}.map-legend{display:none}.event-card{top:auto;right:12px;bottom:14px;left:12px;width:auto;min-height:0;padding:14px 16px 12px;max-height:46%;overflow:auto;background:rgba(17,24,27,.93)}.card-top{padding-bottom:9px}.place-label{font-size:8px;margin-top:12px}.event-card h2{font-size:22px;margin:5px 0}.date-label{font-size:8px}.event-summary{font-size:12px;line-height:1.5;margin:10px 0}.event-card blockquote{font-size:15px;line-height:1.4}.quote-credit{font-size:7px}.card-bottom{padding-top:9px;margin-top:12px}.map-tools{left:auto;right:15px;bottom:calc(46% + 26px);gap:4px}.map-tools button{height:30px;width:31px}.north-mark{display:none}.timeline{height:214px;padding:15px 18px 12px}.timeline-topline{align-items:flex-start}.timeline-title{display:flex;flex-direction:column;gap:5px}.timeline-kicker{font-size:8px}.timeline-current{font-size:11px;max-width:190px}.timeline-actions{gap:8px;flex-direction:column-reverse;align-items:flex-end}.event-count{font-size:7px}.play-button{padding:7px 9px;font-size:8px}.scrubber-wrap{margin:21px 0 9px;gap:6px}.scrub-start,.scrub-end{font-size:7px}.timeline-foot{font-size:7px}.map-credit{bottom:220px;right:18px;font-size:6px}.about-modal{padding:31px 23px 25px}.about-modal h2{font-size:29px}.about-modal p{font-size:13px}}
@media(max-height:730px) and (min-width:701px){.masthead{top:7%}.intro{margin:14px 0}.event-card{top:5%;min-height:390px}.timeline{height:140px;padding-top:16px}main{bottom:140px}.map-credit{bottom:151px}}
/* A sharper, more electric print palette, drawn from the supplied Frankenstein cover. */
:root{--gold:#efbd56;--ink:#f1eee4;--muted:#adb4ad;--red:#c94d36;--panel:rgba(12,17,18,.95)}
.sigil{color:#efbd56;text-shadow:1px 1px 0 #a93f31}.topbar{border-bottom-color:rgba(239,189,86,.2)}.event-card{border-top:2px solid var(--gold);border-radius:0;box-shadow:8px 8px 0 rgba(201,77,54,.11),0 24px 60px #0007}.event-card h2{color:#fff3d1}.voice-tag{color:#f1ca77;border-color:rgba(239,189,86,.62)}.pin-wrap.active .pin-core{box-shadow:0 0 0 5px rgba(239,189,86,.27),0 0 0 8px rgba(201,77,54,.28),0 0 21px rgba(239,189,86,.82)}.card-nav button,.map-tools button,.play-button{border-radius:0}.play-button{border-color:rgba(239,189,86,.43)}.timeline{border-top:2px solid rgba(239,189,86,.66)}.scrub-end,.play-icon{color:#efbd56}

/* Interaction and viewport repair. Keep the map surface free of hit-test overlays. */
.shell{min-height:0}main{pointer-events:none}.event-card,.map-tools,.filter-row{pointer-events:auto}.masthead{pointer-events:none}.pin-wrap{padding:0;border:0;background:transparent;width:40px;height:40px}.pin-wrap:hover{transform:none}.pin-wrap:hover .pin-core{box-shadow:0 0 0 6px #efbd5638}.pin-wrap.future{opacity:.5}.pin-count{left:26px;top:2px;background:#142024;border:1px solid #b99d63;border-radius:9px;padding:2px 4px;font-size:10px}.event-card{min-height:0;max-height:95%;overflow:auto}.event-summary{font-size:14px}.date-label,.quote-credit,.card-index,.voice-tag,.place-label{font-size:10px}.card-bottom{margin-top:16px;align-items:center}.card-nav button,.map-tools button{min-width:40px;min-height:40px}.timeline{height:160px}.timeline-title{min-width:0;flex-direction:column;gap:6px}.timeline-current{font-size:15px}.timeline-kicker{font-size:10px}.play-button{min-height:44px;font-size:11px}.timeline-actions{flex-shrink:0}.scrubber-wrap{margin:8px 0 3px}input[type=range]{height:38px;touch-action:pan-y}input[type=range]::-webkit-slider-runnable-track{height:5px;background:linear-gradient(to right,var(--gold) var(--progress,0%),#59615b var(--progress,0%))}input[type=range]::-webkit-slider-thumb{width:23px;height:23px;margin-top:-9px}input[type=range]::-moz-range-track,input[type=range]::-moz-range-progress{height:5px}input[type=range]::-moz-range-thumb{width:17px;height:17px}.timeline-foot{font-size:9px;color:#a6afa6}.scrub-start,.scrub-end{font-size:9px}main{bottom:160px}.map-credit{bottom:169px}.event-count{font-size:10px}.location-events{margin:12px 0 0;display:flex;flex-wrap:wrap;gap:6px}.location-events button{background:#223034;border:1px solid #60706b;color:#e7e6df;font:11px var(--sans);padding:7px 10px;cursor:pointer}.location-events button[aria-current=true]{border-color:var(--gold);color:var(--gold)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #efbd56;outline-offset:4px}button:disabled,input:disabled{opacity:.4;cursor:default}.about-modal a{color:var(--gold)}
@media(max-width:700px){.shell{min-height:0}.topbar{height:48px}.masthead{top:12px}h1{font-size:32px;margin:6px 0 2px}.masthead .eyebrow{display:none}.subhead{font-size:12px}.filter-row{margin-top:9px}.filter-row select{min-height:34px;font-size:12px}.filter-label{display:none}.timeline{height:156px;padding:10px 14px max(8px,env(safe-area-inset-bottom))}.timeline-current{font-size:12px;max-width:215px;max-height:32px;overflow:hidden}.timeline-kicker{font-size:9px}.timeline-actions{flex-direction:row}.event-count{display:none}.play-button{padding:8px;font-size:10px}.scrubber-wrap{margin:6px 0 0}.timeline-foot{font-size:8px}.scrub-start,.scrub-end{font-size:8px}main{inset:48px 0 156px}.event-card{left:12px;right:12px;bottom:12px;max-height:38%;padding:12px 14px}.event-card h2{font-size:21px}.card-top{padding-bottom:6px}.place-label{margin-top:10px}.event-summary{font-size:14px;line-height:1.6}.date-label,.quote-credit{font-size:10px}.map-tools{top:126px;bottom:auto;right:12px}.map-credit{bottom:159px;font-size:6px}.map-legend{display:none}}
@media(max-height:600px){.masthead{top:12px}.intro,.subhead,.masthead .eyebrow,.map-legend{display:none}h1{font-size:30px;margin:0 0 10px}.timeline{height:128px;padding-top:8px}main{bottom:128px}.event-card{top:12px;bottom:12px;max-height:calc(100% - 24px)}.map-credit{bottom:131px}.timeline-foot{display:none}.map-tools{bottom:12px;top:auto}}
@media(max-height:600px) and (max-width:700px){.masthead{width:45%;left:12px}.filter-row{max-width:170px}.event-card{left:auto;width:47%;right:10px}.map-tools{left:12px;right:auto}.timeline-current{max-width:60vw}.topbar{height:40px}main{top:40px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}

/* MapLibre positions marker roots with transform on every frame; never transition that property. */
.maplibregl-marker.pin-wrap{transition:none!important;will-change:transform}
.maplibregl-marker.pin-wrap .pin-core{transition:box-shadow .14s ease,background-color .14s ease}
