:root{--paper:#eef0f2;--white:#fff;--ink:#17233f;--ink-deep:#0b1730;--muted:#515a6e;--line:#ccd0d9;--water:#e5e8ee;--teal:#203a72;--teal-deep:#13254d;--accent:#896613;--accent-bright:#c9a227;--soft:#dde1ea;--focus:#896613;--on-dark:#f3f5f8;--on-dark-lede:#a9b3cc;--on-dark-muted:#8993b3;--serif:'Fraunces',Georgia,'Times New Roman',serif;--sans:'Public Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;color-scheme:light}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.55 var(--sans)}button,input,select{font:inherit}button,a,select,input{touch-action:manipulation}button,a{ -webkit-tap-highlight-color:transparent}a{color:var(--teal);text-underline-offset:3px}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--focus);outline-offset:3px}h1,h2,h3,p{margin:0}h1,h2{font-family:var(--serif);font-weight:500;line-height:1.08;letter-spacing:-.008em}h1{font-size:clamp(36px,4vw,58px)}h2{font-size:32px}h3{font-size:17px;line-height:1.35}.wrap{width:min(1440px,100%);margin:auto;padding:0 40px}.skip{position:absolute;left:20px;top:-100px;z-index:2000;background:var(--white);padding:12px}.skip:focus{top:10px}
.masthead{background:var(--ink-deep)}.masthead .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:60px}.brand{font-weight:600;font-size:17px;letter-spacing:-.01em;color:var(--on-dark);text-decoration:none;font-family:var(--serif)}.masthead nav{display:flex;gap:26px;font-size:13px}.masthead nav a{color:var(--on-dark-lede);text-decoration:none}.masthead nav a:hover{color:var(--on-dark)}
.hero{background:var(--ink-deep)}.hero-grid{display:grid;grid-template-columns:1.45fr 1fr;align-items:end;gap:54px;padding-top:52px;padding-bottom:44px}.hero-grid h1{color:var(--on-dark);max-width:720px}.hero-rule{display:block;width:64px;height:3px;background:var(--accent-bright);margin:18px 0 0}.hero-grid .lede{font-size:17px;line-height:1.6;max-width:440px;color:var(--on-dark-lede)}.vintage{font-size:12px;color:var(--on-dark-muted);margin-top:18px}
.toolbar{display:grid;grid-template-columns:1.1fr 1fr 1.8fr auto;gap:16px;padding:22px 0 14px;align-items:end}.field label{display:block;margin-bottom:6px;font-size:12px;font-weight:600}.field select,.field input{height:44px;border:1px solid #a3aabb;background:#fff;border-radius:3px;color:var(--ink);width:100%;padding:8px 12px}.search-field{position:relative}.search-results{position:absolute;z-index:1100;top:80px;left:0;right:0;background:var(--white);box-shadow:0 12px 35px #0f242833;border-radius:3px;max-height:330px;overflow:auto}.search-results:empty{display:none}.search-results button{display:block;width:100%;border:0;border-bottom:1px solid var(--line);background:#fff;color:var(--ink);padding:13px;text-align:left;font-size:14px}.search-results button:hover{background:var(--soft)}.search-results p{padding:14px;font-size:13px}.btn{min-height:44px;padding:10px 16px;border:1px solid var(--ink);border-radius:3px;background:transparent;color:var(--ink);font-weight:600;font-size:13px;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn:hover{background:var(--soft)}.btn-primary{background:var(--ink-deep);color:white;border-color:var(--ink-deep)}.btn-primary:hover{background:var(--teal-deep);border-color:var(--teal-deep)}.btn-quiet{border-color:var(--line)}
.map-panel{min-width:0;background:var(--water);display:flex;flex-direction:column}.map-stage{position:relative;overflow:hidden}.map-top{display:flex;justify-content:space-between;gap:16px;align-items:center;background:#fff;padding:10px 16px;border-bottom:1px solid var(--line);font-size:13px}.map-top .field{display:flex;align-items:center;gap:8px}.map-top label{margin:0;white-space:nowrap;font-size:12px}.map-top select{font-size:12px;height:34px;max-width:230px}.map-top button{font-size:12px;min-height:34px;padding:4px 10px}.map-canvas{height:500px;min-height:420px;max-height:68vh;z-index:1;background:var(--water)}.leaflet-container{font-family:var(--sans);background:var(--water)}.leaflet-control-attribution{font-size:10px!important}.leaflet-tooltip{font-family:var(--sans);font-size:13px;padding:9px 12px}.place-label{font-size:11px;color:#3d4763;white-space:nowrap;pointer-events:none;text-shadow:0 1px 0 white,1px 0 0 white,-1px 0 0 white,0 -1px 0 white}.zone-label{font-size:11px;font-weight:700;color:#6b4e0f;background:#ffffffdc;border:1px solid #d9c48a;padding:3px 5px;white-space:nowrap}.legend{position:absolute;bottom:32px;left:16px;z-index:500;padding:13px 15px;width:234px;background:#fffffff5;border:1px solid var(--line);border-radius:2px}.legend-title{font-size:11px;line-height:1.45;font-weight:650;margin-bottom:9px}.legend-scale{display:flex;height:10px}.legend-scale i{flex:1}.legend-labels{display:flex;justify-content:space-between;font-size:11px;margin:3px 0 9px}.legend-note{font-size:11px;line-height:1.5;color:var(--muted)}.zone-key{margin-top:8px;font-size:11px}.zone-key:before{content:'';width:20px;display:inline-block;border-top:2px solid var(--accent-bright);vertical-align:middle;margin-right:6px}
.district-card{position:absolute;top:0;right:0;bottom:0;width:min(380px,100%);background:var(--white);border-left:1px solid var(--line);box-shadow:-16px 0 32px -20px #0f242870;padding:22px 20px;overflow-y:auto;z-index:600;transform:translateX(105%);opacity:0;transition:transform .32s cubic-bezier(.32,.72,0,1),opacity .22s;scrollbar-width:thin;scrollbar-color:var(--line) transparent}.district-card.is-open{transform:translateX(0);opacity:1}.district-card::-webkit-scrollbar{width:8px}.district-card::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px}.district-card::-webkit-scrollbar-track{background:transparent}.card-close{position:absolute;top:14px;right:14px;width:32px;height:32px;border:1px solid var(--line);border-radius:3px;background:var(--white);display:flex;align-items:center;justify-content:center;font-size:14px;line-height:1;color:var(--muted);padding:0;z-index:1}.card-close:hover{background:var(--soft);color:var(--ink)}.district-card h2{font-size:28px;margin-bottom:9px;padding-right:38px}.district-subtitle{font-size:12px;color:var(--muted);padding-bottom:19px;border-bottom:1px solid var(--line)}.stat-label{font-size:13px;margin-top:21px;line-height:1.4;font-weight:600}.big-number{font-family:var(--serif);font-weight:500;font-size:60px;line-height:1.12;letter-spacing:0;margin-top:6px}.share-line{font-size:14px;margin:4px 0 3px}.compare-line{font-size:13px;line-height:1.5;color:var(--muted);margin:0 0 8px}.flow-note{font-size:11px;color:var(--muted);margin:0 0 6px}.flow-key{display:flex;flex-direction:column;gap:5px;margin:0 0 18px}.flow-key-row{display:flex;align-items:center;gap:9px;font-size:12.5px}.flow-key-row span:nth-child(2){flex:1;color:var(--muted)}.flow-key-row strong{font-variant-numeric:tabular-nums;white-space:nowrap}.flow-swatch{width:16px;height:5px;border-radius:2px;flex:none}.compare-line strong{color:var(--teal)}.share-line strong{color:var(--teal)}.breakdown{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:11px 0}.datum-row{display:flex;justify-content:space-between;align-items:baseline;gap:20px;padding:5px 0;font-size:13px}.datum-row strong{font-variant-numeric:tabular-nums;font-size:15px;white-space:nowrap}.datum-row span{max-width:75%}.uncertainty{background:var(--soft);padding:14px 16px;margin:16px 0;border-radius:2px}.uncertainty p{font-size:11px;line-height:1.55}.uncertainty strong{font-size:12px}.context-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:3px 0 17px}.context-row strong{font-family:var(--serif);font-weight:500;font-size:25px;display:block;line-height:1.25}.context-row span{font-size:11px;display:block;margin-top:5px;line-height:1.4}.district-card .download{display:flex;width:100%;font-size:13px}.actions{display:flex;gap:12px;margin-top:10px}.actions .btn{flex:1;min-height:36px;font-size:11px;padding:7px 5px}.tiny{font-size:12px;line-height:1.6;color:var(--muted)}.status{font-size:12px;padding:10px 0;color:var(--muted);min-height:36px}
.table-panel{overflow:auto;background:#fff;min-height:500px}.table-panel table{border-collapse:collapse;width:100%;font-size:13px}.table-panel th{position:sticky;top:0;background:var(--paper);text-align:left;font-size:12px;padding:12px;border-bottom:1px solid var(--line)}.table-panel td{padding:9px 12px;border-bottom:1px solid #e3e8e6}.table-panel td:nth-child(n+2){text-align:right;font-variant-numeric:tabular-nums}.table-panel button{border:0;padding:7px 0;background:none;color:var(--teal);text-align:left;font-size:13px}.table-panel tr[aria-selected=true]{background:var(--soft)}
.reading{display:grid;grid-template-columns:1fr 1fr;gap:60px;padding-top:48px;padding-bottom:52px}.reading h2{font-size:32px;margin-bottom:16px}.reading p{font-size:14px;line-height:1.7;margin-bottom:14px;max-width:630px}.reading details{border-top:1px solid var(--line);padding:15px 0}.reading details:last-child{border-bottom:1px solid var(--line)}summary{font-size:14px;font-weight:600;cursor:pointer}details p{padding-top:12px}.reading ul{padding-left:20px;font-size:14px}.reading li{margin:8px 0}
.source-strip{border-top:1px solid var(--line);padding:22px 0 36px}.source-strip p{font-size:12px;max-width:1000px;color:var(--muted)}.source-strip a{color:var(--ink)}
footer{background:var(--ink-deep);padding:25px 0 30px;font-size:12px;color:var(--on-dark-lede)}footer .wrap{display:flex;gap:25px;justify-content:space-between}
.error{padding:22px;border:1px solid #a55d33;background:#fff4e8}.hidden,[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.method-page{max-width:850px;padding-top:40px;padding-bottom:60px}.method-page h1{font-size:44px;margin-bottom:24px}.method-page h2{font-size:27px;margin:34px 0 15px}.method-page p,.method-page li{font-size:15px;margin-bottom:14px}.method-page table{font-size:13px;width:100%;border-collapse:collapse}.method-page td,.method-page th{border-bottom:1px solid var(--line);padding:12px 8px;text-align:left;vertical-align:top}.method-page code{font-size:13px;white-space:normal}
.specimen{padding:40px}.swatches{display:flex;gap:20px;margin:25px 0}.swatches div{width:110px;height:75px;padding:12px}.specimen article{max-width:600px;margin:30px 0}.legend-color-0{background:#fbf1e0}.legend-color-1{background:#f0d9a8}.legend-color-2{background:#e0af5c}.legend-color-3{background:#c9812f}.legend-color-4{background:#a5501f}.legend-color-5{background:#6e2a1f}
.card-details{border-top:1px solid var(--line);padding:2px 0}.card-details:last-of-type{border-bottom:1px solid var(--line);margin-bottom:16px}.card-details summary{font-size:12.5px;font-weight:600;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:10px;padding:11px 0;color:var(--ink)}.card-details summary::-webkit-details-marker{display:none}.card-details summary:after{content:'+';font-size:15px;color:var(--muted);flex:none}.card-details[open] summary:after{content:'\2212'}.card-details-body{padding-bottom:14px}.rankings{padding:12px 0 8px}.rankings h2{max-width:640px}.rankings-lead{font-size:14px;line-height:1.6;color:var(--muted);margin:10px 0 18px}.rankings-chart{max-height:520px;overflow-y:auto;border-top:1px solid var(--line);scrollbar-width:thin;scrollbar-color:var(--line) transparent}.rankings-chart::-webkit-scrollbar{width:8px}.rankings-chart::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px}.rankings-chart::-webkit-scrollbar-track{background:transparent}.rank-row{display:grid;grid-template-columns:180px 1fr 78px;align-items:center;gap:14px;width:100%;border:0;border-bottom:1px solid var(--line);background:none;padding:7px 4px;text-align:left;font:inherit;cursor:pointer}.rank-row:hover{background:var(--soft)}.rank-row.is-selected{background:var(--soft)}.rank-label{font-size:12.5px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rank-row.is-selected .rank-label{font-weight:700}.rank-bar-track{height:14px;background:var(--water);border-radius:2px;overflow:hidden;position:relative}.rank-bar{display:block;height:100%;border-radius:2px 0 0 2px;transition:width .25s ease}.rank-row.is-selected .rank-bar-track{outline:2px solid var(--ink);outline-offset:1px}.rank-value{font-size:12px;font-variant-numeric:tabular-nums;text-align:right;color:var(--muted)}.rank-row.is-selected .rank-value{color:var(--ink);font-weight:700}.findings{border-top:1px solid var(--line);padding:44px 0 10px}.findings h2{max-width:640px}.findings-lead{font-size:17px;line-height:1.6;max-width:680px;margin:14px 0 0;color:var(--muted)}.findings-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin:28px 0 22px}.finding{background:var(--white);padding:22px 22px 24px}.finding-stat{display:block;font-family:var(--serif);font-weight:500;font-size:30px;line-height:1.1;color:var(--teal);letter-spacing:-.005em;margin-bottom:10px}.finding p{font-size:13.5px;line-height:1.6;color:var(--muted);margin:0}.finding p strong{color:var(--ink)}.findings-context{font-size:13px;line-height:1.6;color:var(--muted);max-width:700px;margin-bottom:6px}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
@media print{.masthead nav,.toolbar,.map-top,#map,.legend,.card-close,.status,.actions,.reading details,footer{display:none}.wrap{padding:0;width:100%}.hero{background:none}.hero-grid{padding:0 0 20px;display:block}.hero-grid h1,.hero-grid .lede,.vintage{color:var(--ink)}.hero-grid h1{font-size:30px}.explorer-grid{border:0}.district-card{position:static;transform:none!important;opacity:1;box-shadow:none;border:0;width:100%;overflow:visible;padding:15px 0}#card-body{padding-right:0}.card-details-body{display:block!important}.reading{display:block}.findings-grid{display:block}.download{display:none!important}}
.leaflet-tile-pane{filter:grayscale(1);opacity:.55}
.is-embedded .masthead .brand{display:none}.is-embedded .masthead .wrap{min-height:0;justify-content:flex-end;padding:12px 0}.is-embedded .skip{display:none}
.members{margin:0 0 4px}.members .stat-label{margin-top:16px}.member-list{list-style:none;padding:0;margin:8px 0 10px}.member-list li{display:flex;justify-content:space-between;align-items:baseline;gap:14px;padding:5px 0;font-size:13px;border-bottom:1px solid #e3e8e6}.member-list span{color:var(--muted);font-size:12px;white-space:nowrap}.member-list strong{text-align:right;font-weight:600}.member-record{margin:0 0 8px}
@media(min-width:1500px){.map-canvas{height:560px}}
@media(max-width:1100px){.wrap{padding-left:26px;padding-right:26px}.hero-grid{gap:30px}.toolbar{grid-template-columns:1fr 1fr 1.4fr auto;gap:10px}.map-top{padding:12px}.map-top .field{display:block}.map-top label{margin-bottom:4px}.reading{gap:35px}.hero-grid .lede{font-size:15px}.big-number{font-size:53px}.findings-grid{grid-template-columns:1fr 1fr}}
@media(max-width:800px){.wrap{padding-left:20px;padding-right:20px}.masthead .wrap{min-height:54px}.masthead nav{gap:16px;font-size:11px}.hero-grid{display:block;padding-top:34px;padding-bottom:28px}.hero-grid h1{font-size:40px}.hero-grid .lede{margin-top:20px;max-width:600px;font-size:15px}.vintage{margin-top:14px}.toolbar{grid-template-columns:1fr 1fr;padding:18px 0 12px;gap:12px}.search-field{grid-column:1}.toolbar .view-button{align-self:end}.map-canvas{height:430px;min-height:0;flex:none}.map-top .field{display:flex}.map-top label{margin-bottom:0}.district-card h2{font-size:30px}.big-number{font-size:62px}.district-card .stat-label{max-width:500px}.district-card>.tiny{max-width:580px}.context-row{gap:30px;max-width:500px}.reading{display:block;padding-top:36px;padding-bottom:26px}.reading>section+section{margin-top:35px}.reading h2{font-size:30px}.legend{bottom:30px;width:222px;padding:10px 12px}.table-panel{max-height:500px}.search-results{top:77px;min-width:270px}.source-strip{padding-bottom:28px}.findings-grid{grid-template-columns:1fr}.rank-row{grid-template-columns:96px 1fr 56px;gap:8px}.rank-label{font-size:11.5px}.rank-value{font-size:11px}}
@media(max-width:420px){.wrap{padding-left:16px;padding-right:16px}.hero-grid h1{font-size:36px}.masthead nav a:last-child{display:none}.map-top{gap:8px}.map-top .field{display:block}.map-top select{max-width:200px}.map-canvas{height:355px}.legend{left:9px;bottom:29px;width:216px}.district-card{padding:24px 20px}.toolbar{grid-template-columns:1fr 1fr}.toolbar select,.toolbar input{font-size:14px}.toolbar .btn{font-size:12px}.source-strip p{font-size:11px}footer .wrap{display:block}footer span{display:block;margin-top:8px}.table-panel th,.table-panel td{padding:8px;font-size:12px}}
