@font-face{font-family:Atlas;src:url('/fonts/atlas-400.woff2') format('woff2');font-weight:400;font-display:swap}@font-face{font-family:Atlas;src:url('/fonts/atlas-500.woff2') format('woff2');font-weight:500;font-display:swap}@font-face{font-family:Atlas;src:url('/fonts/atlas-600.woff2') format('woff2');font-weight:600;font-display:swap}
:root{color-scheme:light;--ink:#143f4b;--bronze:#91652f;--paper:#f4e8ce;--line:#ba9d70}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{display:grid;grid-template-rows:82px minmax(160px,1fr) 164px;background:var(--paper);color:var(--ink);font-family:Atlas,Georgia,serif}button,input{font:inherit}button{cursor:pointer;color:inherit}button:disabled{opacity:.5;cursor:default}button:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid #1285a0;outline-offset:3px}button{touch-action:manipulation}.parchment{background-color:var(--paper);background-image:radial-gradient(ellipse at 12% 70%,#cda86719,transparent 55%),radial-gradient(ellipse at 85% 20%,#fff9e980,transparent 60%),url('/grain.svg');background-size:auto,auto,180px 180px}.masthead{display:flex;align-items:center;padding:10px 25px;border-bottom:1px solid var(--bronze);z-index:3;gap:30px;box-shadow:0 2px 10px #28200d18}.brand{display:flex;align-items:center;gap:13px;border-right:1px solid var(--line);padding-right:28px;color:#765124;min-width:206px}.brand svg{width:48px;height:48px;stroke:currentColor;fill:none;stroke-width:.7}.brand span{font-size:12px;line-height:1.7;letter-spacing:2px;font-weight:600}.heading{flex:1}.heading h1{font-size:34px;font-weight:500;margin:0;line-height:1.1}.heading p{font-family:system-ui,sans-serif;font-size:9px;letter-spacing:2px;color:#89734d;margin:7px 0 0}.heading p span{padding:0 5px}.info-button{border:1px solid #866a42;border-radius:50%;height:30px;width:30px;background:none;font-size:21px;position:relative}.info-button:before{content:'';position:absolute;inset:-8px}.map-stage{position:relative;overflow:hidden;background:#198da4}#map{position:absolute;inset:0}.maplibregl-canvas{outline:none}.maplibregl-canvas:focus-visible{outline:3px solid #b58548;outline-offset:-4px}.maplibregl-canvas-container.maplibregl-interactive{cursor:crosshair}.map-vignette{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 60px #243f301c;z-index:1}#city-lettering{position:absolute;inset:0;pointer-events:none;overflow:hidden;mix-blend-mode:multiply;z-index:2}.city-name{position:absolute;top:0;left:0;white-space:nowrap;font-family:Atlas,Georgia,serif;font-weight:600;text-transform:uppercase;color:#402b16;letter-spacing:.15em;line-height:1.05;text-align:center;transform:translate(-50%,-50%);opacity:0;will-change:opacity;transition:opacity 200ms linear;text-shadow:0 0 3px #f9edcf80}.map-tools{position:absolute;top:21px;right:20px;display:flex;flex-direction:column;background:#f6ebd5ec;border:1px solid #baa078;border-radius:3px;box-shadow:0 3px 10px #17444b15;z-index:3}.map-tools button{width:44px;height:44px;font-size:27px;background:none;border:0;border-bottom:1px solid #baa07870}.map-tools button:last-child{border:0}.compass{position:absolute;left:24px;top:28px;text-align:center;color:#7b693e;opacity:.8;pointer-events:none;z-index:2}.compass span{font-size:13px;letter-spacing:1px}.compass svg{display:block;width:49px;height:49px;fill:#eee4c9;stroke:#756a4b;stroke-width:.8}.compass svg .compass-dark{fill:#6b715b;stroke:none}.map-bottom{position:absolute;left:22px;right:22px;bottom:24px;display:flex;align-items:center;justify-content:space-between;gap:10px;pointer-events:none;z-index:3}#map-status{font-family:system-ui,sans-serif;font-size:10px;letter-spacing:.08em;background:#f3e8d1dd;padding:7px 10px;border-radius:2px;color:#645432}.atlas-marker{width:30px;height:44px;cursor:grab;filter:drop-shadow(0 2px 2px #3c371e70)}.atlas-marker svg{width:100%;height:100%;display:block;overflow:visible}.maplibregl-ctrl-bottom-right{font-family:system-ui,sans-serif;font-size:10px}.maplibregl-ctrl-attrib{background:#f3e8d1d9!important}.maplibregl-ctrl-scale{font-family:system-ui,sans-serif;font-size:9px;color:#3f5246;border-color:#3f5246;background:#f3e8d1b0;margin-bottom:3px!important}#load-error{position:absolute;bottom:73px;left:50%;transform:translateX(-50%);z-index:4;background:#fff0d9;padding:12px 18px;border:1px solid #b57955;font-family:system-ui,sans-serif;font-size:12px;max-width:90%}#load-error button{border:0;background:none;text-decoration:underline;font-weight:600}.date-panel{z-index:3;border-top:1px solid var(--bronze);padding:13px 28px 6px;box-shadow:0 -2px 10px #25200d13}.date-row{display:flex;gap:28px;align-items:center;margin:0 auto;max-width:1400px}.date-display{display:flex;align-items:center;gap:9px;flex:1}.date-display button{background:none;border:0;font-size:37px;font-weight:400;line-height:1;width:44px;height:48px;color:#87581e}#year-display{display:block;min-width:205px;text-align:center;border:1px solid #a4773e;border-radius:4px;background:#fff8e638;box-shadow:inset 0 0 12px #bd9b5720;font-size:36px;line-height:48px;font-weight:500}.year-entry{display:flex;height:43px;border-left:1px solid var(--line);padding-left:28px;margin-right:auto}#year-number{width:96px;min-width:0;border:1px solid #b99c70;background:#fff8e680;color:var(--ink);padding:6px 12px;border-radius:3px 0 0 3px;font-size:26px;text-align:center;-moz-appearance:textfield}#year-number::-webkit-inner-spin-button{display:none}.era-toggle{display:flex}.era-toggle button{border:1px solid #b99c70;border-left:0;background:#fff8e640;padding:4px 17px;font-size:21px;min-width:56px}.era-toggle button:last-child{border-radius:0 3px 3px 0}.era-toggle button[aria-pressed=true]{background:linear-gradient(#957442,#75572e);color:#f8efd9}#confirm-selection{min-width:220px;border:1px solid #674c29;border-radius:4px;color:#f8efd9;background:linear-gradient(#987745,#70532e);padding:11px 21px;min-height:48px;font-size:22px;box-shadow:inset 0 0 0 1px #ffffff25}#confirm-selection span{margin-left:16px}.slider-wrap{position:relative;height:56px;max-width:1400px;margin:8px auto 0;padding:0 12px}#year-slider{position:relative;z-index:2;appearance:none;width:100%;margin:0;background:transparent;height:28px;cursor:ew-resize}#year-slider::-webkit-slider-runnable-track{height:2px;background:#9d7438}#year-slider::-webkit-slider-thumb{appearance:none;width:20px;height:20px;background:#b68031;border:2px solid #f4dbab;border-radius:50%;box-shadow:0 0 0 1px #976025,0 2px 5px #4b2d3350;margin-top:-9px}#year-slider::-moz-range-track{height:2px;background:#9d7438}#year-slider::-moz-range-thumb{width:17px;height:17px;background:#b68031;border:2px solid #f4dbab;border-radius:50%}.ruler{position:absolute;top:20px;left:22px;right:22px;height:6px;background:repeating-linear-gradient(90deg,#9f793f 0 1px,transparent 1px 7px);opacity:.7}#year-ticks{position:absolute;left:22px;right:22px;top:29px;font-size:14px;color:#6e4d29}#year-ticks span{position:absolute;transform:translateX(-50%);white-space:nowrap}#year-ticks span:first-child{transform:none}#year-ticks span:last-child{transform:translateX(-100%)}#selection-status{text-align:center;margin:0;color:#81704f;font-family:system-ui,sans-serif;font-size:10px;letter-spacing:.025em}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}dialog{color:var(--ink);background:#f4e9d1;border:1px solid #aa8855;box-shadow:0 12px 60px #112d3450;max-width:540px;width:calc(100% - 32px);max-height:85dvh;padding:32px;font-size:19px;line-height:1.45}dialog::backdrop{background:#19383a66;backdrop-filter:blur(3px)}dialog h2{font-size:36px;font-weight:500;margin:0 0 12px}dialog h3{font-size:24px;margin:20px 0 0}dialog p{margin:12px 0}dialog a{color:#12677b}dialog .close{float:right;width:44px;height:44px;border:0;background:none;font-size:30px}dialog .eyebrow{font-family:system-ui,sans-serif;letter-spacing:2px;font-size:10px;margin:4px 0 12px}.fine-print{font-family:system-ui,sans-serif;font-size:11px;line-height:1.6}
@media(min-width:1600px){.heading h1{font-size:40px}.date-row{gap:50px}}
@media(max-width:700px){body{grid-template-rows:68px minmax(160px,1fr) 185px}.masthead{padding:8px 14px;gap:13px}.brand{min-width:0;padding-right:12px;gap:0}.brand svg{width:35px;height:35px}.brand span{display:none}.heading h1{font-size:27px}.heading p{font-size:8px;letter-spacing:1.5px}.info-button{width:27px;height:27px;margin:0 5px}.compass{left:11px;top:20px}.compass svg{width:34px;height:34px}.compass span{font-size:11px}.map-tools{right:11px;top:20px}.map-tools button{width:40px;height:44px}.map-bottom{left:10px;right:10px;bottom:30px}#map-status{font-size:9px;max-width:45%;padding:5px 7px}.date-panel{padding:10px 12px 6px}.date-row{display:grid;grid-template-columns:1fr auto;gap:8px 12px}.date-display{gap:2px}.date-display button{width:30px;height:44px;font-size:30px}#year-display{min-width:0;flex:1;font-size:29px;line-height:42px}.year-entry{border:0;padding:0;height:40px;margin:0}#year-number{width:57px;font-size:22px;padding:4px}.era-toggle button{min-width:38px;font-size:18px;padding:4px 8px}#confirm-selection{grid-column:1/-1;font-size:18px;padding:6px 16px;min-height:40px;justify-self:stretch}.slider-wrap{margin-top:2px;height:48px;padding:0 8px}.ruler,#year-ticks{left:18px;right:18px}#year-ticks{font-size:12px}#year-ticks .minor-tick{display:none}#selection-status{font-size:9px;line-height:1.3}.city-name{letter-spacing:.11em}.maplibregl-ctrl-attrib{font-size:9px}dialog{padding:22px}}
@media(prefers-reduced-motion:reduce){.city-name{transition:none}*{scroll-behavior:auto!important}}

/* One visible year control; retain the output only for assistive/reveal state. */
#year-display.sr-only{position:absolute;min-width:0;width:1px;height:1px;border:0;padding:0;overflow:hidden;clip:rect(0,0,0,0)}
.date-control>label{display:block;font:10px system-ui;letter-spacing:.1em;color:#80653d;margin-bottom:4px}.date-display{gap:8px}.date-display>button{align-self:end}.year-entry{border:0;padding:0;margin:0;height:44px}#year-number{width:126px;font-size:30px;background:#fff9eb}.era-toggle button[aria-pressed=true]{background:#d4b77b;color:#3e3926}.ruler{background:none;height:10px;opacity:.8}.ruler i{position:absolute;top:0;width:1px;background:#96703a;height:3px}.ruler i.half-century{height:6px}.ruler i.century{height:9px}#year-ticks{font:11px Georgia,serif;top:33px}
@media(max-width:700px){.date-row{grid-template-columns:1fr}.date-display{justify-content:center}.year-entry{height:40px}#year-number{width:112px;font-size:28px}.date-control>label{font-size:9px}.era-toggle button{min-width:44px}#year-ticks{font-size:10px}.slider-wrap{height:49px}}
