/* ITI Growth: refresh layer
   Loaded last on every page (after portfolio.css where that exists).
   1. Type: new display and text faces, swapped in through the same --serif /
      --sans variables every other stylesheet already uses.
   2. Header: live logo mark with a hover, and a floating bar that stays.
   3. Frame corners, odometer stats, fund sheets.
   4. Logos without white boxes, with a hover that opens the company's site.
   5. Team placeholders, platform layout. */

/* ------------------------------------------------------------------ type
   After Collab Fund: a wide grotesk for structure (headings, nav, labels,
   figures) and a book serif for reading and for statements. Italic emphasis
   inside a heading switches to the serif, in orange. Faces: fonts.css. */

:root {
  --serif: var(--face-display);   /* every "display" rule in styles.css */
  --sans: var(--face-text);       /* every body rule in styles.css */
  --ink-warm: #3a3532;
}
html { font-stretch: var(--display-stretch); }   /* only Archivo has a width axis */
body { color: var(--ink-warm); font-size: 1.0625rem; line-height: 1.62; font-kerning: normal; }

h1, h2, h3, .display, .frame__title, .about-title, .group__title, .sheet__name, .company__name,
.person__name, .stat__value, .group__big, .group__fact-value, .timeline__year, .how__num,
.fb__nav a, .faq__q, .explorer__name, .explorer__title, .footer__giant, .tile__word,
.card__logo--word, .feature__body h3, .fund__name, .platform__item h3, .how__title, .timeline__title {
  font-family: var(--face-display);
  font-weight: var(--display-weight);
  letter-spacing: -0.02em;
}
h1, .frame__title, .about-title { letter-spacing: var(--display-tracking); }
.frame__title { font-size: clamp(2.5rem, 1.2rem + 4.4vw, 5.4rem); line-height: 1.02; max-width: 14ch; }
.about-title { font-size: clamp(2.6rem, 1.3rem + 4.6vw, 5.8rem); line-height: 1.02; }
h1 { font-size: clamp(2.2rem, 1.3rem + 3vw, 4rem); line-height: 1.04; }
h2 { font-size: clamp(1.6rem, 1.1rem + 1.8vw, 2.6rem); line-height: 1.1; }
.group__title { font-size: clamp(2rem, 1.2rem + 2.8vw, 3.6rem); }
.sheet__name { font-size: clamp(2.4rem, 1.4rem + 2.6vw, 4.2rem); }
.stat__value { font-size: clamp(2.2rem, 1.4rem + 2.6vw, 3.8rem); font-weight: 400; }
.group__big { font-size: clamp(3.4rem, 1.8rem + 5vw, 7rem); font-weight: 400; }
.fb__nav a { font-size: clamp(1.5rem, 1.1rem + 1.2vw, 2.2rem); }
.footer__giant { font-weight: 300; }
.faq__q { font-size: clamp(1.1rem, 0.95rem + 0.6vw, 1.45rem); line-height: 1.3; }
.how__num { font-weight: 400; }

