/* Ella Client Rooms: client-facing room, gate and closed pages. Light theme, editorial, print-ready. */

:root {
  --ink: #202924;
  --forest: #103d35;
  --green: #137c68;
  --fresh: #d5edaf;
  --paper: #fffefa;
  --ivory: #f6f6ee;
  --muted: #626963;
  --line: #d9ddd5;
  --accent: var(--green);
  --accent-soft: color-mix(in srgb, var(--accent) 12%, var(--paper));
  --font: "Helvetica Neue", Helvetica, Arial, sans-serif;
  --serif: Georgia, "Times New Roman", serif;
  --measure: 68ch;
  --gutter: clamp(20px, 5vw, 56px);
  --topbar-h: 52px;
}

/* Room accent: the hex travels in a data attribute because styles cannot be inline (CSP). Unknown hex keeps --green. */
body[data-accent="#1d4ed8"] { --accent: #1d4ed8; }
body[data-accent="#002e38"] { --accent: #002e38; }
body[data-accent="#0f766e"] { --accent: #0f766e; }
body[data-accent="#7c3aed"] { --accent: #7c3aed; }
body[data-accent="#b91c1c"] { --accent: #b91c1c; }
body[data-accent="#c2410c"] { --accent: #c2410c; }
body[data-accent="#0e7490"] { --accent: #0e7490; }
body[data-accent="#4d7c0f"] { --accent: #4d7c0f; }
body[data-accent="#be185d"] { --accent: #be185d; }
body[data-accent="#1f2937"] { --accent: #1f2937; }
body[data-accent="#137c68"] { --accent: #137c68; }
body[data-accent="#103d35"] { --accent: #103d35; }

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--topbar-h) + 16px); }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition: none !important; animation: none !important; } }

body {
  margin: 0;
  font: 400 17px/1.55 var(--font);
  color: var(--ink);
  background: var(--paper);
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; }
a { color: var(--green); text-underline-offset: 3px; text-decoration-thickness: 1px; }
a:hover { color: var(--forest); }
a:focus-visible, button:focus-visible, input:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
p { margin: 0 0 1em; overflow-wrap: anywhere; }
p:last-child { margin-bottom: 0; }
h1, h2, h3 { margin: 0; font-weight: 500; letter-spacing: -.01em; text-wrap: balance; overflow-wrap: anywhere; }
ul, ol { margin: 0; padding: 0; }
ul[role="list"], ol.index-list, ol.steps, ol.timeline { list-style: none; }
dl, dt, dd { margin: 0; }
table { border-collapse: collapse; width: 100%; }
blockquote { margin: 0; }
strong { font-weight: 600; }
.muted { color: var(--muted); }

.skip { position: absolute; left: 16px; top: -100px; background: var(--forest); color: var(--paper); padding: 10px 16px; z-index: 100; border-radius: 4px; }
.skip:focus { top: 12px; }

/* Wordmark: lowercase serif "ella" with a green dot, as on ellapeople.com. */
.wordmark { display: inline-flex; align-items: baseline; font: 700 32px/.95 var(--serif); letter-spacing: -.07em; color: var(--forest); }
.wordmark-dot { display: inline-block; width: .18em; height: .18em; border-radius: 50%; background: var(--green); margin-left: .1em; transform: translateY(-.02em); }
.wordmark-sm { font-size: 26px; }
.wordmark-cover { font-size: 40px; color: var(--ivory); }
.wordmark-cover .wordmark-dot { background: var(--fresh); }
.wordmark-gate { font-size: 44px; }

/* Small typographic parts */
.label { display: block; font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); margin-bottom: 6px; }
.eyebrow { display: inline-block; font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
.lead { font-size: 19px; line-height: 1.45; }
.sub { font-size: 20px; margin-bottom: 14px; }
.origin { display: inline-block; font-size: 11.5px; font-weight: 500; letter-spacing: .04em; text-transform: uppercase; color: var(--muted); border: 1px solid var(--line); border-radius: 999px; padding: 2px 9px; line-height: 1.5; vertical-align: middle; white-space: nowrap; }
.tag { display: inline-block; font-size: 12px; font-weight: 500; color: var(--forest); background: var(--fresh); border-radius: 999px; padding: 3px 10px; line-height: 1.5; }
.chip { display: inline-flex; align-items: center; gap: 7px; font-size: 12.5px; font-weight: 600; letter-spacing: .02em; border-radius: 999px; padding: 4px 11px 4px 9px; line-height: 1.4; white-space: nowrap; border: 1px solid var(--line); color: var(--ink); background: var(--ivory); }
.chip::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--muted); flex: none; }
.chip-green { background: #e6f3dd; border-color: #bfdca4; color: #1e4a1a; }
.chip-green::before { background: #2f8a3a; }
.chip-yellow { background: #fbefcf; border-color: #ecd59a; color: #5a4300; }
.chip-yellow::before { background: #c98b00; }
.chip-red { background: #f9e2e0; border-color: #ebb9b4; color: #6e1d16; }
.chip-red::before { background: #b9342a; }
.chip-plain::before { display: none; }
.chip-plain { padding-left: 11px; }
.sep { color: var(--muted); margin: 0 .5em; }

/* Top bar */
.topbar { position: sticky; top: 0; z-index: 20; background: color-mix(in srgb, var(--paper) 92%, transparent); backdrop-filter: blur(8px); border-bottom: 1px solid var(--line); height: var(--topbar-h); }
.topbar-inner { max-width: 1280px; margin: 0 auto; padding: 0 var(--gutter); height: 100%; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.topbar-brand { text-decoration: none; display: inline-flex; align-items: center; }
.topbar-note { font-size: 13px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.topbar-note .conf { font-weight: 600; letter-spacing: .08em; text-transform: uppercase; font-size: 11px; color: var(--forest); }
.topbar-note strong { color: var(--ink); font-weight: 600; }

/* Cover */
.cover { background: var(--forest); color: var(--ivory); position: relative; overflow: hidden; }
.cover::after { content: ""; position: absolute; right: -12vw; bottom: -30vw; width: 60vw; height: 60vw; border-radius: 50%; background: radial-gradient(closest-side, color-mix(in srgb, var(--accent) 35%, var(--forest)), transparent 70%); opacity: .55; pointer-events: none; }
.cover-inner { position: relative; z-index: 1; max-width: 1280px; margin: 0 auto; padding: clamp(40px, 7vw, 96px) var(--gutter) clamp(44px, 7vw, 88px); display: grid; gap: 28px; }
.cover-top { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.cover .eyebrow { color: var(--fresh); }
.cover-client { font-size: clamp(40px, 7.5vw, 104px); line-height: .98; letter-spacing: -.035em; font-weight: 500; color: var(--paper); max-width: 18ch; }
.cover-title { font-size: clamp(20px, 2.4vw, 30px); line-height: 1.3; max-width: 34ch; color: color-mix(in srgb, var(--ivory) 88%, var(--forest)); margin: 0; }
.cover-meta { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 20px 32px; margin-top: 24px; padding-top: 28px; border-top: 1px solid color-mix(in srgb, var(--ivory) 25%, transparent); font-size: 15px; }
.cover-meta dt { font-size: 11.5px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--fresh); margin-bottom: 8px; }
.cover-meta dd { line-height: 1.5; }
.cover-meta .person { display: block; }
.cover-meta .muted { color: color-mix(in srgb, var(--ivory) 70%, var(--forest)); }

/* Layout: left rail index + content */
.layout { max-width: 1280px; margin: 0 auto; padding: 0 var(--gutter); display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 0 clamp(40px, 6vw, 96px); }
.index { position: sticky; top: calc(var(--topbar-h) + 28px); align-self: start; padding: 40px 0 24px; max-height: calc(100vh - var(--topbar-h) - 28px); overflow: auto; }
.index-title { margin-bottom: 14px; }
.index-list li { border-top: 1px solid var(--line); }
.index-list li:last-child { border-bottom: 1px solid var(--line); }
.index-list a { display: flex; gap: 12px; align-items: baseline; padding: 9px 0 9px 10px; margin-left: -10px; font-size: 14px; color: var(--muted); text-decoration: none; border-left: 2px solid transparent; transition: color .2s, border-color .2s; }
.index-list a:hover { color: var(--ink); }
.index-list a.is-active { color: var(--forest); border-left-color: var(--accent); font-weight: 500; }
.index-num { font-variant-numeric: tabular-nums; font-size: 12px; color: var(--muted); min-width: 2ch; }
.index-list a.is-active .index-num { color: var(--accent); }

.content { min-width: 0; padding: 8px 0 40px; }
.sec { padding: 56px 0 48px; border-top: 1px solid var(--line); }
.sec:first-child { border-top: 0; padding-top: 40px; }
.sec-head { display: flex; align-items: baseline; gap: 14px; margin-bottom: 30px; }
.sec-num { font-size: 15px; font-variant-numeric: tabular-nums; color: var(--accent); font-weight: 600; letter-spacing: .02em; white-space: nowrap; }
.sec-num .slash { color: var(--line); font-weight: 400; }
.sec-title { font-size: clamp(28px, 3vw, 38px); line-height: 1.12; letter-spacing: -.02em; color: var(--forest); }
.sec-body > p, .sec-body .defs, .sec-body .lead { max-width: var(--measure); }

/* Executive */
.figures { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1px solid var(--line); border-right: 0; border-bottom: 0; margin-bottom: 40px; }
.figure { background: var(--ivory); padding: 20px 18px 16px; display: grid; gap: 4px; align-content: start; min-width: 0; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.figure-value { font-size: clamp(30px, 3.4vw, 42px); line-height: 1; letter-spacing: -.03em; font-weight: 500; color: var(--forest); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.figure-label { font-size: 14px; color: var(--ink); overflow-wrap: anywhere; }
.figure .origin { justify-self: start; margin-top: 6px; white-space: normal; }
.three-cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; margin-bottom: 36px; }
.three-cols .col { border-top: 2px solid var(--forest); padding-top: 14px; }
.three-cols .label { color: var(--forest); }
.first-move { background: var(--accent-soft); border-left: 4px solid var(--accent); padding: 20px 24px 18px; display: grid; gap: 6px; max-width: 100%; }
.first-move .label { color: var(--accent); margin-bottom: 0; }
.first-move-text { font-size: 21px; line-height: 1.35; font-weight: 500; letter-spacing: -.01em; margin: 0; }
.meta { display: flex; flex-wrap: wrap; gap: 6px 28px; font-size: 14.5px; margin-top: 4px; }
.meta dt { display: inline; color: var(--muted); }
.meta dt::after { content: ": "; }
.meta dd { display: inline; font-weight: 500; }

/* Definition lists */
.defs { display: grid; gap: 0; }
.def { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 8px 28px; padding: 18px 0; border-top: 1px solid var(--line); }
.def:last-child { border-bottom: 1px solid var(--line); }
.def dt { font-size: 13px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--forest); padding-top: 4px; }
.def dd p { margin-bottom: 8px; }
.def dd .origin { margin-top: 2px; }

/* Maturity */
.lens { margin-bottom: 40px; }
.dimensions { border-top: 1px solid var(--line); }
.dimension { padding: 18px 0; border-bottom: 1px solid var(--line); display: grid; gap: 8px; max-width: 820px; }
.dimension-head { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; }
.dimension-name { font-weight: 500; font-size: 18px; flex: 1 1 200px; }
.meter { display: inline-flex; gap: 3px; }
.meter-block { width: 22px; height: 10px; background: var(--line); border-radius: 2px; }
.meter-block.is-on { background: var(--green); }
.meter-word { font-size: 13.5px; font-weight: 600; color: var(--forest); }
.meter-num { color: var(--muted); font-weight: 400; margin-left: 4px; font-variant-numeric: tabular-nums; }
.dimension-finding { color: var(--ink); }
.small-quote { font-family: var(--serif); font-style: italic; font-size: 17px; color: var(--muted); border-left: 2px solid var(--line); padding-left: 14px; }
.small-quote::before { content: "“"; } .small-quote::after { content: "”"; }
.reading { border-top: 2px solid var(--forest); padding-top: 16px; max-width: var(--measure); }

/* Drivers: quotes as hero content */
.quotes { display: grid; gap: 36px; margin-bottom: 44px; }
.hero-quote { margin: 0; max-width: 980px; }
.hero-quote blockquote { font-family: var(--serif); font-size: clamp(24px, 2.9vw, 38px); line-height: 1.22; letter-spacing: -.015em; color: var(--forest); text-wrap: balance; text-indent: -.4em; padding-left: .4em; }
.hero-quote blockquote::before { content: "“"; } .hero-quote blockquote::after { content: "”"; }
.hero-quote figcaption { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; margin-top: 14px; font-size: 14px; }
.speaker { font-weight: 600; color: var(--ink); }
.speaker::before { content: "— "; color: var(--muted); }
.themes .defs { max-width: 900px; }

/* Market */
.findings { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 24px; margin-bottom: 40px; }
.finding { border-top: 2px solid var(--forest); padding-top: 14px; display: grid; gap: 8px; align-content: start; }
.finding-title { font-size: 19px; }
.finding-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; font-size: 13.5px; }
.profile-list { display: grid; gap: 0; max-width: 900px; }
.profile-list li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 18px; padding: 14px 0; border-top: 1px solid var(--line); font-size: 15.5px; }
.profile-list li:last-child { border-bottom: 1px solid var(--line); }
.profile-list strong { grid-column: 1; }
.profile-list span:not(.origin) { grid-column: 1; color: var(--muted); }
.profile-list .origin { grid-column: 2; grid-row: 1; align-self: start; }
.note { font-size: 15px; color: var(--muted); max-width: var(--measure); margin-top: 28px; }
.note .label { display: inline; margin: 0 6px 0 0; }

/* Portfolio cards */
.cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); gap: 24px; }
.card { background: var(--ivory); border: 1px solid var(--line); border-radius: 6px; padding: 24px 24px 20px; display: grid; gap: 18px; align-content: start; }
.card-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; flex-wrap: wrap; }
.card-head-right { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.card-title { font-size: 23px; line-height: 1.15; letter-spacing: -.015em; color: var(--forest); }
.card-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 12px 20px; font-size: 14.5px; }
.card-facts .kv { display: grid; gap: 2px; }
.card-facts dt { font-size: 11.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); font-weight: 600; }
.card-facts dd { font-weight: 500; }
.anchor-pain { font-family: var(--serif); font-size: 20px; line-height: 1.3; color: var(--forest); border-left: 3px solid var(--accent); padding: 4px 0 4px 16px; }
.anchor-pain .label { font-family: var(--font); color: var(--accent); margin-bottom: 4px; }
.card-body { display: grid; gap: 12px; font-size: 15.5px; }
.card-body .kv { display: grid; gap: 3px; }
.card-body dt { font-size: 11.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); font-weight: 600; }
.prereqs ul { padding-left: 18px; font-size: 15px; }
.prereqs li { margin-bottom: 4px; }
.card-foot { display: flex; justify-content: flex-end; }
.score-pill { display: inline-flex; align-items: baseline; gap: 8px; font-size: 20px; font-weight: 500; color: var(--forest); font-variant-numeric: tabular-nums; }
.score-pill .label { margin: 0; }
.sub-scores { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; border-top: 1px solid var(--line); padding-top: 14px; }
.sub-scores dt { font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); font-weight: 600; }
.sub-scores dd { font-size: 18px; font-weight: 500; font-variant-numeric: tabular-nums; }
.sub-scores .of { color: var(--muted); font-size: 13px; font-weight: 400; }

/* Tables */
.table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; border-top: 2px solid var(--forest); }
th, td { text-align: left; padding: 12px 14px 12px 0; border-bottom: 1px solid var(--line); vertical-align: top; font-size: 15px; }
th { font-size: 11.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); font-weight: 600; }
td.num, th.num { text-align: right; font-variant-numeric: tabular-nums; }
.rank-num { font-variant-numeric: tabular-nums; color: var(--accent); font-weight: 600; width: 3ch; }
.weights { display: flex; flex-wrap: wrap; gap: 6px 20px; margin-top: 20px; font-size: 14px; color: var(--muted); }
.weights .label { margin: 0; align-self: center; }
.weights dd span { color: var(--ink); }
.enablers { margin-top: 32px; max-width: var(--measure); }
.enablers ul { padding-left: 18px; }
.enablers li { margin-bottom: 6px; }

/* Plan timeline */
.timeline { display: grid; gap: 0; max-width: 860px; }
.phase { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 0 16px; padding: 22px 0; border-top: 1px solid var(--line); position: relative; }
.phase:last-child { border-bottom: 1px solid var(--line); }
.phase-num { font-size: 26px; font-weight: 500; letter-spacing: -.03em; color: var(--accent); font-variant-numeric: tabular-nums; line-height: 1; padding-top: 2px; }
.phase-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 6px 16px; margin-bottom: 8px; }
.phase-name { font-size: 21px; }
.phase-weeks { font-size: 13px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--muted); white-space: nowrap; }
.exit { font-size: 15px; color: var(--ink); background: var(--ivory); padding: 10px 14px; border-radius: 4px; }
.exit .label { display: inline; margin: 0 8px 0 0; color: var(--forest); }
.cadence { margin-top: 24px; font-size: 16px; max-width: var(--measure); }
.cadence .label { display: inline; margin: 0 8px 0 0; }

/* Paths */
.paths-note { margin: -24px 0 44px; font-size: 14.5px; color: var(--muted); }
.paths { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin-bottom: 44px; }
.path { position: relative; border: 1px solid var(--line); border-radius: 6px; padding: 26px 24px 22px; display: grid; gap: 12px; align-content: start; background: var(--paper); }
.path.is-recommended { background: var(--forest); color: var(--ivory); border-color: var(--forest); }
.path-flag { position: absolute; top: -11px; left: 20px; font-size: 11px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; background: var(--fresh); color: var(--forest); padding: 3px 10px; border-radius: 999px; }
.path-name { font-size: 24px; letter-spacing: -.015em; }
.path-summary { font-size: 16px; }
.path.is-recommended .path-summary { color: color-mix(in srgb, var(--ivory) 90%, var(--forest)); }
.path-price { border-top: 1px solid var(--line); padding-top: 14px; margin-top: 6px; display: grid; gap: 2px; }
.path.is-recommended .path-price { border-color: color-mix(in srgb, var(--ivory) 25%, transparent); }
.path.is-recommended .label { color: var(--fresh); }
.price-value { font-size: 20px; font-weight: 500; }
.path-terms { font-size: 14px; color: var(--muted); }
.path.is-recommended .path-terms { color: color-mix(in srgb, var(--ivory) 75%, var(--forest)); }
.paths-foot { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 32px 48px; }
.steps { display: grid; gap: 0; counter-reset: step; }
.steps li { display: grid; grid-template-columns: 2ch minmax(0, 1fr) auto; gap: 0 14px; padding: 12px 0; border-top: 1px solid var(--line); font-size: 16px; align-items: baseline; }
.steps li:last-child { border-bottom: 1px solid var(--line); }
.steps li::before { counter-increment: step; content: counter(step, decimal-leading-zero); font-size: 13px; color: var(--accent); font-weight: 600; font-variant-numeric: tabular-nums; }
.step-date { font-size: 14px; color: var(--muted); white-space: nowrap; }
.contact-list li { padding: 12px 0; border-top: 1px solid var(--line); font-size: 15.5px; display: grid; gap: 2px; }
.contact-list li:last-child { border-bottom: 1px solid var(--line); }

/* Pipeline */
.pipe-roles { margin-bottom: 40px; }
.pipe-role { margin-bottom: 28px; max-width: 760px; }
.stage-bars { display: grid; gap: 8px; }
.stage { display: grid; grid-template-columns: minmax(90px, 140px) minmax(0, 1fr) 3ch; gap: 14px; align-items: center; font-size: 15px; }
.stage-name { color: var(--ink); }
.stage-bar { display: block; height: 14px; background: var(--ivory); border-radius: 2px; overflow: hidden; }
.stage-fill { display: block; height: 100%; width: 100%; background: var(--green); transform-origin: left; }
.stage-count { text-align: right; font-weight: 600; font-variant-numeric: tabular-nums; }
.stage-bar[data-w="5"] .stage-fill { width: 5%; } .stage-bar[data-w="10"] .stage-fill { width: 10%; } .stage-bar[data-w="15"] .stage-fill { width: 15%; } .stage-bar[data-w="20"] .stage-fill { width: 20%; }
.stage-bar[data-w="25"] .stage-fill { width: 25%; } .stage-bar[data-w="30"] .stage-fill { width: 30%; } .stage-bar[data-w="35"] .stage-fill { width: 35%; } .stage-bar[data-w="40"] .stage-fill { width: 40%; }
.stage-bar[data-w="45"] .stage-fill { width: 45%; } .stage-bar[data-w="50"] .stage-fill { width: 50%; } .stage-bar[data-w="55"] .stage-fill { width: 55%; } .stage-bar[data-w="60"] .stage-fill { width: 60%; }
.stage-bar[data-w="65"] .stage-fill { width: 65%; } .stage-bar[data-w="70"] .stage-fill { width: 70%; } .stage-bar[data-w="75"] .stage-fill { width: 75%; } .stage-bar[data-w="80"] .stage-fill { width: 80%; }
.stage-bar[data-w="85"] .stage-fill { width: 85%; } .stage-bar[data-w="90"] .stage-fill { width: 90%; } .stage-bar[data-w="95"] .stage-fill { width: 95%; } .stage-bar[data-w="100"] .stage-fill { width: 100%; }
.stage-bar[data-w="0"] .stage-fill { width: 2%; }
.initials { font-weight: 600; white-space: nowrap; }

/* ICP */
.icp-role { padding: 26px 0; border-top: 1px solid var(--line); }
.icp-role:last-child { border-bottom: 1px solid var(--line); }
.icp-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 14px; margin-bottom: 10px; }
.icp-head .sub { margin-bottom: 0; }
.icp-summary { max-width: var(--measure); margin-bottom: 20px; }
.icp-cols { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px 24px; }
.icp-col { border-top: 2px solid var(--forest); padding-top: 10px; min-width: 0; }
.icp-col .label { color: var(--forest); }
.icp-list { padding-left: 16px; font-size: 15px; line-height: 1.45; }
.icp-list li { margin-bottom: 6px; }
.icp-col:last-child { border-top-color: var(--line); }
.icp-col:last-child .label { color: var(--muted); }

