:root{
  --bg:#0b1220; --bg-elev:#101b30; --ink:#e7eef8; --ink-dim:#a8b6cf;
  --rule:#1d2a44; --rule-soft:#162038;
  --olive:#a8b475; --olive-dim:#7d8856;
  --blue:#6ea7ff; --blue-dim:#3c6bbf;
  --accent:#ffd56b; --accent-warm:#f2a566;
  --tier-a:#10b981; --tier-b:#3b82f6; --tier-c:#f59e0b; --tier-d:#f97316; --tier-e:#9ca3af;
  --serif:'Source Serif Pro',Georgia,'Times New Roman',serif;
  --sans:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Inter,sans-serif;
  --mono:'JetBrains Mono','SF Mono',Consolas,monospace;
  --topnav-bg:rgba(11,18,32,0.94);
}

:root[data-theme="light"]{
  --bg:#f8fafc; --bg-elev:#ffffff; --ink:#0b1220; --ink-dim:#475569;
  --rule:#e2e8f0; --rule-soft:#eef2f7;
  --olive:#6b7438; --olive-dim:#8b8e3a;
  --blue:#2563eb; --blue-dim:#3b82f6;
  --accent:#b45309; --accent-warm:#d97706;
  --tier-a:#059669; --tier-b:#2563eb; --tier-c:#d97706; --tier-d:#ea580c; --tier-e:#6b7280;
  --topnav-bg:rgba(248,250,252,0.95);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:var(--serif);line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:var(--blue);text-decoration:none}a:hover{color:var(--accent)}
h1,h2,h3,h4{font-family:var(--sans);font-weight:600;letter-spacing:-0.01em;margin:1.4em 0 0.6em}
h1{font-size:clamp(2rem,5vw,3.5rem);line-height:1.1}
h2{font-size:clamp(1.4rem,3vw,2rem)}
h3{font-size:1.15rem;color:var(--olive)}
p{margin:0.7em 0;color:var(--ink-dim)}
main{max-width:1140px;margin:0 auto;padding:0 1.25rem 4rem}
img{max-width:100%;height:auto;border-radius:6px}

/* Topnav */
.topnav{position:sticky;top:0;z-index:100;background:var(--topnav-bg);backdrop-filter:blur(8px);border-bottom:1px solid var(--rule);padding:0.8rem 1.25rem;display:flex;flex-wrap:wrap;gap:0.8rem;align-items:center;justify-content:space-between}
.brand{font-family:var(--sans);font-weight:600;font-size:1.05rem}
.brand a{color:var(--ink)}
.brand-meta{color:var(--ink-dim);font-family:var(--mono);font-size:0.8rem;margin-left:0.5rem}
.nav-links{display:flex;flex-wrap:wrap;gap:0.4rem 0.7rem;font-size:0.85rem;font-family:var(--sans);color:var(--ink-dim)}
.nav-link{padding:0.2rem 0.4rem;border-radius:3px}
.nav-link.active{color:var(--accent);background:rgba(255,213,107,0.08)}
.utility{display:flex;gap:0.6rem;align-items:center}
.lang-toggle,.reader-toggle{font-family:var(--mono);font-size:0.78rem;padding:0.25rem 0.55rem;border:1px solid var(--rule);background:transparent;color:var(--ink-dim);border-radius:4px;cursor:pointer;min-height:44px;display:inline-flex;align-items:center}
.lang-toggle:hover,.reader-toggle:hover{border-color:var(--olive);color:var(--olive)}

/* Hero */
.hero{padding:3rem 0 2rem;border-bottom:1px solid var(--rule)}
.hero-inner{display:grid;grid-template-columns:2fr 1fr;gap:2rem;align-items:start}
.hero h1{margin:0 0 0.5rem;color:var(--ink)}
.hero-subtitle{font-family:var(--sans);font-size:1.1rem;color:var(--olive);font-weight:500}
.hero-tagline{font-size:1.2rem;font-style:italic;color:var(--ink)}
.hero-proof{font-family:var(--mono);font-size:0.85rem;color:var(--ink-dim)}
.hero-portrait img{aspect-ratio:4/5;object-fit:cover;border:1px solid var(--rule);box-shadow:0 8px 40px rgba(0,0,0,0.3)}