/* italic emphasis switches to the serif, in the brand orange */
h1 em, h2 em, h3 em, .frame__title em, .about-title em, .group__title em {
  font-family: var(--face-text);
  font-style: italic;
  font-weight: 400;
  font-stretch: normal;
  letter-spacing: -0.01em;
  color: var(--red);
  padding-right: 0.04em;
}
.frame__title em { color: #f6b7a6; }
.group__title em { color: #f29d88; }

/* statements read in the serif */
.lede, .intro__lede, .about-mission__text, .mission, .sheet__lede, .explorer__for,
.group__lede, .how__body, .company__tagline, .fund__lede {
  font-family: var(--face-text);
  font-stretch: normal;
}
.intro__lede, .about-mission__text, .mission {
  font-weight: 300;
  letter-spacing: -0.012em;
  color: var(--ink-warm);
}
.intro__lede { font-size: clamp(1.5rem, 1.1rem + 1.5vw, 2.5rem); line-height: 1.22; max-width: 30ch; }

/* labels, nav and buttons in the wide grotesk, set small and tracked */
.eyebrow, .nav a, .nav__cta, .button, .link-arrow, .badge, .filter, .fb__label, .frame__kicker,
.frame__corners, .sheet__status, .sheet__index, .explorer__num, .rail, .hero__meta, .stat__label,
.tile__visit, .sheet__visit, .company__visit, .fb__social, .menu-toggle, .footer__reg, .footer__bottom,
.explorer__kicker, .explorer__for span, .dl__row dt, .sheet__facts dt, .fund__status, .face__role,
.timeline__btn, .fundswitch__btn, .pf-filter, .pf-view, .pf-card__num {
  font-family: var(--face-display);
  font-stretch: var(--display-stretch);
}
.eyebrow, .nav a, .button, .link-arrow, .frame__kicker, .sheet__status, .menu-toggle, .fb__label { letter-spacing: 0.08em; }
.nav a { font-size: 0.78rem; font-weight: 500; }
.button, .link-arrow { font-size: 0.78rem; font-weight: 500; }
.stat__label { font-size: 0.8rem; letter-spacing: 0.02em; }
.footer__reg, .footer__bottom { font-size: 0.78rem; }

/* ---------------------------------------------------------------- header */

.wordmark { gap: 0; align-items: stretch; height: 52px; }
.wordmark img { width: auto; max-height: none; }
.logomark { height: 100%; width: auto; display: block; overflow: visible; }
.wordmark__text { height: 100%; width: auto; display: block; }
.wordmark__text--light { display: none; }
.lm-ink { fill: var(--brand); transition: fill 300ms ease; }
.lm-hot { fill: var(--accent); transition: fill 300ms ease; }
.lm-dot, .lm-pill, .lm-sq, .lm-bar, .lm-stem { transform-box: fill-box; transform-origin: 50% 100%; }

/* hover: the i-dot hops, the pill and columns answer it in sequence */
.wordmark:hover .lm-dot, .wordmark:focus-visible .lm-dot { animation: lm-hop 900ms cubic-bezier(0.3, 1.6, 0.5, 1) both; }
.wordmark:hover .lm-pill, .wordmark:focus-visible .lm-pill { animation: lm-nudge 700ms 120ms cubic-bezier(0.3, 1.5, 0.5, 1) both; }
.wordmark:hover .lm-bar, .wordmark:focus-visible .lm-bar { animation: lm-nudge 700ms 60ms cubic-bezier(0.3, 1.5, 0.5, 1) both; }
.wordmark:hover .lm-stem, .wordmark:focus-visible .lm-stem { animation: lm-nudge 700ms 180ms cubic-bezier(0.3, 1.5, 0.5, 1) both; }
@keyframes lm-hop {
  0% { transform: translateY(0) scale(1, 1); }
  18% { transform: translateY(6%) scale(1.12, 0.86); }
  45% { transform: translateY(-62%) scale(0.94, 1.08); }
  70% { transform: translateY(0) scale(1.1, 0.9); }
  85% { transform: translateY(-10%) scale(1, 1); }
  100% { transform: translateY(0) scale(1, 1); }
}
@keyframes lm-nudge {
  0%, 100% { transform: scaleY(1); }
  40% { transform: scaleY(0.94); }
  70% { transform: scaleY(1.02); }
}

.site-header--overlay {
  position: fixed;
  left: 0;
  right: 0;
  background: transparent;
  border-bottom-color: transparent;
}
/* the header over the Mumbai frame: paper lettering and a paper mark; on
   hover the mark takes back its true colours */
.site-header--overlay:not([data-stuck="true"]) .wordmark__text--dark { display: none; }
.site-header--overlay:not([data-stuck="true"]) .wordmark__text--light { display: block; }
.site-header--overlay:not([data-stuck="true"]) .lm-ink,
.site-header--overlay:not([data-stuck="true"]) .lm-hot { fill: var(--paper); }
.site-header--overlay:not([data-stuck="true"]) .wordmark:hover .lm-hot,
.site-header--overlay:not([data-stuck="true"]) .wordmark:focus-visible .lm-hot { fill: var(--accent); }
.site-header--overlay:not([data-stuck="true"]) .nav a { color: var(--paper); }
.site-header--overlay:not([data-stuck="true"]) .nav a::after { background: var(--paper); }
.site-header .nav__cta { transition: border-color 180ms ease; }

.site-header--overlay:not([data-stuck="true"]) .nav__cta { border-color: rgba(244, 241, 233, 0.6); color: var(--paper) !important; }
.site-header--overlay:not([data-stuck="true"]) .nav__cta:hover { background: var(--paper); color: var(--ink) !important; }
.site-header--overlay:not([data-stuck="true"]) .menu-toggle { color: var(--paper); border-color: rgba(244, 241, 233, 0.6); }
.site-header--overlay:not([data-stuck="true"]) :focus-visible { outline-color: var(--paper); }

/* The floating bar. After 80px of scroll, on every page, the header becomes a
   charcoal block inset from the edges that stays on screen, so every page is
   one click away without scrolling back up. */
/* The header's mount div is exactly the header's height, which left
   position: sticky no room to stick; let the header use the body instead. */
[data-site-header] { display: contents; }
.site-header { transition: background 300ms ease, border-color 300ms ease; }
.site-header[data-stuck="true"] {
  background: transparent;
  border-bottom-color: transparent;
  pointer-events: none;
}
.site-header[data-stuck="true"] .site-header__inner {
  pointer-events: auto;
  min-height: 60px;
  margin-top: 10px;
  padding-inline: 18px 10px;
  width: min(100% - 20px, var(--shell) - 40px);
  background: rgba(46, 43, 41, 0.9);
  -webkit-backdrop-filter: blur(14px) saturate(1.2);
  backdrop-filter: blur(14px) saturate(1.2);
  border: 1px solid rgba(244, 241, 233, 0.1);
  box-shadow: 0 14px 40px rgba(30, 28, 27, 0.22), inset 0 1px 0 rgba(244, 241, 233, 0.06);
  animation: bar-in 420ms cubic-bezier(0.2, 0.75, 0.1, 1);
}
@keyframes bar-in { from { transform: translateY(-120%); } to { transform: none; } }
.site-header[data-stuck="true"] .wordmark { height: 36px; }
.site-header[data-stuck="true"] .wordmark__text--dark { display: none; }
.site-header[data-stuck="true"] .wordmark__text--light { display: block; }
.site-header[data-stuck="true"] .lm-ink { fill: var(--paper); }
.site-header[data-stuck="true"] .nav a { color: rgba(244, 241, 233, 0.86); }
.site-header[data-stuck="true"] .nav a:hover,
.site-header[data-stuck="true"] .nav a[aria-current="page"] { color: var(--paper); }
.site-header[data-stuck="true"] .nav a::after { background: var(--accent); }
.site-header[data-stuck="true"] .nav__cta { background: var(--red); border-color: var(--red); color: var(--white) !important; }  /* #B0330F: 5.9:1 with white at this small size */
.site-header[data-stuck="true"] .nav__cta:hover { background: var(--paper); border-color: var(--paper); color: var(--ink) !important; }
.site-header[data-stuck="true"] .menu-toggle { color: var(--paper); border-color: rgba(244, 241, 233, 0.5); }
.site-header[data-stuck="true"] :focus-visible { outline-color: var(--paper); }
.site-header--overlay[data-stuck="true"] { position: fixed; }

/* the open mobile menu is a paper sheet: dark text, dark mark */
.site-header:has(.nav[data-open="true"]) { pointer-events: auto; }
.site-header:has(.nav[data-open="true"]) .site-header__inner { background: var(--paper); -webkit-backdrop-filter: none; backdrop-filter: none; }
.site-header:has(.nav[data-open="true"]) .wordmark__text--dark { display: block; }
.site-header:has(.nav[data-open="true"]) .wordmark__text--light { display: none; }
.site-header:has(.nav[data-open="true"]) .lm-ink { fill: var(--brand); }
.site-header:has(.nav[data-open="true"]) .lm-hot { fill: var(--accent); }
.site-header:has(.nav[data-open="true"]) .menu-toggle { color: var(--ink); border-color: var(--ink); }
.site-header .nav[data-open="true"] a { color: var(--ink) !important; }
.site-header .nav[data-open="true"] .nav__cta { background: transparent !important; border-color: var(--ink) !important; }

/* ---------------------------------------------------------- frame corners */

.frame__corners { grid-template-columns: 1fr auto; }
.frame__corner--end { text-align: right; justify-self: end; }
/* The pause control stays for keyboard and screen-reader users (WCAG 2.2.2)
   but is visually hidden until it receives focus. */
.frame__toggle {
  position: absolute;
  right: var(--gutter);
  bottom: 64px;
  clip-path: inset(50%);
  width: 1px;
  height: 1px;
  min-height: 0;
  padding: 0;
  border: 0;
  overflow: hidden;
  white-space: nowrap;
}
.frame__toggle:focus-visible { clip-path: none; width: auto; height: auto; min-height: var(--target-min); padding: 0 14px; overflow: visible; background: var(--paper); color: var(--ink); }

/* ----------------------------------------------------------------- intro */

.intro__lede { max-width: 34ch; }

/* -------------------------------------------------------------- odometer */

.stats { position: relative; }
.stat__value { display: inline-flex; align-items: baseline; font-variant-numeric: tabular-nums lining-nums; }
.odo { display: inline-block; height: 1em; line-height: 1; overflow: hidden; vertical-align: baseline; }
.odo__col { display: flex; flex-direction: column; transform: translateY(calc(var(--d) * -1em)); }
.odo__col > span { display: block; height: 1em; line-height: 1; }
.odo__ch { display: inline-block; line-height: 1; }
.odo-ready [data-odo-row]:not(.is-in) .odo__col { transform: translateY(0); }
.odo-ready [data-odo-row] .odo__col { transition: transform 1600ms cubic-bezier(0.2, 0.8, 0.1, 1) calc(var(--k) * 90ms + 120ms); }
.odo-ready [data-odo-row] .stat { transition: transform 900ms cubic-bezier(0.2, 0.75, 0.1, 1); }
.odo-ready [data-odo-row]:not(.is-in) .stat { transform: translateY(18px); }
.odo-ready [data-odo-row] .stat:nth-child(2) { transition-delay: 80ms; }
.odo-ready [data-odo-row] .stat:nth-child(3) { transition-delay: 160ms; }
.odo-ready [data-odo-row] .stat:nth-child(4) { transition-delay: 240ms; }
/* a hairline draws across the row as the digits land */
.stats::after {
  content: "";
  position: absolute;
  left: 0;
  top: -1px;
  height: 2px;
  width: 100%;
  background: var(--accent);
  transform-origin: left;
  transform: scaleX(0);
  transition: transform 1400ms cubic-bezier(0.2, 0.75, 0.1, 1) 200ms;
}
.stats.is-in::after { transform: scaleX(1); }

/* ----------------------------------------------------------- fund sheets */

.fundstack { position: relative; display: grid; gap: 28px; padding-bottom: 8px; timeline-scope: --sheet-1; }
.sheet {
  position: sticky;
  top: calc(var(--header-h) + 8px);
  min-height: min(76vh, 640px);
  border: 1px solid rgba(67, 63, 60, 0.14);
  background: var(--paper-deep);
  transform-origin: 50% 0;
}
.sheet--live { background: #fbf9f4; border-top: 4px solid var(--accent); view-timeline-name: --sheet-1; }
.sheet__inner {
  height: 100%;
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  grid-template-rows: auto 1fr;
  gap: clamp(22px, 3vw, 44px) clamp(24px, 4vw, 64px);
  padding: clamp(24px, 3.4vw, 52px);
}
.sheet__head {
  grid-column: 1 / -1;
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 10px 28px;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--rule);
}
.sheet__head .sheet__status { margin: 0 0 0 auto; }
.sheet__index { font-size: 0.8125rem; letter-spacing: 0.1em; color: var(--red); font-variant-numeric: tabular-nums; }
.sheet__index span { color: var(--muted); }
.sheet__name {
  margin: 0;
  white-space: nowrap;
  font-family: var(--serif);
  font-size: clamp(3.2rem, 2rem + 4.2vw, 6.4rem);
  line-height: 0.9;
  letter-spacing: -0.035em;
}
.sheet__status { margin-top: 14px; font-size: 0.8125rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted); }
.sheet--live .sheet__status { color: var(--red); }
.sheet__body { display: flex; flex-direction: column; gap: 20px; }
.sheet__lede { font-family: var(--serif); font-size: var(--step-1); line-height: 1.35; max-width: 40ch; }
.sheet__facts { margin: 0; display: grid; gap: 0; border-top: 1px solid var(--rule); }
.sheet__facts > div { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--rule); font-size: 0.95rem; }
.sheet__facts dt { font-size: 0.75rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); padding-top: 3px; }
.sheet__facts dd { margin: 0; }
.sheet__body .link-arrow { align-self: flex-start; margin-top: auto; }
.sheet .range__track { background: rgba(67, 63, 60, 0.12); height: 4px; }
.sheet .range__fill { transform: scaleX(0); transition: transform 1200ms cubic-bezier(0.2, 0.75, 0.1, 1) 300ms; }
.sheet.is-in .range__fill, html:not(.sheets-ready) .sheet .range__fill { transform: scaleX(1); }

