:root{--bg:#070807;--panel:#111510;--text:#f0ede5;--muted:#b6b5ae;--sage:#a9b88a;--line:#343c31;--amber:#e6ad69;--blue:#56b4e9}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Baskerville,'Iowan Old Style',Palatino,Georgia,serif}a{color:var(--sage)}header{padding:24px 4%;display:flex;justify-content:space-between;gap:24px;align-items:center;border-bottom:1px solid var(--line)}.brand{text-decoration:none;font-size:38px;color:var(--text)}.brand span{color:var(--sage)}.brand small{font-family:Arial,sans-serif;font-size:11px;letter-spacing:3px;vertical-align:middle;margin-left:16px}nav{display:flex;gap:24px;font-size:15px}nav a{text-decoration:none}nav .active{border-bottom:1px solid var(--sage);padding-bottom:5px}.intro{padding:46px 4% 28px;max-width:950px}.eyebrow{font:11px Arial,sans-serif;letter-spacing:2px;color:var(--sage)}h1{font-weight:400;font-size:clamp(36px,4vw,62px);line-height:1.05;margin:18px 0}h2{font-weight:400;font-size:32px}p{line-height:1.55;color:var(--muted)}.intro p{font-size:18px;max-width:760px}.chips{display:flex;gap:9px;flex-wrap:wrap}.chips span{font:12px Arial,sans-serif;border:1px solid var(--line);padding:8px 12px;border-radius:20px}.controls{padding:18px 4%;display:flex;flex-wrap:wrap;gap:16px;align-items:end;border-top:1px solid var(--line)}label{display:flex;flex-direction:column;gap:7px;font:12px Arial,sans-serif;color:var(--muted)}select,input,button{font:14px Arial,sans-serif;color:var(--text);background:#181e16;border:1px solid #4b5444;border-radius:5px;padding:11px;min-height:42px}select{max-width:330px}button{cursor:pointer}button:hover,a:hover{color:white}button:focus-visible,select:focus-visible,input:focus-visible,a:focus-visible{outline:2px solid var(--blue);outline-offset:3px}.map-layout{display:grid;grid-template-columns:minmax(0,1fr) 365px;gap:0;margin:0 4%;border:1px solid var(--line)}#climate-map{height:610px;background:#0d151b}.map-caption{padding:14px 20px;min-height:105px}.map-caption p,.note{font-size:13px}.legend-bar{display:inline-block;width:190px;height:12px;margin:0 8px;background:linear-gradient(to right,#56b4e9,#e9e5d8,#e6ad69)}#cell-detail{padding:22px;background:var(--panel);max-height:750px;overflow:auto}#cell-detail h2{font-size:25px;margin:8px 0}.statgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.statbox{border-top:1px solid var(--line);padding:12px 0}.statbox b{display:block;font-size:26px;font-weight:400}.statbox small{font:11px Arial,sans-serif;color:var(--muted)}table{width:100%;font-size:13px;border-collapse:collapse}td,th{text-align:right;border-bottom:1px solid var(--line);padding:8px 4px}td:first-child,th:first-child{text-align:left}svg{width:100%;height:auto}svg text{font-family:Arial,sans-serif;fill:var(--muted);font-size:11px}.locator{margin-top:18px}.locator input{width:130px}.locator a{margin-left:auto;align-self:center}.scope{margin:0 4% 36px;font-size:14px;max-width:1100px}.response{margin:35px 4%;padding-top:32px;border-top:1px solid var(--line)}.response>p{max-width:920px;font-size:17px}.response-controls{display:flex;gap:35px;flex-wrap:wrap;margin:24px 0}.response-controls input{padding:0;accent-color:var(--sage);min-width:220px}.response-controls output{color:var(--text);font-size:18px}.response-layout{display:grid;grid-template-columns:1fr 1fr;gap:55px;max-width:1100px}#heatmap svg{cursor:crosshair}.response-layout h3{font-weight:400;font-size:23px}footer{margin:40px 4%;padding-top:25px;border-top:1px solid var(--line);max-width:1150px}summary{cursor:pointer;font-size:19px}footer p{font-size:14px}.leaflet-tooltip,.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#182017;color:var(--text);border-color:#65735a}.leaflet-control-zoom a{background:#20281b;color:var(--text)}.leaflet-control-attribution{background:#182017!important;color:#bbb}.warning{border-left:2px solid var(--amber);padding-left:10px;font-size:13px}.selected-tag{color:var(--sage)}@media(max-width:950px){.map-layout{grid-template-columns:1fr}#cell-detail{max-height:none}#climate-map{height:480px}.response-layout{grid-template-columns:1fr;gap:10px}header{flex-wrap:wrap}nav{flex-wrap:wrap;gap:16px}.brand small{font-size:9px}.locator a{margin-left:0}}@media(max-width:500px){.controls{gap:10px}select{max-width:280px}.intro{padding-top:28px}#climate-map{height:400px}nav{font-size:13px}}
