/* ============================================================
   ABOUT PAGE — company story, leadership, investors, careers.
   Built on the dark homepage surface (css/home.css).
   ============================================================ */

/* a11y utilities (.skip-link, .u-sr-only) live in css/components.css */

/* every interactive control gets a visible ring (audit P0-3) */
:where(a, button, summary, input, [tabindex]):focus-visible {
  outline: 2px solid var(--pink);
  outline-offset: 3px;
  border-radius: 4px;
}

/* ---- hero ---------------------------------------------------- */
.ab-hero { padding: 104px 0 48px; }
.ab-hero h1 {
  font-size: clamp(40px, 5.4vw, 68px);
  margin: 16px 0 0;
}
.ab-lede { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; margin-top: 34px; max-width: 1040px; }
.ab-lede p { margin: 0; font-size: 17px; line-height: 1.6; color: var(--cream-2); }
.ab-lede .ab-lede-2 { color: var(--cream-3); }

/* ---- stats band ---------------------------------------------- */
.ab-stats-sec { padding: 14px 0 0; }
.ab-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0 28px;
  margin: 0;
  padding: 30px 0 0;
  border-top: 1px solid var(--hair);
}
.ab-stat { margin: 0; }
.ab-stat dd {
  margin: 0;
  font-family: var(--f-display);
  font-weight: 500;
  font-size: clamp(34px, 4vw, 50px);
  letter-spacing: -0.03em;
  color: var(--cream);
  line-height: 1;
}
.ab-stat dt {
  font-family: var(--f-label);
  font-size: 10.5px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--cream-4);
  margin-top: 12px;
}
.ab-stat { display: flex; flex-direction: column; }

/* ---- story split --------------------------------------------- */
.ab-split { display: grid; grid-template-columns: 1.15fr 0.85fr; gap: 56px; align-items: center; }
.ab-split-copy h2 { font-size: clamp(28px, 3.2vw, 40px); margin: 14px 0 0; }
.ab-split-copy p { font-size: 16.5px; line-height: 1.62; color: var(--cream-2); margin: 18px 0 0; max-width: 560px; }
.ab-split-copy p b { color: var(--cream); font-weight: 600; }

.ab-winrate {
  margin: 0;
  background: var(--page-panel);
  border: 1px solid var(--hair);
  padding: 30px 32px 26px;
}
.ab-wr-fig { display: flex; flex-direction: column; }
.ab-wr-n {
  font-family: var(--f-display);
  font-weight: 500;
  font-size: 76px;
  line-height: 1;
  letter-spacing: -0.04em;
  color: var(--cream);
}
.ab-wr-n i { font-style: normal; font-size: 0.46em; color: var(--pink); margin-left: 2px; }
.ab-wr-l {
  font-family: var(--f-label);
  font-size: 10.5px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--cream-3);
  margin-top: 12px;
}
.ab-wr-bar {
  height: 8px;
  border-radius: 4px;
  background: rgba(246, 239, 224, 0.12);
  margin: 20px 0 0;
  overflow: hidden;
}
.ab-wr-bar span {
  display: block;
  height: 100%;
  border-radius: 4px;
  background: var(--pink);
  transform-origin: left center;
  transform: scaleX(0);
  transition: transform 1s var(--ease) 0.2s;
}
.ab-winrate.in .ab-wr-bar span { transform: scaleX(1); }
.ab-winrate figcaption { margin: 12px 0 0; font-size: 13px; color: var(--cream-3); }

