/* Acts of Evolution — site chrome
   Plain CSS, no build step. Brand palette matches the AI Map's forced dark theme
   (see ai-map.css :root[data-theme="dark"]) so the embedded map reads as one piece
   with the rest of the page rather than a bolted-on widget. */

:root{
  --ink:#f3f4ef;
  --muted:#9ba29c;
  --line:#28312d;
  --panel:#111714;
  --black:#080b0a;
  --green:#b7f34a;
  --blue:#62a8ff;
  --orange:#ff7f50;
  /* same validated categorical hues as the AI Map's dark theme, reused for the
     AI-exposure tag in the company table/panel so the two views agree */
  --exp-direct:#3987e5;
  --exp-infra:#d95926;
  --exp-enabler:#199e70;
  --exp-other:#9a9890;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--black);
  color:var(--ink);
  font-family:Arial,Helvetica,sans-serif;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}
img,svg{display:block}
h1,h2,h3,p,blockquote{margin:0}

.skip-link{
  position:absolute; left:-9999px; top:0; z-index:100;
  background:var(--green); color:#11170f; padding:10px 16px; font-size:13px; font-weight:800;
}
.skip-link:focus{left:12px; top:12px}

a:focus-visible, button:focus-visible, [tabindex]:focus-visible{
  outline:2px solid var(--green); outline-offset:3px;
}