/* HUD divider */
.hud-divider{display:flex;align-items:center;gap:1rem;margin:3rem 0 1.5rem;color:var(--olive);text-transform:uppercase;letter-spacing:0.1em;font-family:var(--mono);font-size:0.75rem}
.hud-divider span{padding:0 0.7rem}
.hud-divider::before,.hud-divider::after{content:'';flex:1;height:1px;background:linear-gradient(to right,transparent,var(--olive-dim),transparent)}

/* Pillar / product grid */
.pillar-grid,.product-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem}
.pillar-card,.product-card{background:var(--bg-elev);border:1px solid var(--rule);border-radius:8px;padding:1.25rem;transition:transform 0.15s,border-color 0.15s;color:inherit}
.pillar-card:hover{border-color:var(--olive);transform:translateY(-2px)}
.pillar-card h3,.product-card h3{margin-top:0;color:var(--ink)}
.product-card .tagline{font-style:italic;color:var(--olive)}
.product-card .pricing{font-family:var(--mono);font-size:0.85rem;color:var(--accent)}
.stage-badge{display:inline-block;font-family:var(--mono);font-size:0.7rem;padding:0.15rem 0.5rem;border-radius:3px;letter-spacing:0.08em}
.stage-live .stage-badge{background:rgba(16,185,129,0.15);color:#10b981;border:1px solid #10b981}
.stage-beta .stage-badge{background:rgba(245,158,11,0.15);color:#f59e0b;border:1px solid #f59e0b}
.stage-planned .stage-badge{background:rgba(156,163,175,0.15);color:#9ca3af;border:1px solid #9ca3af}
.product-card .links{margin-top:0.8rem;display:flex;gap:0.8rem;font-family:var(--mono);font-size:0.85rem}

/* Biography & generic article sections */
.bio-section,article > section{padding:1rem 0;border-bottom:1px solid var(--rule-soft)}
.bio-section h2,article > section h2{color:var(--ink)}
.awards{list-style:none;padding:0}
.awards li{padding:0.4rem 0;border-bottom:1px dashed var(--rule-soft);color:var(--ink-dim)}

/* CTA */
.cta-link{display:inline-block;margin-top:0.5rem;font-family:var(--mono);color:var(--accent);text-decoration:underline;text-underline-offset:3px}

/* Source tier chips */
.tier-chip{font-family:var(--mono);font-size:0.7rem;padding:0.1rem 0.4rem;border-radius:3px;display:inline-block}
.tier-A{background:rgba(16,185,129,0.18);color:var(--tier-a)}
.tier-B{background:rgba(59,130,246,0.18);color:var(--tier-b)}
.tier-C{background:rgba(245,158,11,0.18);color:var(--tier-c)}
.tier-D{background:rgba(249,115,22,0.18);color:var(--tier-d)}
.tier-E{background:rgba(156,163,175,0.18);color:var(--tier-e)}

/* Compliance disclaimer block */
.compliance-disclaimer{background:rgba(245,158,11,0.08);border:1px solid var(--tier-c);border-radius:6px;padding:1.25rem;margin:2rem 0;font-family:var(--sans);font-size:0.95rem;color:var(--ink)}

/* Partner routing cards */
.partner-route{background:var(--bg-elev);border:1px solid var(--rule);border-radius:8px;padding:1.5rem;margin:1rem 0}
.partner-route h3{margin-top:0;color:var(--olive)}

/* Media kit */
.copy-btn{font-family:var(--mono);font-size:0.75rem;padding:0.3rem 0.7rem;background:var(--olive);color:var(--bg);border:0;border-radius:3px;cursor:pointer;min-height:36px}
.copy-btn:hover{background:var(--accent)}
pre{background:var(--bg-elev);border:1px solid var(--rule);border-radius:6px;padding:1rem;overflow-x:auto;font-family:var(--mono);font-size:0.85rem;color:var(--ink);white-space:pre-wrap;word-wrap:break-word}

/* Timeline */
.tl-item{display:grid;grid-template-columns:80px 1fr;gap:1rem;padding:0.6rem 0;border-bottom:1px dashed var(--rule-soft);font-family:var(--sans);font-size:0.95rem}
.tl-year{font-family:var(--mono);color:var(--olive);font-weight:600}
.tl-event{color:var(--ink-dim)}
.tl-item.cat-civic .tl-year{color:var(--tier-a)}
.tl-item.cat-company .tl-year{color:var(--tier-b)}
.tl-item.cat-product .tl-year{color:var(--accent)}
.filter-chips{display:flex;flex-wrap:wrap;gap:0.4rem;margin:1rem 0}
.filter-chip{padding:0.3rem 0.7rem;border:1px solid var(--rule);background:transparent;color:var(--ink-dim);font-family:var(--mono);font-size:0.75rem;border-radius:14px;cursor:pointer;min-height:36px}
.filter-chip.active{background:var(--olive);color:var(--bg);border-color:var(--olive)}

/* Graph */
canvas#kg{background:var(--bg-elev);border:1px solid var(--rule);border-radius:8px;width:100%;max-width:1100px;height:auto;display:block;margin:1rem auto}
.mode-btn{padding:0.4rem 0.9rem;border:1px solid var(--rule);background:transparent;color:var(--ink-dim);font-family:var(--mono);font-size:0.8rem;border-radius:4px;cursor:pointer;min-height:36px}
.mode-btn.active{background:var(--olive);color:var(--bg);border-color:var(--olive)}

/* Footer */
.site-footer{border-top:1px solid var(--rule);margin-top:3rem;padding:1.5rem 1.25rem;color:var(--ink-dim);font-family:var(--mono);font-size:0.8rem}
.footer-inner{max-width:1140px;margin:0 auto;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between}

/* Reader / Research toggle */
body[data-reader-mode="reader"] .product-card .pricing{display:none}
body[data-reader-mode="reader"] .tier-chip{display:none}

/* Inline photo figures */
figure.inline-photo{margin:2rem auto;max-width:400px;text-align:center}
figure.inline-photo img{border:1px solid var(--rule);box-shadow:0 4px 20px rgba(0,0,0,0.2)}
figure.inline-photo figcaption{font-family:var(--mono);font-size:0.75rem;color:var(--ink-dim);margin-top:0.5rem;letter-spacing:0.05em}

.headshot-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;max-width:600px;margin:1.5rem 0}
.headshot-grid figure{margin:0}
.headshot-grid img{aspect-ratio:4/5;object-fit:cover;width:100%}
@media (max-width:480px){.headshot-grid{grid-template-columns:1fr;max-width:300px}}

/* Light theme overrides */
:root[data-theme="light"] .hero-portrait img{box-shadow:0 4px 20px rgba(0,0,0,0.08)}
:root[data-theme="light"] .product-card,
:root[data-theme="light"] .pillar-card,
:root[data-theme="light"] .partner-route,
:root[data-theme="light"] .pow-card{box-shadow:0 1px 3px rgba(0,0,0,0.05)}
:root[data-theme="light"] figure.inline-photo img{box-shadow:0 2px 12px rgba(0,0,0,0.1)}

/* Theme toggle button */
.theme-toggle{font-family:var(--mono);font-size:0.78rem;padding:0.25rem 0.55rem;border:1px solid var(--rule);background:transparent;color:var(--ink-dim);border-radius:4px;cursor:pointer;min-height:44px;display:inline-flex;align-items:center;gap:0.3rem}
.theme-toggle:hover{border-color:var(--olive);color:var(--olive)}
.theme-toggle .theme-icon{width:14px;height:14px;display:inline-block}

/* Mobile */
@media (max-width:720px){
  .hero-inner{grid-template-columns:1fr}
  .hero-portrait{max-width:280px}
  .nav-links{font-size:0.8rem}
  .topnav{flex-direction:column;align-items:flex-start}
  .utility{align-self:flex-end}
}
@media (max-width:480px){
  main{padding:0 1rem 3rem}
  .hero{padding:2rem 0 1.5rem}
  .pillar-grid,.product-grid{grid-template-columns:1fr}
}
