/* capital-graph.css — the instance graph (one resolved person, real typed edges).
   Ported from the reviewer's capital-graph-section.html. Everything is scoped
   under .igraph so the generic class names (.node/.edge/.card/.g/.dot/.types…)
   never collide with the rest of the site. Restraint by design: flat colors,
   no glow, the orange accent (--ig-brand) only on the hovered edge. */
.igraph{
  --ig-ink:#182230; --ig-ink2:#4a5566; --ig-ink3:#7b8494; --ig-rule:#e3e6ea;
  --ig-paper:#ffffff; --ig-paper2:#f6f7f8;
  --ig-teal:#1f8a80; --ig-amber:#b7791f; --ig-red:#c0574f; --ig-purple:#6d5bd0;
  --ig-brand:#ff8300;
}
.igraph .ig-title{max-width:24ch;margin:var(--sp-4) 0 var(--sp-3)}
.igraph .ig-lede{color:var(--ig-ink2);max-width:60ch;margin:0 0 var(--sp-8);font-size:17px}

/* graph + rail */
.igraph .ig-graph{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(290px,.85fr);
  gap:40px;align-items:start}
@media (max-width:900px){.igraph .ig-graph{grid-template-columns:1fr}}
.igraph .ig-stage{position:relative;background:var(--ig-paper2);
  border:1px solid var(--ig-rule);border-radius:12px;padding:8px}
.igraph .ig-stage svg{display:block;width:100%;height:auto;overflow:visible}
.igraph .hit{stroke:transparent;stroke-width:22;fill:none}
.igraph .edge{stroke:#b8bfc9;pointer-events:none;stroke-width:1.5;fill:none;
  transition:stroke .15s,stroke-width .15s}
