/* Investor page. Same tokens, same rules, one extra layout.
   The gated block is rendered from /api/investor/brief and never exists in the
   markup, so "view source" on the public page shows no valuation. */

.inv__navlink { font-size: 0.86rem; color: var(--ink-muted); text-underline-offset: 3px; }
.inv__navlink:hover { color: var(--ink); }

.inv__hero { padding-block: var(--s-8) var(--s-7); max-width: 60rem; }

.inv__title {
  margin-top: var(--s-5);
  font-family: var(--f-display);
  font-weight: var(--w-display);
  font-size: clamp(2.1rem, 1.3rem + 3.6vw, 4.2rem);
  line-height: 1.06;
  letter-spacing: -0.02em;
  text-wrap: balance;
}
.inv__title em { font-style: normal; color: var(--accent); }

.inv__deck {
  margin-top: var(--s-5);
  max-width: 46rem;
  font-size: clamp(1.02rem, 0.98rem + 0.3vw, 1.18rem);
  line-height: 1.65;
  color: var(--ink-secondary);
  text-wrap: pretty;
}

.inv__cta { margin-top: var(--s-6); display: flex; gap: var(--s-3); flex-wrap: wrap; }

.btn--ghost {
  background: none;
  color: var(--ink);
  border: var(--rule-w) solid var(--rule-strong);
  text-decoration: none;
}
.btn--ghost:hover { background: var(--surface-sunk); }
a.btn { text-decoration: none; }

.inv__band { padding-block: var(--s-7); border-top: var(--rule-w) solid var(--rule); }

.inv__h2 {
  font-size: 0.78rem;
  font-weight: var(--w-strong);
  letter-spacing: 0.02em;
  color: var(--ink-muted);
}

.inv__note {
  margin-top: var(--s-4);
  max-width: 48rem;
  font-size: 0.92rem;
  line-height: 1.62;
  color: var(--ink-muted);
}

/* --- the market gap ------------------------------------------------------- */

.gap { margin: var(--s-5) 0 0; }
.gap__svg { display: block; width: 100%; height: auto; max-width: 70rem; }
.gap__name { font-family: var(--f-text); font-size: 17px; font-weight: 620; fill: var(--ink); }
.gap__name--own { fill: var(--accent); }
.gap__who { font-family: var(--f-text); font-size: 13.5px; fill: var(--ink-muted); }
.gap__who--own { fill: var(--ink-secondary); }
.gap__cost { font-family: var(--f-text); font-size: 13px; fill: var(--ink-faint); }
.gap__cost--own { fill: var(--accent); font-weight: 500; }

@media (prefers-reduced-motion: no-preference) {
  .gap__layer, .gap__mid { opacity: 0; animation: rise 320ms var(--ease) both; }
  .gap__layer[data-step='1'] { animation-delay: 40ms; }
  .gap__mid { animation-delay: 340ms; }
  .gap__layer[data-step='3'] { animation-delay: 180ms; }
}
@media (prefers-reduced-motion: reduce) { .gap__layer, .gap__mid { opacity: 1; } }
@media (max-width: 46rem) { .gap { display: none; } }

/* --- people and offices --------------------------------------------------- */

.inv__people { margin-top: var(--s-5); display: grid; gap: var(--s-6); }
@media (min-width: 44rem) { .inv__people { grid-template-columns: 1fr 1fr; } }

.person { border-top: 2px solid var(--ink); padding-top: var(--s-4); }
.person__name {
  font-family: var(--f-display); font-weight: var(--w-display);
  font-size: clamp(1.25rem, 1.1rem + 0.6vw, 1.6rem); line-height: 1.15;
}
.person__title { margin-top: var(--s-2); font-size: 0.92rem; color: var(--ink-secondary); }
.person__meta { margin-top: var(--s-1); font-size: 0.84rem; color: var(--ink-faint); }

.inv__offices { margin-top: var(--s-6); display: grid; gap: var(--s-4); }
@media (min-width: 44rem) { .inv__offices { grid-template-columns: 1fr 1fr; } }
.office { padding-top: var(--s-3); border-top: var(--rule-w) solid var(--rule); }
.office__city { font-weight: var(--w-strong); }
.office__role { font-size: 0.84rem; color: var(--ink-faint); margin-top: 0.1rem; }
.office__note { font-size: 0.88rem; color: var(--ink-muted); margin-top: var(--s-1); }

.inv__figures { margin-top: var(--s-6); max-width: 42rem; }

/* --- gate ----------------------------------------------------------------- */

.inv__login { margin-top: var(--s-5); display: grid; gap: var(--s-4); align-items: end; }
@media (min-width: 40rem) { .inv__login { grid-template-columns: minmax(0, 18rem) auto auto; } }
.inv__field { min-width: 0; }

.inv__status { margin-top: var(--s-4); font-size: 0.92rem; padding-left: var(--s-4);
               border-left: 2px solid var(--accent); }
.inv__status:empty { display: none; }
.inv__status[data-tone='error'] { border-left-color: var(--error); color: var(--error); }

.inv__ask { margin-top: var(--s-4); font-size: 0.88rem; color: var(--ink-muted); }

.inv__brief { margin-top: var(--s-7); }
.inv__h3 {
  margin-top: var(--s-6); font-size: 0.72rem; font-weight: var(--w-strong);
  letter-spacing: 0.02em; color: var(--ink-muted);
}

.terms { margin-top: var(--s-4); display: grid; grid-template-columns: 11rem 1fr;
         gap: var(--s-2) var(--s-4); font-size: 0.94rem; }
.terms dt { color: var(--ink-muted); font-size: 0.86rem; }
.terms dd { margin: 0; }
.terms dd strong { font-family: var(--f-display); font-size: 1.15rem; font-weight: var(--w-display); }

.cap { margin-top: var(--s-4); }
.cap__row { display: grid; grid-template-columns: 15rem 1fr 4rem; align-items: center;
            gap: var(--s-3); padding-block: var(--s-3);
            border-bottom: var(--rule-w) solid var(--rule); font-size: 0.92rem; }
.cap__bar { height: 0.75rem; background: var(--surface-sunk); border-radius: 1px; overflow: hidden; }
.cap__fill { height: 100%; background: var(--accent); }
.cap__fill--new { background: var(--mark); }
.cap__pct { text-align: right; font-variant-numeric: tabular-nums; color: var(--ink-secondary); }
.cap__caveat { margin-top: var(--s-4); font-size: 0.86rem; color: var(--ink-muted);
               padding-left: var(--s-4); border-left: 2px solid var(--mark); max-width: 52rem; }

.flag { margin-top: var(--s-4); padding: var(--s-4);
        border: var(--rule-w) solid var(--mark); border-left-width: 3px;
        border-radius: var(--r-sm); background: var(--surface-sunk); }
.flag__title { font-weight: var(--w-strong); font-size: 0.92rem; }
.flag__body { margin-top: var(--s-2); font-size: 0.9rem; color: var(--ink-secondary); max-width: 58ch; }
.flag__owner { margin-top: var(--s-2); font-size: 0.78rem; color: var(--ink-faint); }
