:root{
  --bg:#060c16;
  --panel:#0b1524;
  --panel-2:#0e1b2f;
  --line:#1c3551;
  --text:#f4f8ff;
  --muted:#9bb1c7;
  --cyan:#35c8ff;
  --blue:#1889ff;
  --gold:#e8c96a;
  --success:#50d890;
  --danger:#ff6b78;
  --radius:20px;
  --shadow:0 24px 70px rgba(0,0,0,.3);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--text);
  background:
    radial-gradient(circle at 20% -10%,rgba(24,137,255,.18),transparent 35%),
    radial-gradient(circle at 80% 10%,rgba(53,200,255,.08),transparent 30%),
    var(--bg);
}
a{color:inherit}
.site-header{
  position:sticky;
  top:0;
  z-index:30;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:18px clamp(18px,4vw,64px);
  border-bottom:1px solid rgba(255,255,255,.08);
  background:rgba(6,12,22,.88);
  backdrop-filter:blur(16px);
}
.brand-wrap{display:flex;align-items:center;gap:14px}
.brand-mark{
  width:48px;height:48px;border:1px solid var(--cyan);border-radius:16px;
  display:grid;place-items:center;font-weight:900;letter-spacing:.08em;
  background:linear-gradient(145deg,#0d2847,#07101c);box-shadow:0 0 24px rgba(53,200,255,.18)
}
h1,h2,h3,h4,p{margin-top:0}
h1{margin-bottom:0;font-size:1.25rem}
h2{font-size:clamp(2rem,4.8vw,4.6rem);line-height:1.02;letter-spacing:-.045em;margin-bottom:20px}
h3{font-size:clamp(1.5rem,2.5vw,2.3rem);margin-bottom:8px}
h4{font-size:1.05rem}
p{color:var(--muted);line-height:1.65}
.eyebrow{font-size:.74rem;letter-spacing:.13em;text-transform:uppercase;color:var(--cyan);font-weight:800;margin-bottom:7px}
.header-actions{display:flex;gap:10px}
.button{
  border:0;border-radius:999px;padding:12px 18px;font-weight:800;text-decoration:none;
  display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:.2s ease;
}
.button:hover{transform:translateY(-1px)}
.button-primary{background:linear-gradient(135deg,var(--blue),var(--cyan));color:#03111d}
.button-ghost{background:#0b1726;border:1px solid var(--line);color:var(--text)}
main{max-width:1450px;margin:0 auto;padding:0 clamp(18px,4vw,64px)}
.prototype-notice{
  margin:26px 0 0;padding:14px 18px;border:1px solid rgba(232,201,106,.42);
  background:rgba(232,201,106,.07);border-radius:16px;display:flex;gap:18px;align-items:flex-start
}
.prototype-notice strong{color:var(--gold);white-space:nowrap}
.prototype-notice p{margin:0;font-size:.93rem}
.hero{min-height:70vh;display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,.8fr);gap:42px;align-items:center;padding:70px 0}
.hero-copy>p{max-width:800px;font-size:1.05rem}
.hero-panel{
  padding:28px;border:1px solid var(--line);border-radius:var(--radius);
  background:linear-gradient(180deg,rgba(20,54,91,.42),rgba(8,20,36,.88));box-shadow:var(--shadow)
}
.panel-kicker{font-weight:900;color:var(--gold);margin-bottom:16px}
.check-list{padding-left:0;list-style:none;margin:0;display:grid;gap:14px;color:var(--muted)}
.check-list li::before{content:"✓";color:var(--success);font-weight:900;margin-right:10px}
.zip-form{margin-top:30px;max-width:680px}
.zip-form label,.newsletter-form span{display:block;font-weight:800;margin-bottom:9px}
.zip-row{display:flex;gap:10px}
input{
  width:100%;background:#081321;border:1px solid var(--line);border-radius:14px;padding:14px 16px;
  color:var(--text);font:inherit;outline:none
}
input:focus{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(53,200,255,.09)}
.field-help,.field-error{font-size:.84rem;margin-top:8px;color:var(--muted)}
.field-error{color:var(--danger);min-height:1.1em}
.hidden{display:none!important}
.dashboard{padding:18px 0 70px}
.dashboard-heading,.section-heading{
  display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:20px
}
.dashboard-meta{color:var(--muted)}
.verified-badge,.methodology-pill,.source-tag{
  border:1px solid rgba(80,216,144,.35);background:rgba(80,216,144,.08);color:#aef0c8;
  border-radius:999px;padding:9px 13px;font-size:.8rem;font-weight:800
}
.map-section,.metrics-section,.methodology-section{padding:28px 0}
.map-layout{display:grid;grid-template-columns:minmax(0,2.3fr) minmax(260px,.8fr);gap:20px}
.map-card,.legend-card,.chart-card,.methodology-card{
  position:relative;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);overflow:hidden
}
.case-map{width:100%;height:520px;background:#09111f}
.map-prototype-label{
  position:absolute;z-index:500;left:14px;top:14px;padding:8px 11px;border-radius:999px;
  background:rgba(5,14,25,.88);border:1px solid var(--line);font-size:.75rem;font-weight:850;color:#d8e9f7;
  pointer-events:none
}
.leaflet-container{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.leaflet-control-attribution{font-size:10px!important;background:rgba(255,255,255,.88)!important}
.vindex-marker{
  width:20px;height:20px;border-radius:50%;border:3px solid #fff;box-shadow:0 0 0 3px rgba(5,14,25,.55),0 0 18px currentColor
}
.vindex-marker-wrap{background:transparent;border:0}
.vindex-popup .leaflet-popup-content-wrapper,.vindex-popup .leaflet-popup-tip{
  background:#071522;color:#f4f8ff
}
.vindex-popup .leaflet-popup-content{margin:14px 16px}
.vindex-popup strong{display:block;margin-bottom:4px}
.vindex-popup span{color:#9bb1c7;font-size:.82rem}
.legend-card{padding:24px}
.legend-list{display:grid;gap:10px}
.legend-item{
  width:100%;display:flex;align-items:center;gap:10px;border:1px solid var(--line);background:#081321;
  color:var(--text);border-radius:12px;padding:11px 12px;cursor:pointer;text-align:left
}
.legend-item.is-off{opacity:.42}
.legend-dot{width:12px;height:12px;border-radius:50%;box-shadow:0 0 14px currentColor;flex:0 0 auto}
.legend-count{margin-left:auto;color:var(--muted);font-size:.82rem}
.legend-note{font-size:.82rem;margin-top:18px}
.map-point{cursor:pointer;stroke:#fff;stroke-width:2;filter:drop-shadow(0 0 7px rgba(255,255,255,.25))}
.case-popover{
  position:absolute;left:18px;bottom:18px;max-width:360px;padding:18px;border-radius:16px;
  border:1px solid var(--line);background:rgba(5,14,25,.96);box-shadow:var(--shadow)
}
.case-popover h4{margin-bottom:8px}
.case-popover dl{display:grid;grid-template-columns:auto 1fr;gap:5px 12px;margin:12px 0 0;font-size:.88rem}
.case-popover dt{color:var(--muted)}
.case-popover dd{margin:0}
.text-button{background:none;border:0;color:var(--cyan);font-weight:800;cursor:pointer}
.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.metric-card{
  padding:20px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(160deg,#0d1d31,#09121f)
}
.metric-value{font-size:2rem;font-weight:900;margin:8px 0}
.metric-source{font-size:.78rem;color:var(--muted)}
.charts-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:28px 0}
.chart-card{padding:22px}
.chart-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.source-tag{border-color:var(--line);background:#081321;color:var(--muted)}
.bar-chart{height:260px;display:flex;align-items:flex-end;gap:14px;padding:34px 10px 26px;border-bottom:1px solid var(--line)}
.bar-wrap{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:stretch;height:100%;gap:8px}
.bar{border-radius:10px 10px 3px 3px;background:linear-gradient(180deg,var(--cyan),var(--blue));min-height:4px}
.bar-label,.bar-value{text-align:center;font-size:.75rem;color:var(--muted)}
.bar-value{color:var(--text);font-weight:900}
.line-chart{height:260px;padding-top:12px}
.line-chart svg{width:100%;height:100%}
.methodology-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:20px}
.methodology-card{padding:22px}
.indicator-row{
  display:grid;grid-template-columns:1.3fr .55fr .55fr .9fr;gap:10px;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.07);font-size:.9rem
}
.indicator-row.header{color:var(--muted);font-size:.76rem;text-transform:uppercase;letter-spacing:.06em}
.plain-list{color:var(--muted);line-height:1.6;padding-left:20px}
.outreach-section,.newsletter-section{
  margin:38px 0;padding:30px;border:1px solid var(--line);border-radius:var(--radius);
  background:linear-gradient(135deg,rgba(24,137,255,.12),rgba(53,200,255,.04));
  display:flex;align-items:center;justify-content:space-between;gap:28px
}
.outreach-section p,.newsletter-section p{margin-bottom:0;max-width:780px}
.newsletter-form{min-width:min(100%,390px);display:grid;gap:12px}
footer{padding:32px clamp(18px,4vw,64px) 50px;text-align:center;border-top:1px solid rgba(255,255,255,.08)}
footer p{font-size:.82rem;margin:5px}
@media (max-width:980px){
  .hero,.map-layout,.methodology-grid,.charts-grid{grid-template-columns:1fr}
  .metric-grid{grid-template-columns:repeat(2,1fr)}
  .site-header{align-items:flex-start}
}
@media (max-width:680px){
  .site-header{position:relative;flex-direction:column}
  .header-actions{width:100%}.header-actions .button{flex:1}
  .prototype-notice{flex-direction:column;gap:5px}
  .hero{padding:48px 0}
  .zip-row,.dashboard-heading,.section-heading,.outreach-section,.newsletter-section{flex-direction:column;align-items:stretch}
  .zip-row{display:grid}
  .metric-grid{grid-template-columns:1fr}
  .case-map{height:390px}
  .indicator-row{grid-template-columns:1fr 1fr}
  .indicator-row>span:nth-child(3),.indicator-row>span:nth-child(4){text-align:left}
}

.menu-button{
  border:1px solid var(--line);background:#0b1726;color:var(--text);border-radius:999px;
  padding:10px 15px;font-weight:850;cursor:pointer;display:flex;align-items:center;gap:8px
}
.site-menu{
  position:fixed;z-index:60;top:0;left:0;height:100vh;width:min(86vw,360px);padding:88px 24px 28px;
  background:linear-gradient(180deg,#07111f,#081827);border-right:1px solid var(--line);
  box-shadow:30px 0 80px rgba(0,0,0,.45);display:grid;align-content:start;gap:5px
}
.site-menu a{
  text-decoration:none;padding:14px 12px;border-radius:12px;color:var(--muted);font-weight:750
}
.site-menu a:hover,.site-menu a:focus{background:#0e2137;color:var(--text)}
.menu-close{
  position:absolute;right:18px;top:18px;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);
  background:#091725;color:var(--text);font-size:1.7rem;cursor:pointer
}
.menu-backdrop{position:fixed;inset:0;z-index:50;background:rgba(1,6,12,.7);backdrop-filter:blur(3px)}
.zip-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.zip-chips button{
  border:1px solid var(--line);background:#081321;color:var(--muted);padding:8px 12px;border-radius:999px;
  cursor:pointer;font:inherit;font-weight:800
}
.zip-chips button:hover,.zip-chips button:focus{border-color:var(--cyan);color:var(--text)}
.case-archive{margin-top:22px;padding:22px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel)}
.section-heading.compact{align-items:center;margin-bottom:14px}
.archive-count{color:var(--muted);font-size:.85rem}
.case-archive-list{display:grid;gap:10px}
.archive-row{
  display:grid;grid-template-columns:minmax(0,1.5fr) minmax(120px,.6fr) minmax(120px,.7fr) auto;
  gap:14px;align-items:center;padding:14px 16px;border:1px solid rgba(255,255,255,.07);
  border-radius:14px;background:#081321
}
.archive-main strong{display:block;margin-bottom:4px}
.archive-main span,.archive-meta{color:var(--muted);font-size:.84rem}
.archive-category{font-size:.78rem;font-weight:850}
.archive-outcome{color:#aef0c8;font-weight:850;font-size:.84rem}
.archive-action{
  border:1px solid var(--line);background:#0c1b2d;color:var(--cyan);border-radius:999px;padding:8px 11px;
  cursor:pointer;font-weight:850
}
.archive-empty{color:var(--muted);padding:14px 0}
.scoring-rules{display:grid;gap:8px;margin-top:14px}
.score-row{
  display:grid;grid-template-columns:1fr auto;gap:10px;padding:10px 12px;border:1px solid rgba(255,255,255,.07);
  border-radius:12px;background:#081321
}
.score-row span:last-child{font-weight:900;color:var(--cyan)}
.method-meta{display:grid;gap:7px;margin-top:16px;padding-top:14px;border-top:1px solid rgba(255,255,255,.08);font-size:.82rem;color:var(--muted)}
.full-span{grid-column:1/-1}
.prevention-strip{background:linear-gradient(135deg,rgba(80,216,144,.10),rgba(53,200,255,.03))}
.map-point:focus{outline:none;stroke:var(--gold);stroke-width:5}
@media (max-width:980px){
  .site-header{flex-wrap:wrap}
}
@media (max-width:760px){
  .archive-row{grid-template-columns:1fr 1fr}
  .archive-action{grid-column:1/-1}
}
@media (max-width:520px){
  .archive-row{grid-template-columns:1fr}
  .site-header .brand-wrap{order:-1;width:100%}
}

.score-transparency{
  margin-top:22px;padding:22px;border:1px solid var(--line);border-radius:var(--radius);
  background:linear-gradient(145deg,rgba(24,137,255,.07),rgba(7,17,31,.88))
}
.score-summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.score-summary-card{
  padding:18px;border:1px solid rgba(255,255,255,.08);border-radius:16px;background:#081321
}
.score-big{font-size:2rem;font-weight:950;letter-spacing:-.04em;margin:8px 0}
.score-label{font-size:.82rem;color:var(--muted)}
.method-note{margin:16px 0 0;font-size:.86rem}
.source-catalog{display:grid;gap:10px;margin-top:12px}
.source-row{
  display:grid;grid-template-columns:1.2fr .8fr .8fr .8fr;gap:12px;align-items:center;
  padding:12px 14px;border:1px solid rgba(255,255,255,.07);border-radius:13px;background:#081321
}
.source-row.header{
  color:var(--muted);font-size:.73rem;text-transform:uppercase;letter-spacing:.07em;background:transparent;border-style:dashed
}
.source-name strong{display:block}
.source-name span{display:block;color:var(--muted);font-size:.8rem;margin-top:3px}
.status-pill{
  display:inline-flex;width:max-content;padding:6px 9px;border-radius:999px;font-size:.73rem;font-weight:850;
  border:1px solid var(--line);background:#0b1726;color:var(--muted)
}
.status-pill.pending{border-color:rgba(232,201,106,.3);color:#e8c96a;background:rgba(232,201,106,.06)}
.status-pill.manual{border-color:rgba(53,200,255,.3);color:#8bdfff;background:rgba(53,200,255,.06)}
@media (max-width:900px){
  .score-summary-grid{grid-template-columns:repeat(2,1fr)}
  .source-row{grid-template-columns:1fr 1fr}
  .source-row.header{display:none}
}
@media (max-width:540px){
  .score-summary-grid{grid-template-columns:1fr}
  .source-row{grid-template-columns:1fr}
}

.testnet-banner{
  position:sticky;top:0;z-index:80;display:flex;justify-content:center;align-items:center;gap:12px;
  padding:8px 16px;background:linear-gradient(90deg,#5c1b8e,#0f70b7,#5c1b8e);
  color:#fff;border-bottom:1px solid rgba(255,255,255,.25);font-size:.8rem;text-align:center
}
.testnet-banner strong{letter-spacing:.08em}
.testnet-mode .site-header{top:35px}
.testnet-badge{
  border-color:rgba(232,201,106,.5)!important;background:rgba(232,201,106,.09)!important;color:#ffe89a!important
}
.testnet-source{
  border-color:rgba(180,108,255,.45)!important;background:rgba(180,108,255,.08)!important;color:#d9b8ff!important
}
.testnet-mode .metric-card,.testnet-mode .chart-card,.testnet-mode .case-archive,.testnet-mode .score-transparency{
  position:relative
}
.testnet-mode .metric-card::after,.testnet-mode .chart-card::after,.testnet-mode .case-archive::after,.testnet-mode .score-transparency::after{
  content:"TESTNET";
  position:absolute;right:12px;top:10px;font-size:.58rem;letter-spacing:.13em;font-weight:950;
  color:rgba(255,255,255,.18);pointer-events:none
}
@media (max-width:680px){
  .testnet-banner{position:relative;flex-direction:column;gap:2px}
  .testnet-mode .site-header{top:0}
}
