:root{--navy:#0b2f4f;--blue:#155d8b;--cyan:#2f8fb8;--gold:#d8a84b;--green:#267056;--ink:#172330;--muted:#587083;--line:#d6e1e8;--pale:#f4f8fa}
body{background:#f3f7f9}.modal-open{overflow:hidden}
.demo-banner{display:flex;justify-content:center;gap:.75rem 1.2rem;align-items:center;flex-wrap:wrap;padding:.55rem 1rem}.demo-banner strong{background:#5d4500;color:#fff7d9;border-radius:999px;padding:.15rem .55rem;font-size:.72rem;letter-spacing:.05em}.demo-banner span+span:before{content:'•';margin-right:1.2rem;color:#967200}
.brand{color:#fff;text-decoration:none}.eyebrow.dark{color:#496778}.section-heading{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.text-link{font-weight:800;white-space:nowrap}
.data-trust{display:grid;grid-template-columns:1.65fr 1fr;gap:1rem;background:#fff;border:1px solid #c7d8e2;border-top:4px solid var(--blue);border-radius:0 0 14px 14px;margin:.2rem 0 1rem;padding:1rem 1.1rem;box-shadow:0 5px 18px rgba(11,47,79,.06)}.data-trust>div{display:flex;gap:.75rem}.data-trust>div>div{display:flex;flex-direction:column;gap:.18rem}.data-trust>div span{color:var(--muted);font-size:.86rem}.trust-icon{display:grid!important;place-items:center;flex:0 0 auto;width:30px;height:30px;background:#e6f2f7;color:var(--blue)!important;border-radius:50%;font-weight:900}.data-trust dl{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin:0}.data-trust dl div{border-left:1px solid var(--line);padding-left:.65rem}.data-trust dt{text-transform:uppercase;letter-spacing:.04em;font-size:.65rem;font-weight:900;color:var(--muted)}.data-trust dd{margin:.12rem 0 0;font-size:.8rem;font-weight:850;color:var(--navy)}
.filters{grid-template-columns:1.75fr repeat(5,1fr);align-items:end}.reset-cell{grid-column:1/-1;display:flex;justify-content:flex-end}.reset-cell .btn{padding:.5rem .75rem}.results-bar{min-height:44px;display:flex;justify-content:space-between;align-items:center;gap:.75rem;margin:-.2rem 0 .5rem;padding:0 .25rem}.results-bar p{color:#405c6e;font-size:.88rem}.active-filters{display:flex;gap:.4rem;flex-wrap:wrap;justify-content:flex-end}.filter-chip{display:flex;align-items:center;gap:.4rem;border:1px solid #9bb8c8;background:#fff;color:#294c60;border-radius:999px;padding:.28rem .55rem;font-size:.73rem;cursor:pointer}.filter-chip:hover{background:#eaf3f7}.filter-chip b{font-size:1rem;line-height:1}
.metric{position:relative;overflow:hidden}.metric:before{content:'';position:absolute;inset:0 auto 0 0;width:4px;background:linear-gradient(var(--blue),var(--cyan))}.metric .num{letter-spacing:-.04em}
.bar-row[role=img]:focus-within,.trend-col[role=img]:focus-within{outline:2px solid var(--blue)}
.map-section{border-top:5px solid var(--blue)}.map-key{display:flex;gap:.8rem;align-items:center;flex-wrap:wrap;background:#f1f6f8;border-radius:9px;padding:.55rem .7rem;font-size:.74rem;color:#486273}.map-key b{color:#b28100}.map-layout{grid-template-columns:1.1fr 1fr}.map-shell{background:linear-gradient(150deg,#eaf5f9 0%,#f8fbfc 58%,#dcecf2 100%)}.map-shell:after{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(73,117,137,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(73,117,137,.05) 1px,transparent 1px);background-size:32px 32px;pointer-events:none}.map-label{display:flex;flex-direction:column;z-index:7}.map-label span{font-size:.66rem;color:var(--muted)}.map-place{position:absolute;z-index:1;color:#78919f;font-size:.64rem;font-weight:850;letter-spacing:.03em;pointer-events:none}.map-place.north{left:43%;top:17%}.map-place.central{left:49%;top:43%}.map-place.west{left:29%;top:51%}.map-place.capital{left:45%;top:68%}.map-place.coast{left:69%;top:77%}.map-place.south{left:40%;top:87%}
.map-point{z-index:4;transition:transform .14s ease,width .14s ease,height .14s ease,background-color .14s ease,box-shadow .14s ease}.map-point:hover,.map-point:focus,.map-point.is-highlighted{width:31px;height:31px;background:#ffbf24!important;border-color:#172330;box-shadow:0 0 0 5px rgba(255,191,36,.38),0 4px 13px rgba(0,0,0,.35);z-index:8}.highlight-dot{background:#ffbf24;border:1px solid #172330}
.map-tooltip{position:absolute;z-index:10;transform:translate(-50%,calc(-100% - 18px));width:210px;background:#092b47;color:#fff;border-radius:9px;padding:.58rem .68rem;box-shadow:0 8px 22px rgba(0,0,0,.25);pointer-events:none}.map-tooltip:after{content:'';position:absolute;left:50%;bottom:-7px;transform:translateX(-50%);border:7px solid transparent;border-top-color:#092b47;border-bottom:0}.map-tooltip strong,.map-tooltip span,.map-tooltip b{display:block}.map-tooltip strong{font-size:.72rem;color:#bde2f2;text-transform:uppercase;letter-spacing:.06em}.map-tooltip span{font-size:.78rem;line-height:1.3;margin:.15rem 0}.map-tooltip b{font-size:.82rem;color:#ffd86f}
.project-toolbar{display:flex;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.65rem}.project-toolbar p{margin:0}.project-actions{display:flex;justify-content:flex-end;gap:.38rem;flex-wrap:wrap}.project-actions select{width:auto;padding:.45rem .55rem;font-size:.76rem}.project-list{scrollbar-color:#9ab4c3 transparent}.project{position:relative;padding:.9rem;border-left:4px solid transparent}.project.is-highlighted,.project:hover,.project:focus-within{border-color:#d09a17;background:#fffaf0;box-shadow:0 5px 14px rgba(20,45,70,.12)}.project-top,.project-bottom{display:flex;justify-content:space-between;align-items:center;gap:.7rem}.project-type{display:flex;align-items:center;gap:.38rem;font-size:.72rem;font-weight:850;color:#486273}.project-type i{width:9px;height:9px;border-radius:50%}.project-location{font-size:.82rem;color:var(--muted)}.project-bottom>div{display:flex;flex-direction:column}.project-bottom>div>span{font-size:.65rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:800}.project-open,.table-project{border:0;background:transparent;color:var(--blue);font-weight:850;text-decoration:underline;text-underline-offset:3px;cursor:pointer;padding:.35rem}.project-open:hover,.table-project:hover{color:#093b5d}.empty-message{display:flex;flex-direction:column;align-items:flex-start;gap:.55rem;background:#f7fafb;border:1px dashed #9eb8c7;border-radius:10px;padding:1rem;color:#486273}.empty-message .btn{margin-top:.2rem}
.story-card{display:flex;flex-direction:column}.story-card .outcome{margin-top:auto}.story-card .btn{align-self:flex-start}.outcome strong{display:block;color:#254d3b;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em}
.compare-card{min-height:210px}.compare-title{display:flex;justify-content:space-between;gap:.5rem;align-items:center}.compare-title h3{margin:0}.compare-title span{font-size:.72rem;background:#e9f1f5;padding:.22rem .48rem;border-radius:999px}.compare-split{display:flex;height:13px;border-radius:999px;overflow:hidden;margin:.7rem 0}.compare-split span{background:#2f8fb8}.compare-split i{background:#d8a84b}.compare-values{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-bottom:.75rem}.compare-values span{display:flex;flex-direction:column;font-size:.72rem;color:var(--muted)}.compare-values b{font-size:.9rem;color:var(--ink)}
.table-wrap{border:1px solid var(--line);border-radius:11px}tbody tr:hover{background:#f5f9fb}.table-project{text-align:left}
.methodology{background:linear-gradient(135deg,#edf6f8,#fff);border-color:#bad4df}.methodology h2,.methodology h3{margin-top:0}.methodology ul{padding-left:1.15rem}.definitions{margin:0}.definitions dt{font-weight:900;color:var(--navy)}.definitions dd{margin:0 0 .55rem;color:#486273;font-size:.86rem}.readiness{border-top:4px solid var(--green)}
.modal-box{box-shadow:0 24px 70px rgba(0,0,0,.3)}.modal-status{display:flex;gap:.5rem;align-items:center;color:var(--muted);font-size:.82rem}.project-detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem;margin:1rem 0 .45rem}.project-detail-grid div{background:#f4f8fa;border:1px solid var(--line);border-radius:9px;padding:.7rem}.project-detail-grid span,.project-detail-grid strong{display:block}.project-detail-grid span{font-size:.68rem;text-transform:uppercase;color:var(--muted);font-weight:800}.project-detail-grid strong{font-size:1.1rem;color:var(--navy)}.funding-split{display:flex;height:12px;border-radius:999px;overflow:hidden;background:#e7eef2;margin-bottom:1rem}.funding-split span{background:#2f8fb8}.funding-split span+span{background:#d8a84b}.modal-facts{display:grid;grid-template-columns:1fr 1fr;gap:.55rem;margin:1rem 0}.modal-facts div{border-bottom:1px solid var(--line);padding:.45rem 0}.modal-facts dt{font-size:.66rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:850}.modal-facts dd{margin:.08rem 0 0;font-weight:750}.modal-footnote{font-size:.72rem;color:var(--muted);border-top:1px solid var(--line);padding-top:.7rem}.load-error{position:sticky;top:0;z-index:9999;display:flex;flex-direction:column;gap:.2rem;background:#8c291f;color:#fff;padding:.8rem 1rem;text-align:center}
@media(max-width:1100px){.filters{grid-template-columns:repeat(3,1fr)}.reset-cell{grid-column:auto}.data-trust{grid-template-columns:1fr}.data-trust dl div:first-child{border-left:0}}
@media(max-width:760px){.demo-banner span+span:before{display:none}.demo-banner{gap:.35rem}.filters{grid-template-columns:1fr 1fr}.results-bar,.section-heading,.project-toolbar{align-items:flex-start;flex-direction:column}.active-filters{justify-content:flex-start}.data-trust dl{grid-template-columns:1fr}.data-trust dl div{border-left:0;border-top:1px solid var(--line);padding:.45rem 0}.project-actions{justify-content:flex-start}.project-detail-grid{grid-template-columns:1fr}.map-place{display:none}}
@media(max-width:520px){.filters{grid-template-columns:1fr}.project-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.project-actions select{grid-column:1/-1;width:100%}.project-bottom{align-items:flex-end}.modal-facts{grid-template-columns:1fr}.demo-banner span{font-size:.72rem}}
@media(prefers-reduced-motion:reduce){.map-point{transition:none}}
@media print{.data-trust,.results-bar{box-shadow:none}.project-toolbar,.map-key,.modal{display:none!important}.map-section{break-inside:auto}}