.sheet__logos {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-auto-rows: 64px;
  gap: 4px;
  align-content: start;
}
.sheet__logos li { position: relative; }
.sheets-ready .sheet:not(.is-in) .sheet__logos li { transform: translateY(14px) scale(0.96); }
.sheet__logos li { transition: transform 700ms cubic-bezier(0.2, 0.75, 0.1, 1) calc(var(--j) * 40ms + 200ms); }
.sheet__logo {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  padding: 10px;
  overflow: hidden;
}
.sheet__logo img { max-height: 34px; width: auto; max-width: 100%; object-fit: contain; }
.sheet__word { font-family: var(--serif); font-size: 1rem; line-height: 1.05; text-align: center; color: var(--ink); }

/* Fund I recedes as Fund II slides over it (scroll-driven where supported). */
@supports (animation-timeline: view()) {
  .sheet:not(.sheet--live) {
    animation: sheet-recede linear both;
    animation-timeline: --sheet-1;
    animation-range: entry 0% entry 100%;
  }
  @keyframes sheet-recede {
    to { transform: scale(0.94); filter: brightness(0.94); }
  }
}

/* ------------------------------------------------------------------ logos
   No white boxes anywhere: logos sit on the page colour and their own white
   backgrounds are multiplied away. At rest they are quiet (greyscale); on
   hover they take their colour, lift, and show where the click goes. */

