@font-face{font-family:Fraunces;src:url('./fonts/fraunces-latin.48282a415ec22e31.woff2') format('woff2');font-weight:100 900;font-display:swap;unicode-range:U+0000-00FF,U+2000-206F,U+2212}
@font-face{font-family:Fraunces;src:url('./fonts/fraunces-latin-ext.f120089b9440f3e3.woff2') format('woff2');font-weight:100 900;font-display:swap;unicode-range:U+0100-024F,U+1E00-1EFF}
@font-face{font-family:Source;src:url('./fonts/source-serif-latin.2a24bad466f09b88.woff2') format('woff2');font-weight:200 900;font-display:swap;unicode-range:U+0000-00FF,U+2000-206F,U+2212}
@font-face{font-family:Source;src:url('./fonts/source-serif-ext.a0cd390d017200f9.woff2') format('woff2');font-weight:200 900;font-display:swap;unicode-range:U+0100-024F,U+1E00-1EFF}
:root{--bg:#edf3f2;--ink:#142e3a;--muted:#46616b;--line:#a8bcc0;--water:#90c2d2;--land:#d8e4dd;--road:#a7b8af;--park:#bad0b5;--accent:#825719;--panel:#f7f9f5;--bar:3.5rem;color-scheme:light}
:root[data-theme=dark]{--bg:#102833;--ink:#e1eeec;--muted:#adc4ca;--line:#48616b;--water:#326b81;--land:#23414a;--road:#4e6e72;--park:#345b52;--accent:#efd19b;--panel:#183641;color-scheme:dark}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:4.5rem}body{margin:0;background:var(--bg);color:var(--ink);font:1.15rem/1.6 Source,Georgia,serif}a{color:inherit;text-underline-offset:.2em}button{font:inherit;color:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}button{border:1px solid var(--line);background:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.skip{position:fixed;top:-100px;background:var(--panel);padding:1rem;z-index:30}.skip:focus{top:0}.topbar{position:sticky;top:0;z-index:20;height:var(--bar);display:flex;align-items:center;justify-content:space-between;padding:0 3vw;background:var(--bg);border-bottom:1px solid var(--line);font: .9rem/1.2 system-ui,sans-serif}.topbar a{text-decoration:none;padding:.7rem .4rem}.topbar nav{display:flex;align-items:center;gap:.5rem}.theme{width:44px;height:44px;border:0;font-size:1.4rem}.progress{position:fixed;top:calc(var(--bar) - 2px);left:0;height:2px;width:100%;background:var(--accent);transform:scaleX(0);transform-origin:left;z-index:25}.hero{max-width:1250px;margin:auto;padding:3.5rem 2.5rem 2rem;display:grid;grid-template-columns:1.8fr 1fr;gap:3rem;align-items:end}.kicker,.eyebrow,.plate-head,.micro{font:.73rem/1.5 system-ui,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}h1,h2{font-family:Fraunces,Georgia,serif;letter-spacing:-.035em;font-weight:560;line-height:1.08}h1{font-size:3.8rem;margin:.6rem 0 1rem;max-width:900px}h2{font-size:2.6rem;margin:.8rem 0 1.2rem}h3{font:600 1.3rem/1.3 Fraunces,serif}.deck{font-size:1.3rem;margin:0}.hero-note{font:.9rem/1.5 system-ui,sans-serif;color:var(--muted);border-left:1px solid var(--line);padding-left:1.3rem}.share{max-width:1170px;margin:0 auto 2rem;display:flex;align-items:center;gap:.5rem;font:.85rem system-ui,sans-serif;padding:0 1rem}.share a,.share button{width:40px;height:40px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;text-decoration:none}.share svg{width:17px;height:17px}.status{font-size:.85rem}.share input{max-width:200px}.sequence{max-width:1600px;margin:auto;padding:0 2.5rem;display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,1fr);gap:3.5rem;align-items:start}.stage{position:sticky;top:calc(var(--bar) + 1rem);margin:0}.document-pair{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);background:var(--panel)}.plate{min-width:0;position:relative;margin:0}.plate+.plate{border-left:1px solid var(--line)}.plate-head{padding:.8rem 1rem;border-bottom:1px solid var(--line);letter-spacing:.05em;color:var(--ink)}.plate-visual{position:relative;height:390px;overflow:hidden}.historic-img{width:100%;height:100%;object-fit:contain;background:#e8e5d8;transition:opacity .35s}.historic-img.ghost{opacity:.3}.modern-svg{width:100%;height:100%;display:block;background:var(--land)}.map-land{fill:var(--land)}.map-water{fill:var(--water);stroke:var(--water)}.map-road{fill:none;stroke:var(--road);stroke-width:1}.map-building{fill:var(--road);opacity:.5}.map-park{fill:var(--park)}.map-river{fill:none;stroke:var(--water);stroke-width:2}.map-pin{fill:var(--accent);stroke:var(--panel);stroke-width:3}.lbl{margin-left:0;font:13px system-ui,sans-serif;fill:var(--ink);paint-order:stroke;stroke:var(--land);stroke-width:4px;stroke-linejoin:round}.map-water-label{font:italic 22px Source,serif;fill:var(--ink)}.historic-labels{position:absolute;inset:0;pointer-events:none}.tag{position:absolute;background:#142e3a;color:#fff;font:.7rem/1.2 system-ui,sans-serif;padding:.25rem .4rem}.tag.old{left:18%;top:43%}.tag.new{right:4%;top:52%}.tag.river{left:30%;bottom:17%}.tag.ghost-label{left:8%;top:10%;display:none}.stage[data-state='3'] .tag.old,.stage[data-state='3'] .tag.new,.stage[data-state='4'] .tag.old,.stage[data-state='4'] .tag.new{display:none}.stage[data-state='4'] .ghost-label,.stage[data-state='5'] .ghost-label{display:block}.stage[data-state='2'] .tag.old{top:35%}.stage[data-state='2'] .tag.new{top:42%}.stage[data-state='2'] .tag.river{bottom:31%}.stage[data-state='5'] .tag.old,.stage[data-state='5'] .tag.new{display:none}.pair-limit{font:.77rem/1.4 system-ui,sans-serif;color:var(--muted);margin:.65rem 0}.stepnav{display:flex;gap:0;flex-wrap:wrap;border-bottom:1px solid var(--line);margin-bottom:.4rem}.stepnav a{font:.79rem/1.2 system-ui,sans-serif;text-decoration:none;padding:.8rem .7rem;border-bottom:2px solid transparent;min-height:44px}.stepnav a[aria-current=step]{border-color:var(--accent);color:var(--accent)}.phase-strip{font:.82rem/1.4 system-ui,sans-serif;border-left:3px solid var(--accent);padding:.4rem .8rem;min-height:2.4rem}.step{min-height:85vh;padding:2.8rem 0 5rem;scroll-margin-top:4.5rem}.step p{max-width:37rem}.step h2 a{text-decoration:none}.source-ref{font:.8rem system-ui,sans-serif;color:var(--muted)}.timeline{padding-left:0;list-style:none;border-top:1px solid var(--line)}.timeline li{display:grid;grid-template-columns:85px 1fr;gap:1rem;padding:.6rem 0;border-bottom:1px solid var(--line);font:1rem/1.4 Source,serif}.timeline time{font:.9rem system-ui,sans-serif;color:var(--accent)}.groups{display:flex;flex-direction:column;gap:.4rem;font:.85rem/1.5 system-ui,sans-serif}.groups b{display:inline-block;min-width:65px}.groups span{white-space:normal}.exterior{margin:1.7rem 0}.exterior img{width:100%;height:auto}.credit{font:.76rem/1.5 system-ui,sans-serif;color:var(--muted);margin-top:.6rem}.below{max-width:1170px;margin:4rem auto;padding:0 2.5rem}.reading{max-width:720px}.literary{border-top:1px solid var(--line);padding-top:3rem}blockquote{font:500 2rem/1.3 Fraunces,serif;margin:1.8rem 0;color:var(--accent)}.plates{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem}.plates figure{margin:0}.plates img{width:100%;height:350px;object-fit:contain;background:#e8e5d8}.plates figcaption{margin-top:.5rem;font-size:1rem}details{border-top:1px solid var(--line);padding:1rem 0}summary{cursor:pointer;min-height:44px;font:500 1.2rem Fraunces,serif}.sources-list{padding-left:1.2rem}.sources-list li{margin:1rem 0}.footer{border-top:1px solid var(--line);padding:2rem 2.5rem;font:.85rem/1.5 system-ui,sans-serif;display:flex;justify-content:space-between;gap:1rem}.to-top{position:fixed;bottom:1rem;right:1rem;border-radius:50%;width:48px;height:48px;background:var(--panel);font:.8rem system-ui,sans-serif;z-index:21}.to-top[hidden]{display:none}.no-js-note{font-size:.85rem}.js-ready .no-js-note{display:none}
@media(min-width:1500px){.plate-visual{height:470px}}@media(max-width:1100px){.sequence{gap:2rem;padding:0 1.5rem;grid-template-columns:minmax(0,1.3fr) minmax(300px,1fr)}.plate-visual{height:330px}.hero{padding:2.5rem 1.5rem;gap:2rem}h1{font-size:3.1rem}h2{font-size:2.1rem}}
@media(max-width:760px){body{font-size:1.08rem}.hero{display:block;padding:2rem 1.1rem 1rem}h1{font-size:2.45rem}.deck{font-size:1.15rem}.hero-note{border-left:0;padding:0;margin-top:1rem;font-size:.8rem}.share{margin-bottom:1.2rem}.share a,.share button{width:44px;height:44px}.sequence{display:block;padding:0 1rem}.stage{top:var(--bar);z-index:10;background:var(--bg);padding-top:.4rem}.plate-visual{height:210px}.plate-head{font-size:.65rem;padding:.45rem .5rem}.tag{font-size:.6rem}.stepnav{margin:0}.stepnav a{padding:.75rem .43rem;font-size:.7rem}.pair-limit{font-size:.68rem;margin:.3rem 0;line-height:1.35}.phase-strip{font-size:.72rem;min-height:1.7rem;padding:.2rem .5rem}.step{min-height:90vh;padding:2rem 0 3rem;scroll-margin-top:390px}.step h2{font-size:2rem}.below{padding:0 1.1rem;margin:3rem auto}.below h2{font-size:2rem}.plates{display:block}.plates figure{margin-bottom:2rem}.plates img{height:auto;max-height:430px}.footer{padding:2rem 1.1rem;display:block}.footer a{display:inline-block;margin-top:1rem}.topbar{padding:0 .7rem}.topbar .jump{display:none}.lbl{font-size:18px}.map-water-label{font-size:25px}.step p{margin:.85rem 0}.source-ref{font-size:.75rem}}
@media(max-height:700px) and (min-width:761px){.plate-visual{height:280px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
/* Labels follow the displayed document's aspect ratio, not the panel box. */
.historic-labels{inset:auto 0 auto 0;top:50%;height:auto;aspect-ratio:1006/870;transform:translateY(-50%)}
.tag.old{left:25%;top:43%}.tag.new{left:46%;right:auto;top:49%}.tag.river{left:38%;top:57%;bottom:auto}
.stage[data-state='2'] .historic-labels{aspect-ratio:3696/2633}
.stage[data-state='2'] .tag.old{left:28%;top:35%}.stage[data-state='2'] .tag.new{left:53%;top:42%}.stage[data-state='2'] .tag.river{left:30%;top:58%;bottom:auto}
.stage[data-state='3'] .historic-labels,.stage[data-state='4'] .historic-labels{aspect-ratio:1044/1149}
.stage[data-state='3'] .tag.river,.stage[data-state='4'] .tag.river{top:82%;left:38%}
/* Keep the three orientation labels in distinct documented sectors. */
.tag.old{top:38%}.tag.new{top:49%}.tag.river{left:67%;top:74%}
.stage[data-state='2'] .tag.river{left:30%;top:58%}
.stage[data-state='3'] .tag.river,.stage[data-state='4'] .tag.river{left:38%;top:82%}
@media(max-width:760px){#phases,#exterior-photo{scroll-margin-top:390px}}
