/* Reusable investment figures. Source-only: the public shell chooses placement. */
.investment-visual {
  --iv-cream: #FFFFFF;
  --iv-paper: #FFFFFF;
  --iv-ink: #15181E;
  --iv-muted: #5B6068;
  --iv-amber: #EAA544;
  --iv-line: #DDE0E3;
  box-sizing: border-box;
  margin: clamp(2.25rem, 7vw, 5rem) 0;
  color: var(--iv-ink);
  background: var(--iv-cream);
  border: 1px solid var(--iv-line);
  font-family: Inter, ui-sans-serif, system-ui, sans-serif;
}
.investment-visual *, .investment-visual *::before, .investment-visual *::after { box-sizing: border-box; }
.investment-visual .iv-header { display: grid; gap: .65rem; padding: clamp(1.35rem, 4vw, 3.4rem) clamp(1.25rem, 5vw, 4.5rem) 1.35rem; border-bottom: 1px solid var(--iv-line); }
.investment-visual .iv-eyebrow, .investment-visual .iv-kicker { margin: 0; color: #9C590A; font-size: .69rem; font-weight: 750; letter-spacing: .12em; line-height: 1.25; text-transform: uppercase; }
.investment-visual h3 { max-width: 24ch; margin: 0; font-family: 'Crimson Pro', Georgia, serif; font-size: clamp(1.45rem, 3.2vw, 2.25rem); font-weight: 550; letter-spacing: -.02em; line-height: 1.08; }
.investment-visual .iv-body { padding: clamp(1.25rem, 4vw, 3.5rem) clamp(1.25rem, 5vw, 4.5rem); }
.investment-visual figcaption { padding: 1rem clamp(1.25rem, 5vw, 4.5rem); color: var(--iv-muted); border-top: 1px solid var(--iv-line); font-size: .875rem; line-height: 1.5; }
.investment-visual h4 { margin: .45rem 0 1rem; font-size: 1.05rem; line-height: 1.25; }
.investment-visual p { margin: 0; overflow-wrap: anywhere; }
.investment-visual ul, .investment-visual ol { margin: 0; padding: 0; list-style: none; }
.investment-visual li, .investment-visual td, .investment-visual th, .investment-visual span, .investment-visual small { overflow-wrap: anywhere; }
.investment-visual .iv-note { max-width: 76ch; margin-top: 1.5rem; padding-left: 1rem; color: var(--iv-muted); border-left: 3px solid var(--iv-amber); font-size: .9rem; line-height: 1.55; }

/* Fragmentation */
.iv-fragmentation { display: grid; grid-template-columns: minmax(0, 1fr) minmax(15rem, .85fr) minmax(0, 1fr); gap: 1rem; align-items: stretch; padding: 1rem; background: var(--iv-paper); border: 1px solid var(--iv-line); }
.iv-fragmentation > * { min-width: 0; }
.iv-center-card > * { min-width: 0; }
.iv-node-cloud { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; gap: .6rem; }
.iv-node-cloud li { min-height: 4.5rem; padding: .8rem; background: var(--iv-cream); border: 1px solid var(--iv-line); color: var(--iv-muted); font-size: .875rem; font-weight: 650; line-height: 1.25; }
.iv-node-cloud li:nth-child(3n) { border-top: 3px solid var(--iv-amber); }
.iv-center-card { display: grid; align-content: center; gap: .75rem; padding: 1.4rem; color: var(--iv-paper); background: var(--iv-ink); }
.iv-center-card strong { font-family: 'Crimson Pro', Georgia, serif; font-size: 1.3rem; font-weight: 500; line-height: 1.1; }
.iv-center-card span { color: #DDE0E3; font-size: .875rem; line-height: 1.45; }

/* Workflow */
.iv-workflow { display: grid; grid-template-columns: minmax(0, 1fr) 14rem; gap: 1.5rem; align-items: start; }
.iv-workflow > ol { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1px solid var(--iv-line); background: var(--iv-paper); }
.iv-workflow > ol li { display: grid; gap: .65rem; min-height: 6.7rem; padding: .85rem; border-right: 1px solid var(--iv-line); border-bottom: 1px solid var(--iv-line); font-size: .9rem; font-weight: 700; line-height: 1.25; }
.iv-workflow > ol li span { color: #9C590A; font-size: .75rem; letter-spacing: .08em; }
.iv-workflow aside { display: grid; gap: .7rem; padding: 1rem; border-left: 3px solid var(--iv-amber); }
.iv-workflow aside > div { display: grid; gap: .25rem; padding-top: .7rem; border-top: 1px solid var(--iv-line); }
.iv-workflow aside strong { font-size: .9rem; }
.iv-workflow aside span { color: var(--iv-muted); font-size: .875rem; line-height: 1.4; }

/* Two-sided design and reusable boundary bars */
.iv-two-sides { display: grid; grid-template-columns: minmax(0, 1fr) minmax(12rem, .85fr) minmax(0, 1fr); align-items: stretch; }
.iv-two-sides > section { padding: 1.3rem; background: var(--iv-paper); border: 1px solid var(--iv-line); }
.iv-two-sides ul { display: grid; gap: .5rem; }
.iv-two-sides li { padding-top: .5rem; border-top: 1px solid var(--iv-line); color: var(--iv-muted); font-size: .875rem; }
.iv-record-bridge { position: relative; z-index: 1; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: .5rem; align-items: center; margin: 1.5rem -1.2rem; padding: 1rem; color: var(--iv-paper); background: var(--iv-ink); }
.iv-record-bridge > div { display: grid; gap: .5rem; text-align: center; }
.iv-record-bridge strong { font-family: 'Crimson Pro', Georgia, serif; font-size: 1.05rem; font-weight: 500; line-height: 1.12; }
.iv-record-bridge small { color: #DDE0E3; font-size: .875rem; line-height: 1.4; }
.iv-arrow { color: var(--iv-amber); font-size: 1.45rem; }
.iv-boundary-bar { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; margin-top: 1rem; background: var(--iv-line); border: 1px solid var(--iv-line); }
.iv-boundary-bar span { padding: .85rem; background: var(--iv-paper); color: var(--iv-muted); font-size: .875rem; line-height: 1.4; }
.iv-boundary-bar span:first-child { border-top: 3px solid var(--iv-amber); }
.iv-boundary-bar span:last-child { border-top: 3px solid var(--iv-ink); }

/* Worker record */
.iv-record-map { display: grid; grid-template-columns: minmax(13rem, .85fr) minmax(0, 2.2fr); gap: 1.25rem; align-items: center; }
.iv-record-core { display: grid; gap: .7rem; padding: 1.25rem; color: var(--iv-paper); background: var(--iv-ink); }
.iv-record-core strong { font-family: 'Crimson Pro', Georgia, serif; font-size: 1.45rem; font-weight: 500; line-height: 1.1; }
.iv-record-core span { color: #DDE0E3; font-size: .875rem; line-height: 1.45; }
.iv-record-map ul { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .55rem; }
.iv-record-map li { display: grid; min-height: 4.4rem; place-items: end start; padding: .65rem; background: var(--iv-paper); border: 1px solid var(--iv-line); font-size: .875rem; font-weight: 650; line-height: 1.25; }
.iv-record-map li:nth-child(4n + 1) { border-top: 3px solid var(--iv-amber); }

/* Graph */
.iv-graph { position: relative; display: grid; place-items: center; min-height: 30rem; border: 1px solid var(--iv-line); background: var(--iv-paper); }
.iv-graph::before, .iv-graph::after { position: absolute; width: min(78%, 32rem); aspect-ratio: 1; border: 1px dashed #DDE0E3; border-radius: 50%; content: ""; }
.iv-graph::after { width: min(52%, 22rem); border-style: solid; }
.iv-graph-core { z-index: 1; display: grid; width: 8rem; aspect-ratio: 1; place-items: center; color: var(--iv-paper); background: var(--iv-ink); border-radius: 50%; font-size: .875rem; font-weight: 750; letter-spacing: .08em; line-height: 1.35; text-align: center; }
.iv-graph-ring { position: absolute; inset: 0; }
.iv-graph-ring li { position: absolute; width: 8.5rem; padding: .55rem; color: var(--iv-ink); background: var(--iv-cream); border: 1px solid var(--iv-line); font-size: .875rem; font-weight: 700; line-height: 1.25; text-align: center; }
.iv-graph-ring li:nth-child(1) { top: 6%; left: 43%; }.iv-graph-ring li:nth-child(2) { top: 17%; right: 10%; }.iv-graph-ring li:nth-child(3) { top: 41%; right: 2%; }.iv-graph-ring li:nth-child(4) { right: 12%; bottom: 14%; }.iv-graph-ring li:nth-child(5) { bottom: 4%; left: 49%; }.iv-graph-ring li:nth-child(6) { bottom: 14%; left: 12%; }.iv-graph-ring li:nth-child(7) { top: 41%; left: 2%; }.iv-graph-ring li:nth-child(8) { top: 17%; left: 10%; }.iv-graph-ring li:nth-child(9) { top: 30%; left: 27%; }.iv-graph-ring li:nth-child(10) { right: 26%; bottom: 28%; }
.iv-legend { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 1rem; color: var(--iv-muted); font-size: .875rem; }
.iv-legend i { display: inline-block; width: .7rem; height: .7rem; margin-right: .35rem; vertical-align: -1px; }.iv-dot { background: var(--iv-amber); border-radius: 50%; }.iv-line { height: 2px !important; background: var(--iv-ink); }.iv-lock { border: 2px solid var(--iv-ink); border-radius: 2px; }

/* Architecture stack */
.iv-stack { display: grid; border: 1px solid var(--iv-line); }
.iv-stack section { display: grid; grid-template-columns: minmax(10rem, .62fr) minmax(0, 2fr); gap: 1rem; padding: 1rem; background: var(--iv-paper); border-bottom: 1px solid var(--iv-line); }
.iv-stack section:nth-child(2n) { background: #FFFFFF; }.iv-stack section:nth-child(3), .iv-stack section:nth-child(5) { border-left: 4px solid var(--iv-amber); }
.iv-stack p { color: #9C590A; font-size: .875rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }.iv-stack span { font-size: .9rem; font-weight: 600; line-height: 1.45; }
.investment-visual blockquote { max-width: 38ch; margin: 1.5rem 0 0; font-family: 'Crimson Pro', Georgia, serif; font-size: clamp(1.2rem, 2.2vw, 1.55rem); font-weight: 500; letter-spacing: -.025em; line-height: 1.15; }

/* Decision and governance */
.iv-boundary { display: grid; grid-template-columns: 1fr 1.15fr 1fr; background: var(--iv-line); gap: 1px; border: 1px solid var(--iv-line); }
.iv-boundary section { padding: 1.2rem; background: var(--iv-paper); }.iv-boundary ul { display: grid; gap: .55rem; margin-top: 1rem; }.iv-boundary li { padding-top: .55rem; color: var(--iv-muted); border-top: 1px solid var(--iv-line); font-size: .875rem; line-height: 1.4; }
.iv-boundary-decision { color: var(--iv-paper); background: var(--iv-ink) !important; }.iv-boundary-decision strong { display: block; margin: .7rem 0; font-family: 'Crimson Pro', Georgia, serif; font-size: 1.3rem; font-weight: 500; line-height: 1.1; }.iv-boundary-decision span { color: #DDE0E3; font-size: .875rem; line-height: 1.45; }
.iv-governance ol { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); }.iv-governance li { display: grid; gap: .65rem; min-height: 11rem; padding: 1rem; background: var(--iv-paper); border: 1px solid var(--iv-line); }.iv-governance li:nth-child(2n) { background: #FFFFFF; }.iv-governance li span { color: #9C590A; font-size: .75rem; font-weight: 750; letter-spacing: .08em; }.iv-governance li strong { font-size: .9rem; line-height: 1.25; }.iv-governance li small { color: var(--iv-muted); font-size: .875rem; line-height: 1.4; }.iv-governance-controls { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1rem; }.iv-governance-controls span { padding: .45rem .65rem; color: var(--iv-muted); background: var(--iv-paper); border: 1px solid var(--iv-line); font-size: .875rem; font-weight: 700; }

/* Loops, reuse, competition, capital */
.iv-loop { display: grid; gap: 1.5rem; }.iv-loop ol { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); border: 1px solid var(--iv-line); }.iv-loop li { position: relative; min-height: 6rem; padding: 1rem 2.2rem 1rem 1rem; background: var(--iv-paper); border-right: 1px solid var(--iv-line); font-family: 'Crimson Pro', Georgia, serif; font-size: 1.05rem; line-height: 1.15; }.iv-loop li:not(:last-child)::after { position: absolute; right: .7rem; bottom: .65rem; z-index: 1; color: var(--iv-amber); content: "→"; font-family: Inter, sans-serif; font-size: 1.2rem; }.iv-loop p { max-width: 76ch; color: var(--iv-muted); font-size: .875rem; line-height: 1.55; }
.iv-reuse { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border: 1px solid var(--iv-line); }.iv-reuse section { display: grid; gap: .8rem; min-height: 10rem; padding: 1rem; background: var(--iv-paper); border-right: 1px solid var(--iv-line); }.iv-reuse section:nth-child(2n) { background: #FFFFFF; }.iv-reuse strong { font-family: 'Crimson Pro', Georgia, serif; font-size: 1.05rem; font-weight: 500; line-height: 1.15; }
.iv-table-wrap { overflow: visible; }.iv-table-wrap table { width: 100%; border-collapse: collapse; background: var(--iv-paper); }.iv-table-wrap th, .iv-table-wrap td { padding: .85rem; border: 1px solid var(--iv-line); font-size: .875rem; line-height: 1.4; text-align: left; vertical-align: top; }.iv-table-wrap thead th { color: #9C590A; background: #FFFFFF; font-size: .875rem; letter-spacing: .08em; text-transform: uppercase; }.iv-table-wrap tbody th { width: 28%; font-weight: 750; }.iv-table-wrap td { color: var(--iv-muted); }
.iv-capital ol { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: .5rem; }.iv-capital li { position: relative; display: grid; gap: .6rem; min-height: 9rem; padding: .8rem 2.2rem .8rem .8rem; background: var(--iv-paper); border-top: 3px solid var(--iv-amber); }.iv-capital li:nth-child(2n) { background: #FFFFFF; }.iv-capital li:not(:last-child)::after { position: absolute; right: .7rem; top: 42%; z-index: 2; color: var(--iv-ink); content: "→"; font-size: 1.3rem; }.iv-capital span { font-family: 'Crimson Pro', Georgia, serif; font-size: 1.05rem; font-weight: 500; line-height: 1.15; }.iv-capital small { color: var(--iv-muted); font-size: .875rem; line-height: 1.4; }

@media (max-width: 860px) {
  .iv-workflow { grid-template-columns: 1fr; }.iv-workflow > ol { grid-template-columns: repeat(2, minmax(0, 1fr)); }.iv-workflow aside { grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 3px solid var(--iv-amber); border-left: 0; }.iv-record-map { grid-template-columns: 1fr; }.iv-record-map ul { grid-template-columns: repeat(4, minmax(0, 1fr)); }.iv-governance ol { grid-template-columns: repeat(3, minmax(0, 1fr)); }.iv-loop ol { grid-template-columns: repeat(3, minmax(0, 1fr)); }.iv-capital ol { grid-template-columns: repeat(4, minmax(0, 1fr)); }.iv-capital li::after { display: none; }
}
@media (max-width: 620px) {
  .investment-visual .iv-header, .investment-visual .iv-body { padding: 1.2rem; }.iv-fragmentation { grid-template-columns: 1fr; padding: 1rem; }.iv-node-cloud { grid-template-columns: repeat(2, minmax(0, 1fr)); }.iv-center-card { min-height: 10rem; }.iv-workflow > ol, .iv-workflow aside, .iv-two-sides, .iv-boundary, .iv-governance ol, .iv-loop ol, .iv-reuse, .iv-capital ol { grid-template-columns: 1fr; }.iv-workflow aside { border-left: 3px solid var(--iv-amber); border-top: 0; }.iv-workflow > ol li { min-height: auto; border-right: 0; }.iv-two-sides > section { min-height: auto; }.iv-record-bridge { grid-template-columns: 1fr; margin: 0; }.iv-arrow { display: none; }.iv-boundary-bar { grid-template-columns: 1fr; }.iv-record-map ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }.iv-record-map li { min-height: 3.8rem; }.iv-graph { display: grid; min-height: 0; place-items: stretch; gap: 1rem; padding: 1rem; }.iv-graph::before, .iv-graph::after { display: none; }.iv-graph-core { justify-self: center; }.iv-graph-ring { position: static; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem; }.iv-graph-ring li { position: static; width: auto; min-height: 3.7rem; display: grid; place-items: center; padding: .6rem; font-size: .875rem; }.iv-stack section { grid-template-columns: 1fr; gap: .4rem; }.iv-loop li:not(:last-child)::after { display: none; }.iv-reuse section { min-height: auto; border-right: 0; border-bottom: 1px solid var(--iv-line); }.iv-capital li { min-height: auto; }.iv-table-wrap { margin: 0; overflow: visible; }.investment-visual--competition .iv-table-wrap table, .investment-visual--competition .iv-table-wrap tbody, .investment-visual--competition .iv-table-wrap tr, .investment-visual--competition .iv-table-wrap th, .investment-visual--competition .iv-table-wrap td { display: block; width: 100%; }.investment-visual--competition .iv-table-wrap thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; font-size: 0; line-height: 0; }.investment-visual--competition .iv-table-wrap thead th { width: 0 !important; height: 0; min-height: 0; padding: 0; border: 0; font-size: 0; line-height: 0; }.investment-visual--competition .iv-table-wrap thead th::before { display: none; }.investment-visual--competition .iv-table-wrap tr { margin-bottom: .8rem; border: 1px solid var(--iv-line); }.investment-visual--competition .iv-table-wrap th, .investment-visual--competition .iv-table-wrap td { border: 0; border-bottom: 1px solid var(--iv-line); }.investment-visual--competition .iv-table-wrap th::before, .investment-visual--competition .iv-table-wrap td::before { display: block; margin-bottom: .3rem; color: #9C590A; font-size: .75rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }.investment-visual--competition .iv-table-wrap th::before { content: "Category"; }.investment-visual--competition .iv-table-wrap td:nth-child(2)::before { content: "Typical focus"; }.investment-visual--competition .iv-table-wrap td:nth-child(3)::before { content: "Rōvn design intent"; }
}
@media (prefers-reduced-motion: reduce) { .investment-visual *, .investment-visual *::before, .investment-visual *::after { transition-duration: .01ms !important; scroll-behavior: auto !important; } }