.tile,
.feature__logo,
.company__logo,
.pf-card__logo,
.pf-preview__logo { background: var(--paper) !important; }
.band .tile { background: var(--paper-deep) !important; }
.sheet__logo { background: var(--paper-deep); }
.sheet--live .sheet__logo { background: #fbf9f4; }
.tile { border-color: var(--rule); }
.tile__logo img,
.feature__logo img,
.company__logo img,
.sheet__logo img,
.pf-card__logo img,
.pf-marquee__logo img,
.pf-preview__logo img {
  mix-blend-mode: multiply;
  filter: grayscale(1) contrast(1.05);
  transition: filter 360ms ease, transform 500ms cubic-bezier(0.2, 0.75, 0.1, 1);
}
.tile:hover .tile__logo img,
.tile:focus-visible .tile__logo img,
.feature__logo:hover img,
.company__logo:hover img,
.sheet__logo:hover img,
.sheet__logo:focus-visible img,
.pf-card:hover .pf-card__logo img,
.pf-preview__logo img {
  filter: none;
  transform: scale(1.06);
}
.tile { position: relative; overflow: hidden; }
.tile::before,
.sheet__logo::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(67, 63, 60, 0.07);
  transform: translateY(101%);
  transition: transform 450ms cubic-bezier(0.2, 0.75, 0.1, 1);
  z-index: -1;
}
/* each box is its own blend group with an opaque floor, so the logos' own
   white backgrounds multiply away into the page colour */