.igraph .elabel{font:12px var(--font-sans);fill:var(--ig-ink2)}
.igraph .esrc{font:11px var(--font-sans);fill:var(--ig-ink3)}
.igraph .node{cursor:pointer}
.igraph .node circle{stroke:var(--ig-paper);stroke-width:3;transition:filter .15s}
.igraph .node text{font:13px var(--font-sans);fill:var(--ig-ink);pointer-events:none}
.igraph .node .sub{font-size:11px;fill:var(--ig-ink3)}
.igraph .center circle{fill:var(--ig-ink)}
.igraph .center text{fill:#fff}
.igraph .center .name{font:600 15px var(--font-display);fill:#fff}
.igraph .g:hover .edge,.igraph .g.on .edge{stroke:var(--ig-brand);stroke-width:2.5}
.igraph .g:hover .elabel,.igraph .g.on .elabel{fill:var(--ig-ink)}
.igraph .g:hover circle,.igraph .g.on circle{filter:brightness(1.06)}
.igraph .dim .g:not(.on):not(:hover){opacity:.28}
.igraph .t-teal{fill:var(--ig-teal)}.igraph .t-amber{fill:var(--ig-amber)}
.igraph .t-red{fill:var(--ig-red)}.igraph .t-purple{fill:var(--ig-purple)}
.igraph .t-ink{fill:var(--ig-ink2)}

/* rail card */
.igraph .rail{position:sticky;top:92px}
.igraph .card{border:1px solid var(--ig-rule);border-radius:12px;padding:20px 22px;background:var(--ig-paper)}
.igraph .card .rel{font:600 18px/1.25 var(--font-display);margin:0 0 4px;color:var(--ig-ink)}
.igraph .card .to{color:var(--ig-ink2);margin:0 0 16px}
.igraph .fact{display:grid;grid-template-columns:96px 1fr;gap:6px 14px;font-size:14px;margin:0}
.igraph .fact dt{color:var(--ig-ink3)}.igraph .fact dd{margin:0;color:var(--ig-ink)}
.igraph .fact a{color:var(--ig-ink);text-decoration:underline;
  text-decoration-color:#c7ccd4;text-underline-offset:3px}
.igraph .agree{display:inline-flex;align-items:center;gap:6px;color:var(--ig-teal);font-weight:600}
.igraph .agree::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--ig-teal)}
.igraph .hint{color:var(--ig-ink3);font-size:14px;margin:14px 0 0}

/* legend of types */
.igraph .types{margin:36px 0 0;padding:0;list-style:none;
  display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px 22px;font-size:14px}
.igraph .types li{display:flex;gap:10px;align-items:baseline}
.igraph .types .dot{width:10px;height:10px;border-radius:50%;flex:none;position:relative;top:1px}
.igraph .types b{font-weight:600;color:var(--ig-ink)}
.igraph .types span{display:block;color:var(--ig-ink3);font-size:12.5px}

/* what every edge carries */
.igraph .carries{margin:52px 0 0;border-top:1px solid var(--ig-rule)}
.igraph .carries > div{display:grid;grid-template-columns:180px 1fr;gap:24px;
  padding:18px 0;border-bottom:1px solid var(--ig-rule)}
.igraph .carries b{font:600 17px var(--font-display);color:var(--ig-ink)}
.igraph .carries p{margin:0;color:var(--ig-ink2);max-width:62ch}
@media (max-width:640px){.igraph .carries > div{grid-template-columns:1fr;gap:6px}}
.igraph .ig-note{color:var(--ig-ink3);font-size:13.5px;margin:18px 0 0}

/* how it's built — three numbered steps */
.build-steps{list-style:none;margin:0;padding:0;display:grid;gap:var(--sp-6);
  grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:820px){.build-steps{grid-template-columns:1fr}}
.build-steps li{padding-top:var(--sp-4);border-top:2px solid var(--action)}
.build-steps__n{font-family:var(--font-mono);font-size:var(--step--1);
  letter-spacing:.08em;text-transform:uppercase;color:var(--action);font-weight:700}
.build-steps h3{margin:var(--sp-2) 0;font-size:var(--step-2);color:var(--text-heading)}
.build-steps p{margin:0;color:var(--text-soft);line-height:1.55}

/* trial CTA */
.cg-cta{text-align:center;max-width:640px;margin:0 auto}
.cg-cta h2{margin:0 0 var(--sp-3)}
.cg-cta p{color:var(--text-soft);margin:0 0 var(--sp-6);font-size:var(--step-1)}
.cg-cta__row{display:flex;gap:var(--sp-4);justify-content:center;flex-wrap:wrap}

/* === dark theme (landing hero) =========================================== */
.igraph--dark{
  --ig-ink:#f2f4f8; --ig-ink2:#c6cedb; --ig-ink3:#9aa3b4; --ig-rule:rgba(255,255,255,.16);
  --ig-paper:rgba(255,255,255,.06); --ig-paper2:rgba(255,255,255,.04);
}
.igraph--dark .ig-stage{border-color:rgba(255,255,255,.12)}
.igraph--dark .node circle{stroke:#141a37}
.igraph--dark .center circle{fill:#eef1f7}
.igraph--dark .center text,.igraph--dark .center .name{fill:#141a37}
.igraph--dark .edge{stroke:rgba(198,206,219,.42)}
.igraph--dark .card{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.16)}
.igraph--dark .fact a{color:#fff;text-decoration-color:rgba(255,255,255,.4)}
.igraph--dark .agree{color:#5fd0b8}.igraph--dark .agree::before{background:#5fd0b8}

/* === layout modes ======================================================== */
.igraph .ig-graph--hero{grid-template-columns:1fr;gap:14px}
.igraph .ig-graph--hero .rail{position:static}
.igraph .ig-graph--hero .hint{display:none}
.igraph .ig-graph--hero .ig-stage{padding:6px}
.igraph .ig-graph--hero .card{padding:16px 18px}

/* emphasized edge — the company→foundation link (not through the person) */
.igraph .g.emph .edge{stroke:var(--ig-brand);stroke-dasharray:5 4;opacity:.8;stroke-width:2}
.igraph .g.emph .elabel{fill:var(--ig-ink);font-weight:600}

/* === reverse screen ====================================================== */
.rgraph{background:#f6f7f8;border:1px solid #e3e6ea;border-radius:12px;padding:14px;max-width:720px;margin:var(--sp-6) 0 0}
.rgraph svg{display:block;width:100%;height:auto;overflow:visible}
.rgraph .redge path{stroke:#ff8300;stroke-width:2.5;fill:none}
.rgraph .redge text{font:12px var(--font-sans);fill:#4a5566}
.rgraph .rnode circle{stroke:#fff;stroke-width:3}
.rgraph .rnode text{font:13px var(--font-sans);fill:#182230;font-weight:600}
.rgraph .t-teal{fill:#1f8a80}

/* === how it's built: horizontal flow ===================================== */
@media(min-width:821px){
  .build-steps li{position:relative}
  .build-steps li:not(:last-child)::after{content:"→";position:absolute;top:var(--sp-4);
    right:calc(var(--sp-6) / -2);transform:translateX(50%);color:var(--action);font-weight:700;font-size:var(--step-1)}
}

/* === four seats — compact links ========================================== */
.seat-links{display:grid;gap:var(--sp-3);grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:640px){.seat-links{grid-template-columns:1fr}}
.seat-link{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);
  background:var(--surface);border:var(--border) solid var(--line);border-radius:var(--radius);
  padding:var(--sp-4) var(--sp-5);text-decoration:none;transition:border-color .15s,transform .15s}
.seat-link:hover{border-color:var(--accent);transform:translateY(-2px);text-decoration:none}
.seat-link b{color:var(--text-heading);font-weight:650;font-size:var(--step-1)}
.seat-link span{color:var(--action);font-weight:700;font-size:var(--step-2)}

.graph-mini__link{margin-top:var(--sp-6)}
