:root{--paper:#f1eee5;--light:#faf8f2;--ink:#202722;--muted:#657068;--pine:#26453b;--rust:#a4533a;--ochre:#c29b50;--line:#c7c1b3;--shadow:#2a312b24}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font-family:"Helvetica Neue",Arial,sans-serif}
.skip-link{position:fixed;top:-60px;left:12px;z-index:100;background:var(--ink);color:#fff;padding:12px}
.skip-link:focus{top:12px}
.masthead{padding:32px clamp(20px,5vw,72px) 25px;display:grid;grid-template-columns:minmax(420px,1.1fr) 1fr;gap:20px 70px;align-items:end}
.eyebrow{margin:0 0 12px;text-transform:uppercase;letter-spacing:.17em;font-size:10px;font-weight:700;color:#687169}
.masthead h1{font:600 clamp(43px,6vw,76px)/.88 Georgia,serif;margin:0;letter-spacing:-.052em}
.masthead h1 i{display:block;font-weight:400;color:var(--rust)}
.deck{font:18px/1.5 Georgia,serif;max-width:510px;margin:0;color:#3f4a43}
.map-shell{margin:0 clamp(12px,3vw,42px) 56px;border:1px solid var(--line);background:#dad5c8;box-shadow:0 14px 45px var(--shadow)}
.map-toolbar{height:58px;background:var(--light);display:flex;align-items:center;justify-content:space-between;padding:0 15px 0 20px;border-bottom:1px solid var(--line)}
.year-heading{display:flex;align-items:baseline;gap:9px}
.quiet-label{font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:var(--muted)}
.year-heading strong{font:30px Georgia,serif;color:var(--rust)}
#date-display{font-size:11px;color:var(--muted)}
.toolbar-actions{display:flex;gap:8px;align-items:center}
.status{font-size:11px;color:var(--muted);margin-right:7px}
.status>span{display:inline-block;width:7px;height:7px;border-radius:50%;background:#708f73;margin-right:6px}
.status.unavailable>span{background:var(--rust)}
.tool-button,.icon-button{border:1px solid var(--line);background:#f7f4ec;color:var(--ink);border-radius:3px;padding:8px 12px;cursor:pointer;font-size:12px}
.tool-button:hover,.tool-button[aria-pressed="true"]{background:var(--pine);color:#fff;border-color:var(--pine)}
.tool-button:disabled{opacity:.45;cursor:not-allowed}
.map-layout{display:grid;grid-template-columns:224px minmax(0,1fr) 280px;min-height:590px}
.layers-panel,.details-panel{background:var(--light);padding:19px;border-right:1px solid var(--line);z-index:5}
.details-panel{border-right:0;border-left:1px solid var(--line);overflow:auto;max-height:650px}
.panel-title{font-size:10px;text-transform:uppercase;letter-spacing:.15em;font-weight:700;color:var(--muted);margin-bottom:14px;display:flex;justify-content:space-between}
.layer-row{display:grid;grid-template-columns:18px 22px 1fr;gap:8px;align-items:start;padding:9px 0;border-bottom:1px solid #d8d2c6;cursor:pointer;font-size:12px}
.layer-row input{accent-color:var(--pine);margin:1px 0}
.layer-row small{display:block;color:#7a817b;font-size:10px;margin-top:3px}
.swatch{display:block;width:20px;height:12px}
.swatch.aerial{background:linear-gradient(135deg,#8b8a81,#d1cabb)}
.swatch.parcel{border:2px solid #fff;box-shadow:0 0 0 1px var(--pine)}
.swatch.observation{background:#668d77aa;border:1px solid #26453b}
.swatch.corridor{height:3px;background:var(--rust);margin-top:6px}
.swatch.landmark{width:10px;height:10px;border-radius:50%;background:var(--ochre);border:2px solid white;box-shadow:0 0 0 1px #72582b;margin-left:5px}
.legend{font-size:10px;line-height:1.5;margin-top:25px}
.legend>div:not(.panel-title){margin:7px 0}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:8px}
.persistent{background:#477663}
.variation{background:#c29b50}
.uncertain{background:#b66c48}
.inconclusive{background:#8a8b89}
.map-note{font:italic 11px/1.45 Georgia,serif;color:#6a716b;margin:22px 0 0}
.map{min-width:0;height:650px;position:relative;overflow:hidden;background:#d7d1c1;touch-action:none;cursor:grab}
.map.dragging{cursor:grabbing}
.map svg{display:block;width:100%;height:100%;user-select:none}
.feature{cursor:pointer;vector-effect:non-scaling-stroke;transition:fill-opacity .15s,stroke-width .15s}
.feature:hover,.feature:focus{stroke:#fff!important;stroke-width:4!important;fill-opacity:.65!important;outline:none}
.parcel-shape{fill:#ffffff09;stroke:#f8f3df;stroke-width:4;filter:drop-shadow(0 0 2px #17231e);stroke-dasharray:10 4;pointer-events:stroke}
.observation-shape{stroke-width:1.7}
.corridor-shape{fill:none;stroke:var(--rust);stroke-width:7}
.landmark-shape{fill:var(--ochre);stroke:#fff7db;stroke-width:3}
.parcel-label{font:bold 16px Arial;fill:#fff;text-anchor:middle;paint-order:stroke;stroke:#293a32;stroke-width:4;pointer-events:none;letter-spacing:.04em}
.map-controls{position:absolute;right:12px;top:12px;display:grid;gap:3px}
.map-controls button{width:34px;height:34px;border:1px solid #7a7b744f;background:#fbf8efeb;color:#29352f;font-size:20px;cursor:pointer}
.map-controls button:last-child{font-size:15px}
.north-arrow{position:absolute;right:17px;bottom:15px;color:#fff;text-shadow:0 1px 3px #000;display:grid;place-items:center;font:700 10px Arial}
.north-arrow i{width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:24px solid #fff;margin-top:3px;filter:drop-shadow(0 1px 2px #000)}
.map-message{position:absolute;left:50%;top:18px;transform:translateX(-50%);padding:9px 13px;background:#f8f4e9e8;border:1px solid var(--line);font-size:11px}
.compare-divider{position:absolute;top:0;bottom:0;left:50%;width:44px;transform:translateX(-50%);background:transparent;cursor:ew-resize;touch-action:none;z-index:4}
.compare-divider:before{content:"";position:absolute;top:0;bottom:0;left:50%;width:3px;transform:translateX(-50%);background:#fff;box-shadow:0 0 0 1px #26352d,0 0 12px #0008}
.compare-divider span{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:38px;height:38px;border-radius:50%;background:#f8f5ed;border:1px solid #435148;box-shadow:0 2px 8px #0004;pointer-events:none}
.compare-divider span:after{content:"↔";position:absolute;inset:0;display:grid;place-items:center;color:#34463d}
.compare-range{position:absolute;left:6%;bottom:22px;width:88%;opacity:.01;cursor:ew-resize}
.compare-labels{position:absolute;inset:15px 60px auto 15px;justify-content:space-between;pointer-events:none}
.compare-labels b{background:#1d2a25cc;color:#fff;padding:6px 8px;font:11px Arial;letter-spacing:.08em}
.details-empty h2,.details-panel h2{font:32px/1 Georgia,serif;margin:0 0 12px;letter-spacing:-.03em}
.details-empty>p:not(.eyebrow){font:14px/1.55 Georgia,serif;color:#566159}
.year-summary{margin-top:25px;padding-top:16px;border-top:1px solid var(--line);font-size:11px;line-height:1.5;color:#667069}
.year-summary strong{display:block;font:22px Georgia,serif;color:var(--pine);margin-bottom:5px}
.feature-kind{display:inline-flex;align-items:center;gap:7px;text-transform:uppercase;letter-spacing:.12em;font-size:9px;color:var(--muted);margin-bottom:13px}
.feature-kind i{width:8px;height:8px;border-radius:50%;background:var(--pine)}
.interpretation{font:15px/1.55 Georgia,serif;color:#3f4b44;padding:14px 0;margin:0;border-block:1px solid var(--line)}
.detail-list{margin:14px 0 0}
.detail-list div{display:grid;grid-template-columns:80px 1fr;gap:8px;padding:7px 0;border-bottom:1px solid #ddd7cb}
.detail-list dt{font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:#747c76}
.detail-list dd{margin:0;font-size:11px;line-height:1.4;overflow-wrap:anywhere}
.detail-caution{margin-top:16px;font:italic 11px/1.45 Georgia,serif;color:#69716b}
.time-controls{height:74px;background:var(--light);border-top:1px solid var(--line);display:grid;grid-template-columns:42px 72px minmax(0,1fr) 42px;align-items:center;padding:0 18px;gap:10px}
.step-year{border:0;background:transparent;font-size:20px;color:var(--pine);cursor:pointer}
.play-years{height:34px;border:1px solid #9c9a8f;background:#fbf8ef;color:var(--pine);display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:10px;text-transform:uppercase;letter-spacing:.08em;cursor:pointer}
.play-years span{font-size:11px;line-height:1}.play-years b{font-weight:700}.play-years[aria-pressed="true"]{background:var(--pine);border-color:var(--pine);color:#fff}
.timeline-wrap{position:relative;padding-top:16px}
.timeline-wrap input{width:100%;accent-color:var(--rust);cursor:pointer}
.year-ticks{display:flex;justify-content:space-between;margin-top:2px}
.year-ticks button{border:0;background:transparent;font-size:9px;color:#6c756e;padding:3px;cursor:pointer}
.year-ticks button.active{color:var(--rust);font-weight:700}
.context-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);margin:0 clamp(12px,3vw,42px) 50px;border:1px solid var(--line)}
.context-grid article{background:var(--paper);padding:32px clamp(22px,3vw,40px)}
.context-grid h2{font:29px/1.05 Georgia,serif;margin:0 0 14px;letter-spacing:-.03em}
.context-grid p:not(.eyebrow){font:14px/1.65 Georgia,serif;color:#525e56;margin:0}
.source-card{background:var(--pine)!important;color:#fff}
.source-card .eyebrow,.source-card p:not(.eyebrow){color:#d8ded8}
.source-card a{display:inline-block;margin-top:20px;color:#fff;text-underline-offset:4px;font-size:12px}
.mobile-only{display:none}
@media(max-width:1060px){.map-layout{grid-template-columns:205px minmax(0,1fr);position:relative}
.details-panel{position:absolute;right:20px;top:20px;width:290px;max-height:570px;box-shadow:0 14px 40px #0003;border:1px solid var(--line);display:none}
.details-panel.open{display:block}
.details-close-map{position:absolute;right:55px;top:13px;width:34px;height:34px;border:1px solid #7a7b744f;background:#fbf8efeb;color:#29352f;font-size:18px}
.context-grid{grid-template-columns:1fr 1fr}
.source-card{grid-column:1/-1}
.map{height:600px}
}
@media(max-width:720px){.masthead{display:block;padding:24px 20px 22px}
.masthead h1{font-size:48px}
.deck{margin-top:20px;font-size:16px}
.map-shell{margin-inline:0;border-inline:0}
.map-toolbar{height:56px;padding-inline:13px}
.year-heading .quiet-label,#date-display,.status{display:none}
.year-heading strong{font-size:27px}
.mobile-only{display:block}
.map-layout{display:block}
.map{height:61vh;min-height:460px;max-height:620px}
.layers-panel{display:none;position:absolute;left:10px;top:10px;width:245px;z-index:20;border:1px solid var(--line);box-shadow:0 12px 30px #0004}
.layers-panel.open{display:block}
.details-panel{position:absolute;left:8px;right:8px;top:auto;bottom:8px;margin:0;width:auto;max-height:50%;z-index:15}
.details-panel.open{display:block}
.details-panel h2{font-size:27px}
.time-controls{height:78px;padding:0 8px;gap:3px;grid-template-columns:34px 58px minmax(0,1fr) 34px}
.play-years{width:58px;gap:4px;font-size:8px}
.year-ticks button{font-size:7px;padding:3px 1px}.year-ticks button:nth-child(even):not(:last-child){display:none}
.context-grid{grid-template-columns:1fr;margin-inline:0;border-inline:0}
.source-card{grid-column:auto}
.context-grid article{padding:28px 22px}
.compare-labels{right:54px}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important}
}