/* ---- team ----------------------------------------------------- */
.ab-group {
  font-family: var(--f-label);
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--cream-3);
  margin: 40px 0 18px;
  font-weight: 500;
}
.ab-team {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

/* ---- Leadership slider + bio modal ------------------------------ */
.team-slider { position: relative; }
.team-slider .ab-team {
  display: flex;
  gap: 18px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  padding-bottom: 8px;
}
.team-slider .ab-team::-webkit-scrollbar { display: none; }
.team-slider .ab-card {
  flex: 0 0 min(320px, 78vw);
  scroll-snap-align: start;
  /* live cards are image-led: no panel chrome */
  background: transparent;
  border: 0;
  padding: 0;
}
.team-slider .ab-photo {
  width: 100%;
  height: 100%;
  border-radius: 0;
  border: 0;
  margin: 0;
}
.team-slider .ab-card[data-bio] { cursor: pointer; }
.team-slider .ab-card[data-bio]:focus-visible { outline: 2px solid var(--yellow); outline-offset: 4px; }
.ab-photo-wrap {
  margin: 0 0 16px;
  aspect-ratio: 1;
  overflow: hidden;
}
.ab-photo-wrap .ab-photo { width: 100%; height: 100%; object-fit: cover; margin: 0; }
/* live-style accent backdrops behind the portraits */
.team-slider .ab-card:nth-child(4n + 1) .ab-photo-wrap { background: var(--c-pink-300, #ff94ed); }
.team-slider .ab-card:nth-child(4n + 2) .ab-photo-wrap { background: var(--c-yellow-400, #ffe661); }
.team-slider .ab-card:nth-child(4n + 3) .ab-photo-wrap { background: var(--c-coral-400, #ff6051); }
.team-slider .ab-card:nth-child(4n + 4) .ab-photo-wrap { background: var(--c-gold-300, #e7d4af); }
.ts-arrow {
  position: absolute;
  top: 38%;
  width: 48px;
  height: 48px;
  border-radius: 999px;
  border: 1px solid var(--hair-2);
  background: var(--cream);
  color: #15020c;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 2;
  transition: transform .16s var(--ease);
}
.ts-arrow:hover { transform: scale(1.06); }
/* display:flex above would defeat the hidden attribute the slider JS
   toggles at the track ends */
.ts-arrow[hidden] { display: none; }
.ts-arrow svg { width: 20px; height: 20px; }
.ts-prev { left: -12px; }
.ts-next { right: -12px; }

.team-modal {
  border: 0;
  padding: 0;
  max-width: min(920px, calc(100vw - 48px));
  background: var(--c-maroon-100, #e8c8dc);
  color: #15020c;
}
.team-modal::backdrop { background: rgba(21, 2, 12, 0.65); }
.tm-inner {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: 40px;
  padding: 44px;
}
.tm-media img { display: block; width: 100%; height: auto; }
.tm-name { font-family: var(--f-display); font-size: clamp(28px, 3.4vw, 42px); letter-spacing: -0.02em; margin: 0; }
.tm-role {
  font-family: var(--f-label);
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  margin: 12px 0 0;
}
.tm-bio { margin-top: 22px; }
.tm-bio p { margin: 0 0 14px; font-size: 15.5px; line-height: 1.62; }
.tm-follow { margin-top: 26px; }
.tm-follow-label {
  display: block;
  font-family: var(--f-label);
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  margin-bottom: 10px;
}
.tm-follow a { color: #15020c; }
.tm-close {
  position: absolute;
  top: 18px;
  right: 18px;
  width: 40px;
  height: 40px;
  border-radius: 999px;
  border: 1px solid rgba(21, 2, 12, 0.3);
  background: transparent;
  color: #15020c;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}
.tm-close svg { width: 18px; height: 18px; }
@media (max-width: 720px) {
  .tm-inner { grid-template-columns: 1fr; gap: 22px; padding: 28px; }
}

.bio-cursor {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 200;
  pointer-events: none;
  font-family: var(--f-label);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  background: var(--yellow);
  color: #240016;
  padding: 6px 12px;
  border-radius: 999px;
  will-change: transform;
}
.ab-card {
  background: var(--page-panel);
  border: 1px solid var(--hair);
  padding: 24px 24px 22px;
  display: flex;
  flex-direction: column;
  transition: border-color 0.25s var(--ease);
}
.ab-card:hover { border-color: var(--hair-2); }

/* works as a <span> monogram now, and as an <img> when real
   headshots land — same class, same box */
.ab-photo {
  width: 74px;
  height: 74px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  object-fit: cover;
  background: var(--page-panel-2);
  border: 1px solid var(--hair-2);
  margin-bottom: 18px;
  flex: none;
}
.ab-photo::after {
  content: attr(data-initials);
  font-family: var(--f-display);
  font-size: 25px;
  letter-spacing: 0.01em;
  color: var(--cream-3);
}
.ab-name {
  font-family: var(--f-display);
  font-weight: 500;
  font-size: 21px;
  letter-spacing: -0.02em;
  color: var(--cream);
  margin: 0;
}
.ab-role { margin: 6px 0 0; font-size: 14px; line-height: 1.45; color: var(--cream-3); }
.ab-read {
  margin-top: 12px; padding: 6px 12px; font-family: var(--f-label); font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--cream); background: none; border: 1px solid rgba(246, 239, 224, 0.32); border-radius: 999px; cursor: pointer;
  transition: border-color .16s var(--ease), background .16s var(--ease);
}
.ab-read:hover, .ab-read:focus-visible { border-color: var(--cream); background: rgba(246, 239, 224, 0.08); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

.ab-bio { margin: 16px 0 0; }
.ab-bio summary {
  cursor: pointer;
  list-style: none;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-family: var(--f-sans);
  font-size: 13.5px;
  color: var(--cream);
  padding: 4px 0;
  border-bottom: 1px solid var(--hair-2);
  transition: border-color 0.2s var(--ease);
}
.ab-bio summary::-webkit-details-marker { display: none; }
.ab-bio summary::after {
  content: "";
  width: 6px; height: 6px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg) translate(-1px, -1px);
  transition: transform 0.22s var(--ease);
}
.ab-bio[open] summary::after { transform: rotate(-135deg) translate(-1px, -1px); }
.ab-bio summary:hover { border-color: var(--pink); }
.ab-bio p { margin: 14px 0 0; font-size: 14px; line-height: 1.6; color: var(--cream-2); }

.ab-li {
  margin-top: auto;
  padding-top: 18px;
  font-family: var(--f-sans);
  font-size: 13px;
  color: var(--cream-3);
  text-decoration: none;
  align-self: flex-start;
  transition: color 0.2s var(--ease);
}
.ab-li:hover { color: var(--cream); }

/* ---- investors ------------------------------------------------ */
.ab-inv-h {
  font-family: var(--f-label);
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--cream-3);
  margin: 0 0 20px;
  font-weight: 500;
}
.ab-inv {
  list-style: none;
  margin: 0;
  padding: 24px 0 0;
  border-top: 1px solid var(--hair);
  display: flex;
  flex-wrap: wrap;
  gap: 18px 56px;
}
.ab-inv li {
  font-family: var(--f-display);
  font-size: clamp(20px, 2.2vw, 27px);
  letter-spacing: -0.02em;
  color: var(--cream-2);
  display: flex;
  align-items: center;
}
.ab-inv li img { height: clamp(28px, 3vw, 40px); width: auto; }

/* ---- careers -------------------------------------------------- */
.ab-car-panel {
  background: var(--page-panel);
  border: 1px solid var(--hair);
  padding: 40px 44px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
}
.ab-car-panel h2 { font-size: clamp(26px, 3vw, 36px); margin: 12px 0 0; }
.ab-car-panel p { margin: 12px 0 0; font-size: 16px; color: var(--cream-2); }

/* ---- responsive ----------------------------------------------- */
@media (max-width: 1000px) {
  .ab-team { grid-template-columns: repeat(2, 1fr); }
  .ab-split { grid-template-columns: 1fr; gap: 34px; }
  .ab-lede { grid-template-columns: 1fr; gap: 18px; }
}
@media (max-width: 720px) {
  .ab-hero { padding: 88px 0 36px; }
  .ab-stats { grid-template-columns: 1fr 1fr; gap: 26px 20px; }
  .ab-team { grid-template-columns: 1fr; }
  .ab-car-panel { flex-direction: column; align-items: flex-start; padding: 30px 26px; }
}

@media (prefers-reduced-motion: reduce) {
  .ab-winrate .ab-wr-bar span { transform: scaleX(1); transition: none; }
  .ab-bio summary::after { transition: none; }
}