/* ---------- header ---------- */
.site-header{
  height:76px; display:flex; align-items:center; justify-content:space-between;
  padding:0 clamp(22px,5vw,76px); border-bottom:1px solid var(--line);
  position:sticky; top:0; z-index:40;
  background:rgba(8,11,10,.92); backdrop-filter:blur(14px);
}
.brand{display:flex; align-items:center; gap:12px; font-size:13px; font-weight:800; letter-spacing:.14em}
.brand-mark{
  display:grid; place-items:center; width:33px; height:33px;
  border:1px solid var(--green); color:var(--green); font-size:11px; letter-spacing:-.02em; flex:none;
}
.site-header nav{display:flex; align-items:center; gap:28px; font-size:13px; color:#c2c8c3}
.site-header nav a:hover{color:#fff}
.nav-cta{
  display:flex; align-items:center; gap:8px; border:1px solid #536159; padding:10px 14px; color:#fff!important;
}
.nav-cta:hover{border-color:var(--green); color:var(--green)!important}
.nav-links{display:flex; align-items:center; gap:28px}

/* ---------- hero ---------- */
.hero{
  display:grid; gap:22px; align-items:start;
  padding:72px clamp(22px,5vw,76px) 54px; position:relative; overflow:hidden;
}
.hero:before{
  content:""; position:absolute; inset:0;
  background-image:linear-gradient(rgba(90,110,98,.07) 1px,transparent 1px),
                    linear-gradient(90deg,rgba(90,110,98,.07) 1px,transparent 1px);
  background-size:48px 48px;
  mask-image:linear-gradient(to bottom,black 0%,black 55%,transparent 100%);
}
.hero-copy{position:relative; z-index:1; max-width:900px}
.eyebrow,.kicker{font-size:11px; font-weight:800; letter-spacing:.18em; color:var(--green)}
.eyebrow{display:flex; gap:9px; align-items:center}
.eyebrow span{width:7px; height:7px; background:var(--green); border-radius:50%; box-shadow:0 0 16px var(--green)}
h1{font-size:clamp(42px,6.4vw,88px); line-height:.95; letter-spacing:-.05em; margin:22px 0 24px; font-weight:750}
h1 em{font-family:Georgia,serif; font-weight:400; font-style:italic; color:var(--green)}
.hero-lede{font-size:clamp(16px,1.4vw,20px); line-height:1.55; color:#b4bbb5; max-width:620px}
.hero-actions{display:flex; gap:12px; margin-top:30px; flex-wrap:wrap}
.button{
  min-height:48px; padding:0 18px; display:inline-flex; align-items:center; gap:12px;
  font-size:13px; font-weight:800; letter-spacing:.03em; border:1px solid transparent; cursor:pointer;
}
.button.primary{background:var(--green); color:#11170f}
.button.primary:hover{background:#c8ff6b}
.button.secondary{border:1px solid #465049; color:var(--ink)}
.button.secondary:hover{border-color:#7c8a7f}
.button.light{background:#0b0e0c; color:#fff; white-space:nowrap}
.button.light:hover{background:#171c17}
.microcopy{font-size:11px; color:#737d76; margin-top:16px}
.hero-stats{
  position:relative; z-index:1; display:flex; gap:clamp(20px,4vw,56px); flex-wrap:wrap;
  padding-top:30px; border-top:1px solid var(--line); margin-top:12px;
}
.hero-stats div{display:flex; flex-direction:column; gap:4px}
.hero-stats strong{font:400 30px Georgia,serif; color:var(--ink)}
.hero-stats span{font-size:11px; color:var(--muted); letter-spacing:.04em}

/* ---------- 3D hero teaser ---------- */
.hero3d{
  position:relative; height:100vh; min-height:560px; max-height:960px; overflow:hidden;
  border-bottom:1px solid var(--line); cursor:pointer;
}
#hero3dCanvas{position:absolute; inset:0}
#hero3dCanvas canvas{outline:none}
.hero3d-overlay{
  position:absolute; left:0; right:0; top:0; bottom:0; z-index:2;
  display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center;
  padding:0 22px; pointer-events:none;
  background:radial-gradient(ellipse 780px 480px at 50% 50%, rgba(5,7,6,.72) 0%, rgba(5,7,6,.42) 55%, rgba(5,7,6,0) 82%);
}
.hero3d-overlay .eyebrow{justify-content:center}
.hero3d-overlay h1{
  font-size:clamp(38px,6.4vw,80px); line-height:.98; letter-spacing:-.04em; margin:20px 0 18px;
  text-shadow:0 0 30px rgba(0,0,0,.7), 0 0 70px rgba(0,0,0,.6);
}
.hero3d-lede{font-size:clamp(15px,1.6vw,19px); color:#c7cdc8; margin:0 0 30px; text-shadow:0 0 20px rgba(0,0,0,.8)}
.hero3d-cta{pointer-events:auto}
.hero3d-scroll{
  position:absolute; left:50%; bottom:26px; transform:translateX(-50%); z-index:2;
  display:flex; flex-direction:column; align-items:center; gap:6px; color:#9ba29c; font-size:11px;
  letter-spacing:.04em; text-decoration:none; pointer-events:auto;
}
.hero3d-scroll:hover{color:#fff}
.hero3d-scroll svg{animation:hero3d-bob 1.8s ease-in-out infinite}
@keyframes hero3d-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}
@media (max-width:720px){
  .hero3d{height:88vh}
}

/* ---------- stack chips (clickable AI-stack layer filters) ---------- */
.stack-strip{
  padding:22px clamp(22px,5vw,76px); border-top:1px solid var(--line); border-bottom:1px solid var(--line);
}
.stack-strip-label{font-size:10px; color:var(--green); font-weight:800; letter-spacing:.14em; margin-bottom:14px; display:block}
.stack-chips{display:flex; flex-wrap:wrap; gap:8px}
.stack-chip{
  border:1px solid #35403a; background:transparent; color:#c2c8c3; font-size:12px; padding:8px 12px;
  cursor:pointer; display:flex; align-items:center; gap:7px; font-family:inherit;
}
.stack-chip b{color:var(--muted); font-weight:600; font-size:10.5px}
.stack-chip:hover{border-color:var(--green); color:#fff}

/* ---------- company database (table + toolbar) ---------- */
.db-section{padding:88px clamp(22px,5vw,76px) 100px; border-bottom:1px solid var(--line)}
.db-head{display:flex; justify-content:space-between; align-items:flex-end; gap:24px; margin-bottom:8px; flex-wrap:wrap}
.db-head h2{font-size:clamp(30px,3.6vw,48px); line-height:1.08; letter-spacing:-.03em; max-width:640px}
.db-head-meta{display:flex; gap:22px; flex-wrap:wrap}
.db-head-meta div{display:flex; flex-direction:column; gap:3px}
.db-head-meta strong{font:400 24px Georgia,serif}
.db-head-meta span{font-size:10px; color:var(--muted); letter-spacing:.05em}
.db-lede{color:#aeb6b0; font-size:15px; max-width:680px; margin:14px 0 30px; line-height:1.6}

.db-toolbar{display:flex; gap:10px; flex-wrap:wrap; margin-bottom:20px}
.db-search{
  flex:1 1 240px; min-width:200px; background:var(--panel); border:1px solid #35403a; color:var(--ink);
  padding:11px 14px; font-size:13px; font-family:inherit;
}
.db-search:focus{outline:2px solid var(--green); outline-offset:1px}
.db-select{
  background:var(--panel); border:1px solid #35403a; color:var(--ink); padding:11px 12px; font-size:13px; font-family:inherit;
}
.db-result-count{font-size:11px; color:var(--muted); letter-spacing:.04em; margin-bottom:10px}

.db-table-wrap{border:1px solid #35403a; background:var(--panel); overflow-x:auto}
.db-table{width:100%; border-collapse:collapse; font-size:13px; min-width:760px}
.db-table thead th{
  text-align:left; font-size:10.5px; letter-spacing:.06em; color:var(--muted); text-transform:uppercase;
  padding:13px 16px; border-bottom:1px solid var(--line); white-space:nowrap; cursor:pointer; user-select:none;
}
.db-table thead th:hover{color:var(--ink)}
.db-table tbody tr{border-bottom:1px solid var(--line); cursor:pointer}
.db-table tbody tr:hover{background:rgba(183,243,74,.05)}
.db-table tbody tr:last-child{border-bottom:none}
.db-table td{padding:13px 16px; vertical-align:middle}
.db-table td b{display:block; font-size:13.5px; color:var(--ink); font-weight:700}
.db-table td small{display:block; font-size:11px; color:var(--muted); margin-top:2px}
.ticker{
  display:inline-block; font:11.5px ui-monospace,SFMono-Regular,Menlo,monospace; background:rgba(183,243,74,.1);
  color:var(--green); padding:2px 6px; border-radius:3px;
}
.private-label{font-size:12.5px; color:#c2c8c3}
.layer-name{font-size:12.5px; color:#c2c8c3}
.exposure-tag{display:inline-flex; align-items:center; gap:6px; font-size:12px; color:#c2c8c3; white-space:nowrap}
.exposure-tag i{width:8px; height:8px; border-radius:50%; display:inline-block; flex:none}
.exposure-tag.lg{font-size:13px}
.etf-list{display:flex; gap:5px; flex-wrap:wrap}
.etf-chip{
  font-size:10.5px; font-weight:700; letter-spacing:.03em; color:#c2c8c3; border:1px solid #35403a;
  padding:2px 7px; border-radius:3px; white-space:nowrap;
}
a.etf-chip{cursor:pointer}
a.etf-chip:hover{border-color:var(--green); color:var(--green)}
.etf-none{color:#5a635d}
.profile-btn{
  display:inline-flex; align-items:center; gap:6px; background:transparent; border:1px solid #465049; color:var(--ink);
  font-size:11.5px; font-weight:700; padding:7px 10px; cursor:pointer; font-family:inherit; white-space:nowrap;
}
.profile-btn:hover{border-color:var(--green); color:var(--green)}
.empty-row{padding:40px 16px; text-align:center; color:var(--muted)}
.link-btn{background:none; border:none; color:var(--green); text-decoration:underline; cursor:pointer; font:inherit; padding:0}
.db-note{font-size:12px; color:#737d76; margin-top:16px; max-width:680px; line-height:1.6}

/* ---------- company profile panel ---------- */
.panel-backdrop{
  position:fixed; inset:0; background:rgba(4,6,5,.7); z-index:80; display:none; align-items:stretch; justify-content:flex-end;
}
.panel-backdrop.open{display:flex}
.company-panel{
  width:min(560px,100%); background:var(--panel); border-left:1px solid #35403a; overflow-y:auto; position:relative;
  padding:30px 30px 60px;
}
.panel-close{
  position:absolute; top:20px; right:20px; background:transparent; border:1px solid #465049; color:var(--ink);
  width:32px; height:32px; cursor:pointer; font-size:14px;
}
.panel-close:hover{border-color:var(--green); color:var(--green)}
.panel-head{padding-right:40px}
.panel-id{font-size:11px; color:var(--muted); letter-spacing:.06em; margin-bottom:8px}
.panel-head h2{font-size:clamp(26px,3vw,34px); letter-spacing:-.03em; margin-bottom:14px}
.panel-tags{display:flex; gap:10px; align-items:center; margin-bottom:14px; flex-wrap:wrap}
.ticker-link{
  display:inline-flex; align-items:center; gap:6px; font-size:13px; color:var(--green); margin-bottom:26px;
}
.ticker-link code{font:12px ui-monospace,SFMono-Regular,Menlo,monospace; background:rgba(183,243,74,.1); padding:2px 6px; border-radius:3px}
.ticker-link.muted{color:var(--muted)}
.panel-body{border-top:1px solid var(--line); padding-top:22px}
.fact{margin-bottom:26px}
.fact>span{display:block; font-size:10.5px; font-weight:800; letter-spacing:.1em; color:var(--green); margin-bottom:8px; text-transform:uppercase}
.fact p{font-size:14.5px; line-height:1.65; color:#d5dad3}
.fact-note{font-size:11.5px; color:#737d76; line-height:1.55; margin-top:8px}
.peer-list{display:flex; flex-wrap:wrap; gap:8px}
.peer-chip{
  background:transparent; border:1px solid #35403a; color:#c2c8c3; font-size:12px; padding:6px 10px; cursor:pointer; font-family:inherit;
}
.peer-chip:hover{border-color:var(--green); color:var(--green)}
.rel-list{display:flex; flex-direction:column; gap:14px}
.rel-row{border:1px solid #26302b; padding:12px 14px; background:rgba(255,255,255,.015)}
.rel-sentence{font-size:13.5px; line-height:1.5; color:#d5dad3; margin-bottom:6px}
.rel-meta{display:flex; gap:8px; margin-bottom:6px; flex-wrap:wrap}
.rel-type{font-size:10px; color:var(--muted); border:1px solid #35403a; padding:1px 6px; border-radius:3px}
.rel-status{font-size:10px; padding:1px 6px; border-radius:3px; font-weight:700}
.rel-status-current{color:#8fd6ad; border:1px solid #2b5c42}
.rel-status-dated{color:#e0c46b; border:1px solid #5c4f2b}
.rel-status-comparison{color:#9a9890; border:1px solid #3a3a37}
.rel-claim{font-size:12.5px; color:#9aa39c; line-height:1.5; margin-bottom:6px}
.rel-source{font-size:11.5px; color:var(--green)}
.map-link{margin-top:10px; width:100%; justify-content:center}

/* ---------- mission ---------- */
.mission{
  padding:100px clamp(22px,9vw,150px); display:grid; grid-template-columns:1fr 3fr; gap:40px;
  border-bottom:1px solid var(--line);
}
.section-number{font-size:10px; letter-spacing:.16em; color:#68736c}
.mission-copy h2{font-size:clamp(34px,4.6vw,64px); line-height:1.04; letter-spacing:-.04em; margin:20px 0 30px}
.mission-copy>p:last-child{max-width:700px; color:#aeb6b0; font-size:19px; line-height:1.6}

/* ---------- principles ---------- */
.principles{
  display:grid; grid-template-columns:repeat(4,1fr); padding:0 clamp(22px,5vw,76px);
  border-bottom:1px solid var(--line);
}
.principles article{padding:54px 30px 60px; border-right:1px solid var(--line); border-left:1px solid var(--line); margin-left:-1px; min-height:280px; position:relative}
.principles article:first-child{margin-left:0}
.principles svg{color:var(--green); margin-bottom:44px}
.principles article>span{position:absolute; right:20px; top:22px; color:#536059; font:italic 14px Georgia,serif}
.principles h3{font-size:18px; margin:0 0 14px}
.principles p{font-size:14px; line-height:1.65; color:#919b94; margin:0}

/* ---------- founder ---------- */
.founder{
  display:grid; grid-template-columns:1fr 1.1fr 1.4fr; gap:5vw; padding:100px clamp(22px,9vw,150px); align-items:start;
  border-bottom:1px solid var(--line);
}
.founder-rule{height:1px; background:var(--green); margin-top:9px}
.founder blockquote{font:italic clamp(30px,3.6vw,56px)/1.06 Georgia,serif; margin:22px 0; color:#f6f7f3}
.founder-note{font-size:16px; line-height:1.7; color:#abb3ad; padding-top:22px}
.founder-note p{margin:0 0 22px}
.founder-note p:last-child{margin-bottom:0}

/* ---------- final cta ---------- */
.final-cta{
  margin:70px clamp(22px,5vw,76px); padding:56px 60px; background:var(--green); color:#11160f;
  display:flex; align-items:flex-end; justify-content:space-between; gap:26px; flex-wrap:wrap;
}
.final-cta .kicker{color:#465d23}
.final-cta h2{font-size:clamp(32px,3.6vw,54px); margin:16px 0 0; letter-spacing:-.03em}

/* ---------- footer ---------- */
footer{
  display:grid; grid-template-columns:1fr 1.5fr 1fr; gap:44px; padding:56px clamp(22px,5vw,76px);
  border-top:1px solid var(--line); color:#858e88; font-size:12px; line-height:1.6;
}
.footer-brand{display:flex; align-items:center; gap:12px; color:#e8ebe7; letter-spacing:.1em}
.footer-copy p{margin:0 0 8px}
.footer-links{display:flex; justify-content:flex-end; gap:22px; align-self:start}
.footer-links a:hover{color:#fff}

/* ---------- disclosures / legal page ---------- */
.legal-page{min-height:100vh}
.legal-wrap{max-width:820px; margin:70px auto 100px; padding:0 clamp(22px,5vw,40px)}
.legal-wrap h1{font-size:clamp(42px,6vw,72px); letter-spacing:-.04em; margin:16px 0 0}
.legal-wrap .updated{color:var(--green); font-size:11px; letter-spacing:.12em; font-weight:800}
.legal-wrap section{border-top:1px solid var(--line); padding:30px 0}
.legal-wrap section:first-of-type{margin-top:40px}
.legal-wrap h2{font-size:19px; margin:0 0 14px}
.legal-wrap p,.legal-wrap li{color:#acb4ae; line-height:1.75; font-size:16px; margin:0}
.legal-wrap a{color:var(--green); text-decoration:underline}

/* ---------- responsive ---------- */
@media (max-width:980px){
  .principles{grid-template-columns:1fr 1fr}
  .founder{grid-template-columns:1fr}
  .founder-rule{width:90px}
  .mission{grid-template-columns:1fr; gap:20px}
}
@media (max-width:720px){
  .site-header nav a:not(.nav-cta){display:none}
  .site-header{padding:0 16px}
  .nav-cta{padding:9px 12px; font-size:12px}
  .hero{padding-top:44px}
  .hero-stats{gap:28px}
  .principles{grid-template-columns:1fr}
  .principles article{min-height:auto; padding:40px 4px 44px}
  .mission,.founder{padding-top:64px; padding-bottom:64px}
  .db-section{padding:56px clamp(16px,5vw,76px) 72px}
  .final-cta{padding:36px 26px; flex-direction:column; align-items:flex-start; margin:48px clamp(16px,5vw,76px)}
  footer{grid-template-columns:1fr; gap:24px}
  .footer-links{justify-content:flex-start}
  .company-panel{padding:24px 18px 50px}
}

/* Release 2.3: keyboard access and comparison */
:focus-visible{outline:3px solid #b7f34a;outline-offset:3px}
.sort-button{font:inherit;color:inherit;background:none;border:0;padding:10px 0;cursor:pointer;text-align:left}.sort-button:after{content:' ↕'}
.compare-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin:16px 0;font-size:14px}.compare-check{display:flex;align-items:center;gap:6px;font-size:13px;margin-bottom:8px;cursor:pointer}.compare-check input{width:18px;height:18px}
.comparison-scroll{overflow:auto}.comparison-table{border-collapse:collapse;width:100%;font-size:14px}.comparison-table th,.comparison-table td{padding:14px;border-bottom:1px solid #354039;vertical-align:top;text-align:left;min-width:150px}.company-panel:has(.comparison-table){width:min(1100px,100vw);max-width:100vw}.comparison-table th:first-child{min-width:110px}
button:disabled{opacity:.45;cursor:not-allowed}.fact-note{overflow-wrap:anywhere}.rel-row{overflow-wrap:anywhere}