.tile, .sheet__logo { isolation: isolate; }
.tile:hover::before, .tile:focus-visible::before,
.sheet__logo:hover::before, .sheet__logo:focus-visible::before { transform: none; }
.tile:hover { transform: none; box-shadow: none; border-color: var(--rule-strong); }
.sheet__visit,
.company__visit {
  position: absolute;
  right: 10px;
  top: 10px;
  font-size: 0.6875rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--red);
  transform: translateY(-160%);
  transition: transform 400ms cubic-bezier(0.2, 0.75, 0.1, 1);
}
.sheet__visit, .company__visit { z-index: 2; }
.sheet__visit::after, .company__visit::after { content: " \2197"; }
.sheet__visit { top: 4px; right: 6px; font-size: 0.625rem; }
.sheet__logo:hover .sheet__visit, .sheet__logo:focus-visible .sheet__visit,
.company__logo:hover .company__visit, .company__logo:focus-visible .company__visit { transform: none; }
.company__logo { position: relative; overflow: hidden; border: 1px solid var(--rule); }
a.company__logo:hover { border-color: var(--rule-strong); }
.feature__logo { border-color: var(--rule); }

/* ---------------------------------------------------- team: ruled cells
   After Collab Fund's team grid: one cell per person, 1px rules, the name
   large in the serif at the top, the role at the foot. A portrait (or a
   monogram for profiles still to come) sits small in the corner and grows
   on hover. */

.faces {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  border-top: 1px solid var(--rule-strong);
  border-left: 1px solid var(--rule);
}
.faces > li { display: flex; }
.face {
  position: relative;
  width: 100%;
  min-height: 260px;
  display: grid;
  grid-template-rows: 1fr auto;
  gap: 18px;
  padding: 26px 26px 22px;
  border-right: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
  transition: background 300ms ease;
}
.face:hover, .face:focus-visible { background: var(--paper-deep); }
.face__name {
  font-family: var(--face-text);
  font-stretch: normal;
  font-weight: 400;
  font-size: clamp(1.7rem, 1.2rem + 1.2vw, 2.4rem);
  line-height: 1.1;
  max-width: 9ch;
}
.face__role { font-size: 0.75rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); }
.face:hover .face__role { color: var(--red); }
.face__photo {
  position: absolute;
  right: 22px;
  top: 22px;
  width: 64px;
  aspect-ratio: 4 / 5;
  margin: 0;
  transition: width 500ms cubic-bezier(0.2, 0.75, 0.1, 1);
}
.face:hover .face__photo, .face:focus-visible .face__photo { width: 108px; }
.face__photo img { filter: grayscale(1) contrast(1.02); }
.face:hover .face__photo img { filter: none; transform: none; }

/* --------------------------------------------------------- team placeholders */

.face__mono,
.person__photo--mono span {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  font-family: var(--face-display);
  font-size: clamp(1.1rem, 0.8rem + 1vw, 2rem);
  letter-spacing: -0.02em;
  color: var(--paper);
  background:
    radial-gradient(circle at 78% 18%, var(--accent) 0 9%, transparent 9.5%),
    var(--ink);
}
.person__photo--mono { display: flex; }
.face--pending .face__role, .person--pending .person__body > p:last-child { color: var(--muted); font-style: italic; }
.person--pending { padding-block: clamp(20px, 3vw, 36px); }
.person--pending .person__photo { max-width: 180px; }

/* ------------------------------------------------------------ platform */

.platform__item--us { grid-column: span 2; }

/* ----------------------------------------------------------- responsive */

