
:root{
  --bg:#f6f8fc; --surface:#fff; --surface-2:#fbfdff; --ink:#0f172a; --muted:#64748b;
  --line:#e2e8f0; --blue:#2563eb; --violet:#7c3aed; --green:#10b981; --amber:#f59e0b; --red:#ef4444;
  --shadow:0 18px 50px rgba(2,6,23,.08), 0 2px 14px rgba(2,6,23,.04);
  --max:1440px; --radius:22px;
}
*{box-sizing:border-box} html,body{margin:0;padding:0}
body{
  font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  color:var(--ink);
  background:
    radial-gradient(900px 420px at 10% -5%, rgba(37,99,235,.08), transparent 60%),
    radial-gradient(700px 320px at 100% 0%, rgba(124,58,237,.08), transparent 65%),
    var(--bg);
}
a{color:inherit;text-decoration:none}
.container{width:min(var(--max), calc(100vw - 28px));margin:0 auto}
.site-header{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.82);backdrop-filter: blur(12px);border-bottom:1px solid rgba(226,232,240,.75)}
.nav{display:flex;align-items:center;gap:14px;justify-content:space-between;padding:12px 0}
.brand{font-weight:900;letter-spacing:-.02em;display:flex;align-items:center;gap:9px}
.brand-dot{width:12px;height:12px;border-radius:4px;background:linear-gradient(135deg,#2563eb,#7c3aed,#10b981)}
.nav-links{display:flex;gap:10px;flex-wrap:wrap}
.nav-links a{padding:8px 10px;border-radius:999px;color:#334155;font-weight:700;font-size:14px}
.nav-links a:hover{background:#fff;border:1px solid var(--line);padding:7px 9px}
.nav-cta{display:flex;gap:8px;align-items:center}
.btn{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:11px 14px;font-weight:800;font-size:14px;border:1px solid var(--line);transition:.18s ease;white-space:nowrap}
.btn:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(2,6,23,.08)}
.btn-primary{border-color:transparent;color:#fff;background:linear-gradient(135deg,#2563eb,#7c3aed)}
.btn-ghost{background:#fff;color:#334155}
.btn-soft{background:rgba(255,255,255,.88);border-color:rgba(255,255,255,.65);color:#0f172a}
.btn.small{padding:8px 10px;font-size:12px}

.hero{position:relative;min-height:82vh;display:flex;align-items:flex-end;overflow:hidden}
.hero-bg{
  position:absolute;inset:0;
  background-image:url('https://cdn.prod.website-files.com/684af1948a02003efe7537ba/68f808c66426d61fa062dfb9_ChatGPT%20Image%20Oct%2021%2C%202025%2C%2005_26_17%20PM.png');
  background-size:cover;background-position:center center;
  transform:scale(1.02);
}
.hero-overlay{
  position:absolute;inset:0;
  background:
    linear-gradient(180deg, rgba(255,255,255,.18) 0%, rgba(255,255,255,.30) 22%, rgba(246,248,252,.78) 65%, rgba(246,248,252,.96) 100%),
    radial-gradient(900px 500px at 15% 20%, rgba(37,99,235,.12), transparent 65%),
    radial-gradient(800px 450px at 85% 15%, rgba(124,58,237,.12), transparent 65%);
}
.hero-inner{position:relative;z-index:2;padding:120px 0 18px}
.hero-copy{max-width:980px;background:rgba(255,255,255,.72);border:1px solid rgba(255,255,255,.75);box-shadow:var(--shadow);border-radius:28px;padding:22px;backdrop-filter: blur(10px);transform:translateY(14px)}
.pill,.eyebrow{
  display:inline-flex;align-items:center;gap:8px;border:1px solid rgba(226,232,240,.9);background:#fff;padding:7px 12px;border-radius:999px;
  font-weight:800;font-size:12px;color:#334155
}
.hero h1{margin:14px 0 10px;font-size:clamp(34px,4vw,58px);line-height:1.02;letter-spacing:-.035em;max-width:920px}
.lead{margin:0;color:#475569;font-size:clamp(15px,1.35vw,20px);line-height:1.42;max-width:930px}
.hero-actions{margin-top:16px;display:flex;gap:10px;flex-wrap:wrap}
.hero-proof{margin-top:16px;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.stat{background:#fff;border:1px solid var(--line);border-radius:16px;padding:12px}
.stat-k{font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:#64748b}
.stat-v{font-size:16px;font-weight:900;letter-spacing:-.02em;margin:4px 0;color:#0f172a}
.stat-d{font-size:13px;color:#64748b;line-height:1.35}

.map-story{padding:22px 0 8px}
.section-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:12px;flex-wrap:wrap}
.section-head h2{margin:6px 0 4px;font-size:clamp(28px,3vw,40px);letter-spacing:-.03em;line-height:1.05}
.section-head p{margin:0;color:var(--muted);max-width:900px}
.section-head.compact h2{font-size:clamp(24px,2.4vw,32px)}
.map-controls{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;max-width:760px}
.seg-btn{border:1px solid var(--line);background:#fff;color:#334155;border-radius:999px;padding:9px 11px;font-weight:800;font-size:12px;cursor:pointer}
.seg-btn.active{border-color:#bfdbfe;box-shadow:0 0 0 2px rgba(37,99,235,.12);background:#f7fbff}

.map-grid{display:grid;grid-template-columns:1fr 1.18fr;gap:12px;align-items:start}
.card{background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,255,255,.95));border:1px solid rgba(226,232,240,.9);border-radius:var(--radius);box-shadow:var(--shadow)}
.story-panel{padding:14px;position:sticky;top:74px}
.story-step{display:grid;gap:10px}
.story-step .step-num{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:900;color:#334155;background:#fff;border:1px solid var(--line);padding:6px 10px;border-radius:999px;width:max-content}
.story-step h3{margin:0;font-size:26px;line-height:1.06;letter-spacing:-.03em}
.story-step p{margin:0;color:var(--muted);line-height:1.42}
.story-bullets{display:grid;gap:8px}
.story-bullets li{list-style:none;border:1px dashed #dbe4f0;background:#fff;border-radius:12px;padding:10px 11px;color:#334155;font-weight:700;font-size:13px}
.story-footer{margin-top:12px;display:grid;gap:10px}
.legend-row,.meta-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;justify-content:space-between}
.chip{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);background:#fff;padding:7px 10px;border-radius:999px;font-size:12px;font-weight:800;color:#334155}
.sw{display:inline-block;width:10px;height:10px;border-radius:50%}
.sw.supply{background:#2563eb}.sw.demand{background:#ef4444}.sw.signal{background:#f59e0b}.sw.route{background:#7c3aed}
#metaCounts{font-size:12px;color:#64748b;font-weight:700}

.map-panel{overflow:hidden}
.map-toolbar{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:10px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#fff,#fbfdff)}
.map-toolbar .left{display:flex;gap:8px;flex-wrap:wrap}
.tool-btn{border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 10px;font-weight:800;font-size:12px;cursor:pointer;color:#334155}
.tool-btn.active{border-color:#bfdbfe;background:#f6faff;box-shadow:0 0 0 2px rgba(37,99,235,.12)}
#nodeFilter{border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:#fff;font-weight:700;color:#334155}
#worldMap{height:640px;background:#0b1220}

/* Leaflet custom dark overlay */
.leaflet-container{font:12px/1.35 Inter,system-ui,sans-serif}
.leaflet-pane.leaflet-overlay-pane canvas{filter:drop-shadow(0 0 8px rgba(124,58,237,.35))}
.marker-dot{width:10px;height:10px;border-radius:50%;border:2px solid rgba(255,255,255,.9);box-shadow:0 0 0 5px rgba(255,255,255,.08), 0 0 16px currentColor}
.marker-dot.supply{color:#3b82f6;background:#3b82f6}
.marker-dot.demand{color:#fb7185;background:#fb7185}
.marker-dot.signal{color:#f59e0b;background:#f59e0b}
.marker-pulse::after{content:"";position:absolute;inset:-7px;border:1px solid currentColor;border-radius:50%;opacity:.55;animation:pulse 2s ease-out infinite}
@keyframes pulse{0%{transform:scale(.5);opacity:.7}100%{transform:scale(1.8);opacity:0}}
.leaflet-popup-content-wrapper{border-radius:14px;border:1px solid #334155;background:#0f172a;color:#e2e8f0}
.leaflet-popup-tip{background:#0f172a}
.popup-k{font-size:11px;color:#93c5fd;text-transform:uppercase;letter-spacing:.06em;font-weight:800}
.popup-v{font-weight:800;color:#fff;margin-top:2px}
.popup-d{color:#cbd5e1;margin-top:4px}

.how-section{padding:10px 0 36px}
.embed-card{border:1px solid rgba(226,232,240,.9);border-radius:24px;overflow:hidden;background:#fff;box-shadow:var(--shadow)}
.embed-card iframe{width:100%;height:1700px;border:0;display:block;background:#f6f8fc}

@media (max-width:1180px){
  .map-grid{grid-template-columns:1fr}
  .story-panel{position:relative;top:auto}
  #worldMap{height:560px}
}
@media (max-width:860px){
  .nav-links,.nav-cta .btn-ghost{display:none}
  .hero{min-height:78vh}
  .hero-copy{padding:16px}
  .hero-proof{grid-template-columns:1fr}
  .section-head h2{font-size:28px}
  .container{width:min(var(--max), calc(100vw - 16px))}
  #worldMap{height:500px}
  .embed-card iframe{height:1900px}
}


.persona-controller{padding:14px;margin-bottom:12px}
.persona-controller-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;flex-wrap:wrap;margin-bottom:10px}
.persona-controller h3{margin:6px 0 4px;font-size:28px;line-height:1.05;letter-spacing:-.03em}
.persona-controller p{margin:0;color:var(--muted);max-width:980px}
.persona-status{border:1px solid var(--line);background:#fff;border-radius:999px;padding:10px 12px;font-weight:800;color:#334155;white-space:nowrap}
.persona-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.persona-card{border:1px solid var(--line);background:linear-gradient(180deg,#fff,#fbfdff);border-radius:18px;padding:12px;display:grid;gap:8px;cursor:pointer;transition:.18s ease;text-align:left}
.persona-card:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(2,6,23,.06)}
.persona-card.active{border-color:#bfdbfe;box-shadow:0 0 0 2px rgba(37,99,235,.12), 0 12px 26px rgba(2,6,23,.08)}
.persona-tag{display:inline-flex;align-items:center;gap:8px;border:1px solid #dbe4f0;border-radius:999px;padding:6px 10px;width:max-content;background:#fff;font-size:11px;font-weight:900;color:#475569;text-transform:uppercase;letter-spacing:.05em}
.persona-dot{width:10px;height:10px;border-radius:50%}
.persona-card h4{margin:0;font-size:18px;line-height:1.05;letter-spacing:-.02em}
.persona-card p{font-size:13px;line-height:1.35;color:#64748b}
.persona-card .mini-cta{margin-top:2px;display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:800;color:#1d4ed8}
.story-step .persona-context{display:flex;justify-content:space-between;gap:8px;align-items:center;flex-wrap:wrap}
.story-step .persona-context .context-chip{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);background:#fff;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:800;color:#334155}
.story-step .persona-context .step-hint{font-size:12px;color:#64748b;font-weight:700}
.story-cta-wrap{display:grid;gap:8px;margin-top:6px}
.story-cta-wrap .story-cta-label{font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:#64748b}
.story-cta-wrap .story-cta{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid #bfd4ff;background:linear-gradient(180deg,#fff,#f6faff);border-radius:14px;padding:10px 12px;font-weight:800;color:#1e3a8a}
.story-cta-wrap .story-cta small{display:block;color:#475569;font-weight:700;font-size:12px}
.story-cta-wrap .story-cta:hover{box-shadow:0 8px 20px rgba(37,99,235,.12)}

@media (max-width:1180px){ .persona-grid{grid-template-columns:1fr 1fr} }
@media (max-width:720px){ .persona-grid{grid-template-columns:1fr} .persona-controller h3{font-size:24px} .persona-status{white-space:normal} }