/* Compensation */
.comp-roles { display: grid; gap: 0; margin-bottom: 44px; }
.comp-role { padding: 26px 0; border-top: 1px solid var(--line); }
.comp-role:last-child { border-bottom: 1px solid var(--line); }
.comp-meta { font-size: 13px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.comp-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border: 1px solid var(--line); border-right: 0; max-width: 820px; }
.comp-block { background: var(--ivory); padding: 20px 20px 16px; display: grid; gap: 6px; align-content: start; border-right: 1px solid var(--line); min-width: 0; }
.comp-block .label { color: var(--forest); margin-bottom: 0; }
.comp-value { font-size: clamp(26px, 3vw, 36px); line-height: 1.05; letter-spacing: -.03em; font-weight: 500; color: var(--forest); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.comp-dash { color: var(--muted); font-weight: 400; margin: 0 .12em; }
.comp-block.is-empty .comp-value { color: var(--muted); }
.comp-note { font-size: 14px; color: var(--muted); line-height: 1.45; }
.bench-table td:first-child { font-weight: 500; }
.bench-table td .origin { margin-left: 6px; }

/* Candidate page */
body.candidate .cover-cand .cover-title { max-width: 40ch; font-size: clamp(22px, 2.6vw, 34px); }
.layout-single { grid-template-columns: minmax(0, 1fr); max-width: 980px; }
.sec-cand .lead { max-width: var(--measure); }
.cand-founders { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 20px 32px; }
.cand-founder { border-top: 2px solid var(--forest); padding-top: 12px; display: grid; gap: 6px; font-size: 15.5px; align-content: start; }
.founder-link { color: inherit; text-decoration: underline; text-decoration-color: var(--line); text-underline-offset: 3px; }
.founder-link:hover { text-decoration-color: var(--green); }
.cand-roles { list-style: none; counter-reset: role; display: grid; gap: 0; max-width: 860px; }
.cand-role { display: grid; grid-template-columns: 3ch minmax(0, 1fr); gap: 4px 16px; padding: 20px 0; border-top: 1px solid var(--line); }
.cand-role:last-child { border-bottom: 1px solid var(--line); }
.cand-role::before { counter-increment: role; content: counter(role, decimal-leading-zero); font-size: 14px; color: var(--accent); font-weight: 600; font-variant-numeric: tabular-nums; padding-top: 5px; }
.cand-role-title { font-size: 22px; letter-spacing: -.015em; color: var(--forest); }
.cand-role p, .cand-role .source { grid-column: 2; }
.cand-role .source { font-size: 14.5px; justify-self: start; }
.cand-apply { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 20px; }
.cta-ghost { background: transparent; color: var(--forest); border: 1px solid var(--forest); }
.cta-ghost:hover { background: var(--accent-soft); color: var(--forest); }
body.candidate .foot-bottom { padding-top: 32px; padding-bottom: 40px; border-top: 0; }

/* Footer */
.foot { border-top: 1px solid var(--line); margin-top: 24px; background: var(--ivory); }
.foot-inner { max-width: 1280px; margin: 0 auto; padding: 48px var(--gutter) 40px; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 28px; }
.foot-authors li { display: grid; gap: 2px; margin-bottom: 10px; font-size: 16px; }
.foot-authors a { color: var(--muted); font-size: 15px; }
.cta { display: inline-block; background: var(--forest); color: var(--paper); text-decoration: none; font-weight: 500; font-size: 16px; padding: 14px 22px; border-radius: 4px; transition: background .2s; }
.cta:hover { background: var(--green); color: var(--paper); }
.foot-bottom { max-width: 1280px; margin: 0 auto; padding: 20px var(--gutter) 32px; border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; align-items: center; gap: 10px 20px; font-size: 13px; color: var(--muted); }
.foot-note { flex-basis: 100%; }

/* Gate and closed pages */
body.gate { background: var(--ivory); min-height: 100vh; }
.gate-main { min-height: 100vh; display: grid; place-items: center; padding: 32px var(--gutter); }
.gate-card { width: min(100%, 420px); background: var(--paper); border: 1px solid var(--line); border-radius: 8px; padding: 36px 32px 28px; display: grid; gap: 10px; }
.gate-card .eyebrow { color: var(--green); margin-top: 18px; }
.gate-client { font-size: 30px; line-height: 1.15; letter-spacing: -.02em; color: var(--forest); margin-bottom: 20px; }
.gate-label { font-size: 14px; font-weight: 500; }
.gate-input { font: inherit; font-size: 17px; padding: 12px 14px; border: 1px solid var(--muted); border-radius: 4px; background: var(--paper); color: var(--ink); width: 100%; }
.gate-input:disabled { background: var(--ivory); }
.gate-button { font: inherit; font-size: 16px; font-weight: 500; padding: 13px 18px; border: 0; border-radius: 4px; background: var(--forest); color: var(--paper); cursor: pointer; margin-top: 4px; transition: background .2s; }
.gate-button:hover { background: var(--green); }
.gate-button:disabled { background: var(--muted); cursor: not-allowed; }
.gate-msg { font-size: 14.5px; color: #8a1f17; margin: 0; }
.gate-help { font-size: 13.5px; color: var(--muted); margin-top: 10px; }
.closed-body { font-size: 16px; color: var(--ink); }

/* Responsive */
@media (max-width: 980px) {
  .layout { grid-template-columns: minmax(0, 1fr); }
  .index { position: static; max-height: none; padding: 28px 0 0; overflow: visible; }
  .index-title { display: none; }
  .index-list { display: flex; flex-wrap: wrap; gap: 8px; }
  .index-list li, .index-list li:last-child { border: 0; }
  .index-list a { margin: 0; padding: 7px 12px; border: 1px solid var(--line); border-radius: 999px; font-size: 13px; gap: 8px; }
  .index-list a.is-active { border-color: var(--accent); background: var(--accent-soft); }
  .three-cols { grid-template-columns: 1fr; gap: 20px; }
  .icp-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .paths { grid-template-columns: 1fr; gap: 24px; }
  .paths-foot { grid-template-columns: 1fr; }
  .sub-scores { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  body { font-size: 16px; }
  .topbar-note { font-size: 12px; }
  .cover-inner { gap: 22px; }
  .cover-client { font-size: clamp(36px, 12vw, 56px); }
  .sec { padding: 40px 0 36px; }
  .sec-head { flex-direction: column; gap: 4px; margin-bottom: 22px; }
  .sec-title { font-size: 27px; }
  .def { grid-template-columns: 1fr; gap: 6px; }
  .profile-list li { grid-template-columns: 1fr; }
  .icp-cols { grid-template-columns: 1fr; gap: 18px; }
  .comp-grid { grid-template-columns: 1fr; border-right: 1px solid var(--line); border-bottom: 0; }
  .comp-block { border-right: 0; border-bottom: 1px solid var(--line); }
  .bench-table thead { display: none; }
  .bench-table tr { display: grid; gap: 4px; padding: 14px 0; border-bottom: 1px solid var(--line); }
  .bench-table td { display: block; border: 0; padding: 0; }
  .bench-table td::before { content: attr(data-label); display: block; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); font-weight: 600; }
  .bench-table td:first-child { font-size: 17px; }
  .cand-role { grid-template-columns: 1fr; }
  .cand-role p, .cand-role .source { grid-column: 1; }
  .profile-list .origin { grid-column: 1; grid-row: auto; justify-self: start; }
  .card { padding: 20px 18px 16px; }
  .first-move { padding: 16px 18px; }
  .figures { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .figure-value { font-size: 28px; }
  .figure-value { font-size: 30px; }
  .stage { grid-template-columns: minmax(70px, 100px) minmax(0, 1fr) 3ch; gap: 10px; }
  .steps li { grid-template-columns: 2ch minmax(0, 1fr); }
  .steps li .step-date { grid-column: 2; }
  .phase { grid-template-columns: 44px minmax(0, 1fr); }
  .phase-num { font-size: 22px; }
  .gate-card { padding: 28px 22px 22px; }
  .hero-quote blockquote { font-size: 24px; }
  th, td { font-size: 14px; padding-right: 10px; }
}

@media (max-width: 360px) {
  .topbar-note .sep, .topbar-note strong { display: none; }
  .topbar-note { overflow: visible; }
}

/* Print: one clean memo, colors kept. */
@media print {
  @page { margin: 16mm; }
  :root { --topbar-h: 0px; }
  html { scroll-behavior: auto; }
  body { font-size: 11.5pt; background: #fff; print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  .topbar, .index, .skip, .foot-cta, .cover::after { display: none !important; }
  .layout { display: block; padding: 0; }
  .cover { break-after: page; }
  .cover-inner { padding: 24mm 0; }
  .sec { break-inside: avoid-page; padding: 28px 0 24px; }
  .card, .path, .hero-quote, .phase, .finding, .figure { break-inside: avoid; }
  .path.is-recommended, .cover, .first-move, .chip, .tag, .meter-block { print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  a { color: inherit; text-decoration: none; }
  .source::after { content: " (" attr(href) ")"; font-size: 10pt; color: var(--muted); }
  .cards { grid-template-columns: 1fr; }
  .foot { background: none; }
}

.targets { margin: 8px 0 40px; }
.target-list { list-style: none; padding: 0; margin: 12px 0 0; counter-reset: tg; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 0 32px; }
.target-list li { counter-increment: tg; display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 2px 10px; padding: 12px 0; border-top: 1px solid var(--line); font-size: 15px; }
.target-list li::before { content: counter(tg, decimal-leading-zero); grid-row: 1 / 3; color: var(--green); font-size: 12px; font-weight: 600; padding-top: 4px; }
.target-list li span { grid-column: 2; color: var(--muted); font-size: 14px; line-height: 1.5; }

.candidate-callout { margin-top: 28px; padding: 20px 22px; background: var(--ivory); border: 1px solid var(--line); display: grid; gap: 8px; }
.candidate-callout p { margin: 0; color: var(--muted); font-size: 15px; max-width: 70ch; }
.callout-link { display: inline-flex; flex-wrap: wrap; gap: 8px 12px; align-items: baseline; font-weight: 600; color: var(--forest); text-decoration: none; border-bottom: 1px solid currentColor; width: fit-content; }
.callout-link .url { font-weight: 400; color: var(--muted); font-size: 14px; }

.foot-logout { display: inline-block; margin-top: 10px; font-size: 13px; color: var(--muted); text-decoration: underline; text-underline-offset: 3px; }
.foot-logout:hover { color: var(--forest); }

.topbar-logout { flex: none; font-size: 13px; font-weight: 600; color: var(--forest); border: 1px solid var(--forest); border-radius: 999px; padding: 6px 14px; text-decoration: none; transition: background-color .2s, color .2s; }
.topbar-logout:hover { background: var(--forest); color: var(--ivory); }
@media (max-width: 640px) { .topbar-note .sep, .topbar-note strong { display: none; } }

/* Meeting notes collapse; only the newest opens by default. */
.meeting { border-top: 1px solid var(--line); }
.meeting:last-child { border-bottom: 1px solid var(--line); }
.meeting-head { list-style: none; cursor: pointer; display: grid; grid-template-columns: 180px minmax(0, 1fr) 24px; gap: 4px 32px; align-items: baseline; padding: 18px 0; }
.meeting-head::-webkit-details-marker { display: none; }
.meeting-head:hover h3 { color: var(--green); }
.meeting-head time { font-size: 13px; color: var(--muted); font-variant-numeric: tabular-nums; }
.meeting-head h3 { font-size: 19px; letter-spacing: -.02em; margin: 0; transition: color .2s; }
.meeting-title { display: grid; gap: 4px; }
.meeting-counts { font-size: 13px; color: var(--muted); }
.meeting-chevron { width: 10px; height: 10px; border-right: 1.5px solid var(--muted); border-bottom: 1.5px solid var(--muted); transform: rotate(45deg); justify-self: end; transition: transform .25s; margin-top: 4px; }
.meeting[open] .meeting-chevron { transform: rotate(-135deg); margin-top: 10px; }
.meeting-body { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 12px 32px; padding: 0 0 28px; }
.meeting-people { grid-column: 2; margin: 0; font-size: 14px; color: var(--muted); }
.meeting-block { grid-column: 2; }
.meeting-block .label { margin-bottom: 8px; }
.meeting-list { margin: 0; padding-left: 18px; font-size: 15.5px; line-height: 1.55; }
.meeting-list li + li { margin-top: 6px; }
.meeting-actions { list-style: none; margin: 0; padding: 0; }
.meeting-actions li { display: flex; justify-content: space-between; gap: 16px; padding: 8px 0; border-top: 1px solid var(--line); font-size: 15px; }
.meeting-actions .owner { color: var(--muted); font-size: 13.5px; white-space: nowrap; }
.meeting-summary { grid-column: 2; color: var(--muted); font-size: 15px; }
@media (max-width: 640px) { .meeting-head { grid-template-columns: minmax(0, 1fr) 24px; } .meeting-head time { grid-column: 1 / -1; } .meeting-body { grid-template-columns: 1fr; } .meeting-people, .meeting-block, .meeting-summary { grid-column: 1; } .meeting-actions li { flex-direction: column; gap: 2px; } }