@media (max-width: 1080px) {
  .faces { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sheet__inner { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .sheet__logos { grid-column: 1 / -1; grid-template-columns: repeat(6, minmax(0, 1fr)); }
}
@media (max-width: 820px) {
  .wordmark { height: 40px; }
  .site-header[data-stuck="true"] .wordmark { height: 32px; }
  .site-header[data-stuck="true"] .site-header__inner { padding-inline: 14px 8px; }
  .sheet { position: relative; top: auto; min-height: 0; }
  .sheet__inner { grid-template-columns: 1fr; }
  .sheet__logos { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .platform__item--us { grid-column: auto; }
}
@media (max-width: 560px) {
  .faces { grid-template-columns: 1fr; }
  .face { min-height: 180px; }
  .sheet__facts > div { grid-template-columns: 1fr; gap: 2px; }
  .sheet__logos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (prefers-reduced-motion: reduce) {
  .wordmark:hover .lm-dot, .wordmark:hover .lm-pill, .wordmark:hover .lm-bar, .wordmark:hover .lm-stem,
  .wordmark:focus-visible .lm-dot, .wordmark:focus-visible .lm-pill, .wordmark:focus-visible .lm-bar, .wordmark:focus-visible .lm-stem { animation: none; }
  .site-header[data-stuck="true"] .site-header__inner { animation: none; }
  .sheet:not(.sheet--live) { animation: none !important; }
  .odo__col, .stat, .stats::after, .sheet__logos li, .range__fill { transition: none !important; }
}

/* name-only tiles: the wide face needs a smaller size to fit a tile */
.tile__word { font-size: clamp(1rem, 0.8rem + 0.55vw, 1.35rem); line-height: 1.15; padding-inline: 4px; overflow-wrap: anywhere; }

/* The expanded face sets long words wide; let them break rather than push
   the page sideways at 320px or under WCAG 1.4.12 text spacing. */
h1, h2, h3, .pf-hero__title, .doc-contents a, .prose h2, .prose h3 { overflow-wrap: break-word; hyphens: auto; }
.pf-hero__title .pf-word { max-width: 100%; overflow-wrap: anywhere; }
.pager .link-arrow, .dl__row .link-arrow { min-height: 44px; display: inline-flex; align-items: center; }
@media (max-width: 480px) {
  h1, .pf-hero__title { font-size: clamp(1.6rem, 6.6vw, 2.1rem); }
  h2 { font-size: clamp(1.3rem, 5.4vw, 1.7rem); }
  .doc-contents h2 { font-size: 0.8rem; }
}
/* grid columns may shrink below their longest token (emails, URLs, review placeholders) */
.doc-layout > *, .contact-grid > *, .split > * { min-width: 0; }
.prose, .prose p, .prose li, .doc-contents a, .contact-block p { overflow-wrap: anywhere; }

/* ------------------------------------------------- investor protection
   SEBI SCORES and SMART ODR as the last two steps of a three-step ladder,
   in the footer on every page. An orange line runs through the steps and
   draws across as you hover any of them. */

.protect {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 4fr) minmax(0, 9fr);
  gap: clamp(20px, 4vw, 56px);
  padding: clamp(28px, 3.4vw, 48px) 0 clamp(32px, 3.6vw, 52px);
}
.protect__title { margin: 0 0 10px; font-size: clamp(1.3rem, 1rem + 0.8vw, 1.8rem); color: var(--paper); }
.protect__intro p { font-size: 0.95rem; color: rgba(244, 241, 233, 0.78); max-width: 36ch; }
.protect__steps { list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; position: relative; }
.protect__steps::before {
  content: "";
  position: absolute;
  left: 22px;
  right: 22px;
  top: 38px;
  height: 1px;
  background: var(--rule-on-dark);
}
.protect__steps::after {
  content: "";
  position: absolute;
  left: 22px;
  right: 22px;
  top: 38px;
  height: 1px;
  background: var(--accent);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 900ms cubic-bezier(0.2, 0.75, 0.1, 1);
}
.protect__steps:hover::after, .protect__steps:focus-within::after { transform: scaleX(1); }
.protect__steps > li { display: flex; }
.site-footer .protect__step {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  text-align: left;
  gap: 10px;
  width: 100%;
  padding: 22px 22px 20px;
  border: 1px solid var(--rule-on-dark);
  background: rgba(244, 241, 233, 0.03);
  color: var(--paper);
  transition: background 300ms ease, border-color 300ms ease, transform 400ms cubic-bezier(0.2, 0.75, 0.1, 1);
}
.protect__n {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: 1px solid rgba(244, 241, 233, 0.5);
  background: var(--night);
  font-family: var(--face-display);
  font-size: 0.6875rem;
  letter-spacing: 0.04em;
  transition: background 300ms ease, border-color 300ms ease;
}
.protect__name { font-family: var(--face-display); font-weight: 500; font-size: clamp(1.15rem, 0.95rem + 0.6vw, 1.5rem); line-height: 1.1; color: var(--paper); }
.protect__desc { font-size: 0.9rem; line-height: 1.45; color: rgba(244, 241, 233, 0.78); }
.protect__go {
  margin-top: auto;
  padding-top: 6px;
  font-family: var(--face-display);
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #f29d88;
}
.protect__go::after { content: " \2197"; display: inline-block; transition: transform 300ms ease; }
.protect__steps > li:first-child .protect__go::after { content: " \2192"; }
.protect__step:hover, .protect__step:focus-visible {
  background: rgba(244, 241, 233, 0.07);
  border-color: rgba(244, 241, 233, 0.4);
  transform: translateY(-3px);
}
.protect__step:hover .protect__n, .protect__step:focus-visible .protect__n { background: var(--accent); border-color: var(--accent); }
.protect__step:hover .protect__go::after { transform: translate(2px, -2px); }
.protect__step:focus-visible { outline: 3px solid var(--paper); outline-offset: 3px; }

@media (max-width: 900px) {
  .protect { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .protect__steps { grid-template-columns: 1fr; }
  .protect__steps::before, .protect__steps::after { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .protect__steps::after, .protect__step { transition: none; }
}

/* ------------------------------------------------- footer order and gap
   The ladder opens the footer and the three colour blocks close it, right
   above a short legal strip, so the last screen of every page shows the
   three blocks whole. No margin above the footer: the page runs straight
   into it. */
.site-footer { margin-top: 0; padding-top: 0; }
.site-footer .fblocks { margin-top: 0; }
.site-footer .footer__reg { margin-top: 24px; }
.site-footer .footer__bottom { padding-bottom: 28px; }

/* ------------------------------------------------ fund sheets, simplified
   No fact rows: name, status, one line and the companies. Tighter, and
   tinted so the two funds read as two colours. */
.sheet { min-height: 0; }
.sheet__inner { grid-template-rows: auto auto; gap: clamp(18px, 2.4vw, 32px) clamp(24px, 4vw, 64px); padding: clamp(24px, 3vw, 44px); }
.sheet:not(.sheet--live) { background: #ebe8e4; border-color: rgba(67, 63, 60, 0.16); }
.sheet--live { background: #f8e4dc; border-color: rgba(176, 51, 15, 0.25); }
.sheet--live .sheet__logo, .sheet--live .sheet__logo::before { background-color: #f8e4dc; }
.sheet:not(.sheet--live) .sheet__logo { background: #ebe8e4; }
.sheet__body { justify-content: flex-start; padding-top: 4px; } /* top edge on the logo grid's top edge */
.sheet__body .link-arrow { margin-top: 12px; }
.sheet__lede { font-size: clamp(1.25rem, 1rem + 0.8vw, 1.85rem); line-height: 1.28; max-width: 30ch; }
.fundstack { gap: 18px; }

/* Footer LinkedIn: the mark alone, in the footer's own ink. */
.fb__social--icon { justify-content: center; width: 44px; padding: 0; }
.fb__social--icon svg { display: block; }

/* ------------------------------------------------- funds: one at a time
   Replaces the sticky stacked sheets. Two tabs share one baseline and split
   the width in half; the panel below is one grid (4 + 8 of 12): text on the
   left, a ruled wall of equal tiles on the right, always a whole rectangle. */
.fundstack--tabs { display: block; gap: 0; padding: 0; timeline-scope: none; }
.fundtabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-bottom: 1px solid var(--rule-strong); }
.fundtab {
  appearance: none;
  background: none;
  border: 0;
  border-top: 3px solid transparent;
  margin: 0;
  padding: 22px 0 20px;
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  text-align: left;
  color: var(--muted);
  cursor: pointer;
  font: inherit;
  transition: color 250ms ease, border-color 250ms ease;
}
.fundtab + .fundtab { padding-left: clamp(20px, 3vw, 40px); border-left: 1px solid var(--rule); }
.fundtab__name { font-family: var(--face-display); font-weight: 600; font-size: clamp(1.6rem, 1.1rem + 1.6vw, 2.6rem); line-height: 1; letter-spacing: -0.025em; color: inherit; }
.fundtab__meta { display: grid; justify-items: end; gap: 4px; font-family: var(--face-text); font-size: 0.75rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; }
.fundtab__count { color: var(--muted); font-weight: 500; letter-spacing: 0.06em; }
.fundtab[aria-selected="true"] { color: var(--ink); border-top-color: var(--ink); }
.fundtab--live[aria-selected="true"] { border-top-color: var(--accent); }
.fundtab--live .fundtab__status { color: var(--red); }
.fundtab:hover { color: var(--ink); }
.fundtab:focus-visible { outline: 2px solid var(--ink); outline-offset: 4px; }

.fundstack--tabs .sheet {
  position: relative;
  top: auto;
  min-height: 0;
  border: 0;
  background: none !important;
  animation: none !important;
  transform: none;
  filter: none;
}
.fundstack--tabs .sheet[hidden] { display: none; }
.fundstack--tabs .sheet:focus-visible { outline: 2px solid var(--ink); outline-offset: 6px; }
.fundstack--tabs .sheet__inner {
  display: grid;
  grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
  grid-template-rows: auto;
  gap: 0 clamp(28px, 4vw, 64px);
  padding: clamp(28px, 3.5vw, 48px) 0 0;
  height: auto;
}
.fundstack--tabs .sheet__text { display: flex; flex-direction: column; gap: 24px; align-self: start; padding-top: 2px; }
.fundstack--tabs .sheet__status { margin: 0; font-size: 0.75rem; letter-spacing: 0.12em; }
.fundstack--tabs .sheet__name { white-space: nowrap; font-size: clamp(2.4rem, 1.6rem + 2.4vw, 4rem); line-height: 0.95; margin: 0; }
.fundstack--tabs .sheet__lede { font-size: clamp(1.15rem, 1rem + 0.5vw, 1.5rem); line-height: 1.4; max-width: 30ch; margin: 0; }
.fundstack--tabs .sheet__text .link-arrow { align-self: flex-start; }

/* the wall: equal tiles, hairline rules, closed on all four sides */
.fundstack--tabs .sheet__logos {
  grid-column: auto;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-auto-rows: auto;
  gap: 0;
  border-top: 1px solid var(--rule);
  border-left: 1px solid var(--rule);
  align-content: start;
  align-self: start;
}
.fundstack--tabs .sheet__logos li { aspect-ratio: 2 / 1; border-right: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }
.fundstack--tabs .sheet__logo { background: none !important; padding: 0; height: 100%; }
.fundstack--tabs .sheet__logo::before { display: none; }
.fundstack--tabs .sheet__logo img { max-height: none; max-width: none; object-fit: contain; filter: grayscale(1); transition: filter 300ms ease, transform 300ms ease; }
.fundstack--tabs .sheet__logo:hover img, .fundstack--tabs .sheet__logo:focus-visible img { filter: none; transform: scale(1.04); }
.fundstack--tabs .sheet__logo:hover, .fundstack--tabs .sheet__logo:focus-visible { background: var(--paper-deep) !important; }
.fundstack--tabs .sheet__blank { background: repeating-linear-gradient(135deg, transparent 0 9px, rgba(67, 63, 60, 0.05) 9px 10px); }

/* arrival: the wall steps in tile by tile (transform only, never opacity) */
.sheets-ready .fundstack--tabs .sheet:not(.is-in) .sheet__logos li { transform: translateY(10px); }
.fundstack--tabs .sheet__logos li { transition: transform 600ms cubic-bezier(0.2, 0.75, 0.1, 1) calc(var(--j, 0) * 25ms); }

@media (max-width: 900px) {
  .fundstack--tabs .sheet__inner { grid-template-columns: 1fr; gap: 28px; }
  .fundstack--tabs .sheet__text .link-arrow { margin-top: 4px; }
}
@media (max-width: 560px) {
  .fundtab { flex-direction: column; align-items: flex-start; gap: 8px; }
  .fundtab__meta { justify-items: start; }
  .fundstack--tabs .sheet__logos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (prefers-reduced-motion: reduce) {
  .fundstack--tabs .sheet__logos li { transition: none; }
}

/* Footer legal links (Disclaimer, Privacy Notice, Image Credits) */
.footer__links { display: flex; flex-wrap: wrap; gap: 6px 20px; }
.footer__links a { display: inline-flex; align-items: center; min-height: 24px; color: inherit; text-decoration: underline; text-underline-offset: 0.18em; text-decoration-thickness: 1px; }
.footer__links a:hover { color: var(--paper); }

/* the line under each form's consent box that points to the privacy notice */
.consent-note { margin-top: 8px; font-size: 0.875rem; color: var(--ink-soft); }
.consent-note a { text-decoration: underline; text-underline-offset: 0.15em; }

/* ------------------------------------------------------------ skip links
   Two links, top left, first in the tab order: Tab once for navigation,
   twice for the main content. Hidden until focused; each shows in the same
   spot, in the site's ink with the orange dot from the logo. */
.skip-links { position: absolute; top: 0; left: 0; z-index: 10000; }
.skip-links .skip-link {
  position: absolute;
  top: 12px;
  left: 16px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 12px 18px;
  white-space: nowrap;
  background: var(--ink);
  color: var(--paper);
  font-family: var(--face-text);
  font-size: 0.9375rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  text-decoration: none;
  border-radius: 0;
  box-shadow: 0 10px 30px rgba(67, 63, 60, 0.28);
  transform: translateY(calc(-100% - 24px));
  transition: transform 180ms cubic-bezier(0.2, 0.75, 0.1, 1);
}
.skip-links .skip-link::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--accent); flex: none; }
.skip-links .skip-link:focus,
.skip-links .skip-link:focus-visible { transform: none; outline: 2px solid var(--accent); outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) { .skip-links .skip-link { transition: none; } }

/* A skip target takes focus only so the next Tab starts there; it needs no ring. */
.skip-target:focus, #site-nav:focus, #what-we-look-for:focus { outline: none; }

/* ------------------------------------------------- fund tabs, meta block
   Status and count sit as one block, centred against the fund name and
   kept clear of the dividing rule: a dot and the status in sentence case,
   then the count as a numeral in the display face. */
.fundtab { align-items: center; padding: 26px clamp(16px, 2.4vw, 36px) 24px 0; }
.fundtab + .fundtab { padding-left: clamp(20px, 3vw, 40px); }
.fundtab__meta {
  display: grid;
  justify-items: end;
  gap: 6px;
  text-align: right;
  font-family: var(--face-text);
  font-size: 0.8125rem;
  font-weight: 500;
  letter-spacing: 0.01em;
  text-transform: none;
}
.fundtab__status { display: inline-flex; align-items: center; gap: 8px; color: var(--muted); }
.fundtab__status::before { content: ""; width: 7px; height: 7px; border-radius: 50%; border: 1.5px solid currentColor; box-sizing: border-box; }
.fundtab--live .fundtab__status { color: var(--red); }
.fundtab--live .fundtab__status::before { background: currentColor; }
.fundtab__count { display: inline-flex; align-items: baseline; gap: 6px; color: var(--muted); font-weight: 500; letter-spacing: 0.01em; }
.fundtab__num { font-family: var(--face-display); font-weight: 600; font-size: 1.5rem; line-height: 1; letter-spacing: -0.02em; color: inherit; }
.fundtab[aria-selected="true"] .fundtab__count { color: var(--ink-soft); }
.fundtab[aria-selected="true"] .fundtab__num { color: var(--ink); }
@media (max-width: 560px) {
  .fundtab { padding-right: 0; align-items: flex-start; }
  .fundtab__meta { justify-items: start; text-align: left; }
}

/* company page: co-investors one per line */
.dl__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }

/* Logo: the old text wordmark had a 1px rule on its left (styles.css). The
   wordmark is now an image beside the mark, and that rule drew a stray line
   next to the dot. No rule; the 14px gap stays. */
.wordmark .wordmark__text { border-left: 0; }

/* Team page: every portrait at one size, whether or not the bio is in yet
   (was 300px for full profiles, 180px for pending ones). */
.person__photo, .person--pending .person__photo { max-width: 240px; }
