/* ==========================================================================
   ASHV HOLDINGS — Figma → Responsive Build
   Desktop source : Ashv-Holdings-v2      (1440 px artboard)
   Mobile  source : Ashv-Holdings-Mobile  (360 px artboard)

   Every value below is taken from the Figma node data.
   1rem === 16px at the 1440px artboard, so the whole desktop composition
   scales proportionally from 1440px up to 1920px (see html font-size).
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. TOKENS
   -------------------------------------------------------------------------- */
:root {
  /* Brand */
  --navy: #16233b;          /* bg-dark / primary            */
  --navy-mid: #243657;      /* gradient stop                */
  --navy-lift: #2e4468;     /* gradient stop                */
  --navy-deep: #1e375a;     /* IPO anchor accent            */
  --ink: #161b2e;           /* display headings on light    */
  --gold: #c89369;          /* accent                       */
  --orange: #f49656;        /* secondary accent             */

  /* Neutrals */
  --cream: #f5eee4;         /* bg-light                     */
  --cream-card: #fbf7f1;
  --cream-line: #e3d5c4;
  --slate: #6e7a90;         /* muted body on light          */
  --slate-alt: #5e6475;
  --ink-soft: #293342;
  --ink-softer: #333d4d;

  /* On dark */
  --on-dark-body: #adb8cc;
  --on-dark-body-2: #b2bdcf;
  --on-dark-body-3: #b8c2d4;
  --on-dark-link: #a8b5c9;
  --on-dark-label: #94a1b5;

  /* Type */
  --font-display: 'Tinos', 'Times New Roman', Times, serif;
  --font-body: 'Tinos', 'Times New Roman', Times, serif;
  --font-util: 'Urbanist', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-data: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

  /* Surfaces */
  --glass-bg: linear-gradient(180deg, rgba(255, 255, 255, .13) 0%, rgba(255, 255, 255, .04) 100%);
  --glass-bg-soft: linear-gradient(180deg, rgba(255, 255, 255, .12) 0%, rgba(255, 255, 255, .04) 100%);
  --glass-border: rgba(255, 255, 255, .16);
  --glass-shadow: 0 16px 34px -10px rgba(8, 13, 28, .28);

  /* Rhythm — 1440 artboard */
  --gutter: 4.5rem;         /* 72px section side padding    */
  --radius-btn: .25rem;     /* 4px                          */
}
html:not(.no-js) [data-aos="fade-right"] { transform: translate3d(-40px, 0, 0); }
html:not(.no-js) [data-aos="fade-left"]  { transform: translate3d(40px, 0, 0); }
html:not(.no-js) [data-aos="fade-right"].aos-animate,
html:not(.no-js) [data-aos="fade-left"].aos-animate { transform: none; }
/* --------------------------------------------------------------------------
   2. PROPORTIONAL DESKTOP SCALING
   The Figma desktop artboard is 1440px. Above that we grow the root font
   size with the viewport so the composition keeps the exact proportions of
   the design at 1920px (and anything between). Capped at 1920 so ultra-wide
   monitors don't over-inflate the type.
   -------------------------------------------------------------------------- */
html {
  font-size: 16px;
  -webkit-text-size-adjust: 100%;
}

@media (min-width: 1441px) {
  html { font-size: 1.11111vw; }          /* 16 / 1440 */
}

@media (min-width: 1920px) {
  html { font-size: 21.3333px; }          /* freeze at the 1920 proportion */
}

/* --------------------------------------------------------------------------
   3. BASE
   -------------------------------------------------------------------------- */
* { box-sizing: border-box; }

body {
  margin: 0;
  font-family: var(--font-body);
  font-size: 1.125rem;
  line-height: 1.5;
  color: var(--navy);
  background: #fff;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}

img { display: block; max-width: 100%; }

p { margin: 0; }

h1, h2, h3, h4, h5, h6 { margin: 0; font-weight: 400; }

a { color: inherit; text-decoration: none; }

ul { margin: 0; }

button { -webkit-appearance: none; appearance: none; }

:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 3px;
}

/* Bootstrap container override — the artboard is edge-to-edge with a 72px
   gutter, not a fixed centred container. */
.ashv-section {
  position: relative;
  width: 100%;
  padding-left: var(--gutter);
  padding-right: var(--gutter);
  overflow: hidden;
}

/* --------------------------------------------------------------------------
   4. SHARED PRIMITIVES
   -------------------------------------------------------------------------- */

/* Eyebrow — 30x2 gold rule + 11px Urbanist SemiBold caps ------------------ */
.eyebrow {
  display: flex;
  align-items: center;
  gap: .5625rem;                            /* 9px */
  font-family: var(--font-util);
  font-weight: 600;
  font-size: .6875rem;                      /* 11px */
  line-height: 1.2;
  letter-spacing: .0825rem;                 /* 1.32px */
  color: var(--gold);
  text-transform: uppercase;
  white-space: nowrap;
}

.eyebrow--wide { letter-spacing: .12375rem; }  /* 1.98px */
.eyebrow--center { justify-content: center; }

.eyebrow i {
  display: block;
  width: 1.875rem;                          /* 30px */
  height: 2px;
  background: var(--gold);
  flex: none;
}

/* Section display heading — 45px ------------------------------------------ */
.h-display {
  font-family: var(--font-display);
  font-size: 2.8125rem;                     /* 45px */
  line-height: 1.18;
  letter-spacing: -.028125rem;              /* -0.45px */
  text-transform: uppercase;
  color: var(--ink);
  margin: 0;
}

.h-display--light { color: #fff; }
.h-display .gold { color: var(--gold); }

/* Buttons ----------------------------------------------------------------- */
.btn-ashv {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: .8125rem;                      /* 13px */
  line-height: 1;
  letter-spacing: .01625rem;                /* 0.26px */
  color: #fff;
  padding: .9375rem 1.5rem;                 /* 15px 24px */
  border-radius: var(--radius-btn);
  border: 1px solid transparent;
  background: var(--navy);
  cursor: pointer;
  white-space: nowrap;
  transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease;
}

.btn-ashv:hover {
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 10px 22px -10px rgba(8, 13, 28, .55);
}

.btn-ashv:active { transform: translateY(0); }

.btn-ashv--gold { background: var(--gold); }
.btn-ashv--outline-gold { border-color: var(--gold); }

/* Hairlines --------------------------------------------------------------- */
.hairline { height: 1px; width: 100%; background: rgba(255, 255, 255, .14); }
.hairline--solid { background: #fff; }
.hairline--warm { background: rgba(255, 255, 255, .45); }

/* Glass card -------------------------------------------------------------- */
.glass {
  background: var(--glass-bg);
  border: 1px solid var(--glass-border);
  -webkit-backdrop-filter: blur(11px);
  backdrop-filter: blur(11px);
  box-shadow: var(--glass-shadow);
}

/* Ambient radial glow — the Figma bg/glow layers are radial gradient
   ellipses, reproduced here as CSS so they scale with the section. -------- */
.glow {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
  z-index: 0;
}

.glow--gold {
  background: radial-gradient(circle,
              rgba(200, 147, 105, .30) 0%,
              rgba(200, 147, 105, .12) 42%,
              rgba(200, 147, 105, 0) 70%);
}

.glow--warm {
  background: radial-gradient(circle,
              rgba(244, 150, 86, .18) 0%,
              rgba(244, 150, 86, .07) 45%,
              rgba(244, 150, 86, 0) 72%);
}

/* Decorative line-art plates ---------------------------------------------- */
.line-art {
  position: absolute;
  left: 0;
  width: 100%;
  pointer-events: none;
  z-index: 0;
  -o-object-fit: cover;
     object-fit: cover;
}

.section-inner { position: relative; z-index: 1; }

/* --------------------------------------------------------------------------
   5. NAVBAR
   Per spec: ONLY the logo stays fixed while scrolling. The links and the
   "Reach us" button live in normal flow and scroll away with the hero.
   -------------------------------------------------------------------------- */
.nav {
  position: absolute;
  inset: 0 0 auto 0;
  z-index: 40;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.25rem var(--gutter);           /* 20px 72px */
}

.nav-logo {
  position: fixed;
  top: 1.25rem;
  left: var(--gutter);
  z-index: 60;
  background: #fff;
  border-radius: .625rem;                   /* 10px */
  padding: .625rem;                         /* 10px */
  overflow: hidden;
  line-height: 0;
  transition: box-shadow .3s ease, transform .3s ease;
}

.nav-logo.is-stuck {
  box-shadow: 0 10px 30px -12px rgba(8, 13, 28, .5);
}

/* Outer asset box 95x119, inner leaf overflows per the Figma crop */
.nav-logo__img {
  display: block;
  width: 5.9375rem;                         /* 95px  */
  height: 7.4375rem;                        /* 119px */
  position: relative;
  overflow: hidden;
}

.nav-logo__img img {
  position: absolute;
  width: 116.67%;
  height: 121.29%;
  left: -8.05%;
  top: -9.26%;
  max-width: none;
}

/* Spacer keeps the flow-nav aligned with the fixed logo */
.nav-logo-spacer {
  width: 6.9375rem;                         /* 95 + 10 + 10 = 115px  */
  height: 8.4375rem;                        /* 119 + 10 + 10 = 139px */
  flex: none;
}

.nav-links {
  display: flex;
  align-items: center;
  gap: 2.125rem;                            /* 34px */
  font-family: var(--font-display);
  font-size: 1.125rem;                      /* 18px */
  line-height: 1.2;
  letter-spacing: .01125rem;                /* 0.18px */
  color: #fff;
  white-space: nowrap;
}

.nav-links a { position: relative; padding-bottom: 2px; }

.nav-links a::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 0;
  height: 1px;
  background: var(--gold);
  transition: width .25s ease;
}

.nav-links a:hover::after { width: 100%; }

.nav-toggle {
  display: none;
  background: none;
  border: 0;
  padding: 0;
  width: 1.5rem;
  height: 1.5rem;
  cursor: pointer;
}

.nav-toggle svg { width: 100%; height: 100%; }

/* --------------------------------------------------------------------------
   6. HERO  (node 101:16 — 1440x660)
   -------------------------------------------------------------------------- */
.hero {
  position: relative;
  background: #fff;
  overflow: hidden;
}

.hero__panel {
  position: relative;
  min-height: 41.25rem;                     /* 660px */
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  padding: 13rem 2.5rem 2.5rem;             /* top clears the fixed logo */
  background: linear-gradient(155.376deg,
              var(--navy-mid) 14.644%,
              var(--navy) 53.536%,
              var(--navy-lift) 85.356%);
  overflow: hidden;
}

.hero__glow {
  width: 47.5rem;                           /* 760px */
  height: 47.5rem;
  left: 51.375rem;                          /* 822px */
  top: -20.3125rem;                         /* -325px */
}

/* brand/mark — 670x662, opacity .16, left 374 top -2 */
.hero__mark {
  position: absolute;
  left: 23.375rem;
  top: -.125rem;
  width: 41.875rem;
  height: 41.375rem;
  opacity: .16;
  overflow: hidden;
  pointer-events: none;
  z-index: 0;
}

.hero__mark img {
  position: absolute;
  width: 116.28%;
  height: 142.86%;
  left: -8.14%;
  top: -1.43%;
  max-width: none;
}

/* LINE 1 — 1440x490 at y=170, mirrored vertically */
.hero__lines {
  top: 10.625rem;
  height: 30.625rem;
  transform: scaleY(-1);
  opacity: .9;
}

.hero__content {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.625rem;                            /* 26px */
  width: 100%;
  text-align: center;
}

.hero__title {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: 3.625rem;                      /* 58px */
  line-height: 1.08;
  letter-spacing: -.090625rem;              /* -1.45px */
  color: #fff;
  margin: 0;
}

.hero__sub {
  font-family: var(--font-display);
  font-size: 1.375rem;                      /* 22px */
  line-height: 1.08;
  letter-spacing: -.034375rem;              /* -0.55px */
  color: #fff;
}

.hero__note {
  font-family: var(--font-display);
  font-size: 1.125rem;                      /* 18px */
  line-height: 1.72;
  color: rgba(255, 255, 255, .7);
}

.hero__buttons {
  display: flex;
  align-items: center;
  gap: .75rem;                              /* 12px */
}

/* --------------------------------------------------------------------------
   7. ABOUT  (node 101:90)
   -------------------------------------------------------------------------- */
.about {
  background: #fff;
  padding-top: 6.25rem;                     /* 100px */
  padding-bottom: 6.25rem;
  display: flex;
  flex-direction: column;
  gap: 3.5rem;                              /* 56px */
}

.about__head {
  display: flex;
  flex-direction: column;
  gap: 1.875rem;                            /* 30px */
}

.about__statement {
  font-family: var(--font-display);
  font-size: 2.0625rem;                     /* 33px */
  line-height: 1.32;
  letter-spacing: -.0309375rem;             /* -0.495px */
  color: var(--navy);
}

.about__statement .gold { color: var(--gold); }

.about__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
}

.about__meta {
  font-family: var(--font-display);
  font-size: 1.125rem;
  line-height: 1.72;
  color: var(--slate);
  max-width: 38.75rem;                      /* 620px */
}

/* --------------------------------------------------------------------------
   8. PARTNERS — hub & spoke  (node 109:2)
   -------------------------------------------------------------------------- */
.partners {
  padding-top: 6.5rem;                      /* 104px */
  padding-bottom: 6.5rem;
  background: linear-gradient(144.293deg, var(--navy-mid) 14.644%, var(--navy) 85.356%);
  display: flex;
  flex-direction: column;
  gap: 3.25rem;                             /* 52px */
  align-items: center;
}

.partners__lines {
  top: auto;
  bottom: 0;
  height: 25.75rem;                         /* 412px */
  transform: scaleY(-1);
  opacity: .55;
}

/* Desktop hub layout mirrors the Figma absolute placement */
.hub {
  position: relative;
  width: 100%;
  min-height: 49.3125rem;                   /* 789px */
  z-index: 1;
}

.hub__logo {
  position: absolute;
  left: calc(50% - 6.1875rem);              /* centred without transform */
  top: 6.375rem;                            /* 102px */
  width: 12.375rem;                         /* 198px */
  background: #fff;
  border-radius: .875rem;                   /* 14px */
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.hub__logo img {
  width: 11.377rem;                         /* 182.033px */
  height: 14.751rem;                        /* 236.023px */
  -o-object-fit: contain;
     object-fit: contain;
}

.hub__card {
  position: absolute;
  width: 26rem;                             /* 416px */
  padding: 1.875rem;                        /* 30px */
  border-radius: 1.125rem;                  /* 18px */
  display: flex;
  flex-direction: column;
  gap: 1rem;                                /* 16px */
}

.hub__card--research  { left: -1.6875rem;  top: 0; }
.hub__card--principal { right: -1.6875rem; top: 0; }
.hub__card--institutional { left: calc(50% - 13rem); top: 30.6875rem; }

.hub__card-title {
  font-family: var(--font-display);
  font-size: 1.5rem;                        /* 24px */
  line-height: 1.3;
  letter-spacing: -.006rem;
  color: #fff;
  text-transform: uppercase;
}

.hub__card-body {
  font-family: var(--font-display);
  font-size: 1.125rem;
  line-height: 1.5;
  color: var(--on-dark-body);
}

.hub__card-note {
  font-family: var(--font-display);
  font-size: 1rem;
  line-height: 1.5;
  color: var(--gold);
}

/* Connector lines + nodes (drawn, not imported — pure 1px geometry) */
.hub__spoke {
  position: absolute;
  z-index: 0;
  pointer-events: none;
}

.hub__dot {
  position: absolute;
  width: 1.196rem;                          /* 19.146px */
  height: 1.196rem;
  border-radius: 50%;
  background: var(--orange);
  z-index: 2;
}

/* --------------------------------------------------------------------------
   9. FUND MANAGER / CORE TEAM  (node 101:122)
   -------------------------------------------------------------------------- */
.team {
  background: #fff;
  padding-top: 3.75rem;                     /* 60px */
  padding-bottom: 6.5rem;                   /* 104px */
  display: flex;
  flex-direction: column;
  gap: 4rem;                                /* 64px */
}

.team__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2.5rem;                              /* 40px */
  align-items: start;
}

.profile {
  background: var(--gold);
  border: 1px solid rgba(22, 35, 59, .14);
  border-radius: .625rem;                   /* 10px */
  padding: 2.125rem;                        /* 34px */
  display: flex;
  flex-direction: column;
  gap: 1.375rem;                            /* 22px */
  height: 100%;
}

.profile__head {
  display: flex;
  gap: 1.375rem;
  align-items: flex-start;
}

.profile__portrait {
  width: 6.625rem;                          /* 106px */
  height: 6.625rem;
  flex: none;
  border-radius: 999px;
  border: 2px solid var(--gold);
  overflow: hidden;
  background: linear-gradient(135deg, var(--navy-mid) 14.644%, var(--navy) 85.356%);
}

.profile__portrait img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.profile__name {
  font-family: var(--font-display);
  font-size: 1.875rem;                      /* 30px */
  line-height: 1.24;
  letter-spacing: -.028125rem;
  color: var(--navy);
  text-transform: uppercase;
}

.profile__role {
  font-family: var(--font-display);
  font-size: 1.0625rem;                     /* 17px */
  line-height: 1.5;
  color: #fff;
  margin-top: .5rem;
}

.profile__bio {
  font-family: var(--font-display);
  font-size: 1.125rem;
  line-height: 1.4;
  color: #fff;
  text-align: center;
}

.profile__logos {
  width: 100%;
  margin-top: auto;
}

.profile__logos img {
  width: 100%;
  height: auto;
  display: block;
}

/* Timeline / roster ------------------------------------------------------- */
.roster {
  display: flex;
  flex-direction: column;
  gap: 1.625rem;                            /* 26px */
}

.roster__row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;                              /* 24px */
}

.stop { display: flex; flex-direction: column; }

.stop__rail {
  position: relative;
  height: .6875rem;                         /* 11px */
  width: 100%;
}

.stop__rail::before {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  top: 5px;
  height: 1px;
  background: rgba(22, 35, 59, .14);
}

.stop__rail::after {
  content: '';
  position: absolute;
  left: 0;
  top: 1px;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--gold);
}

.stop__rail--active::after {
  width: 11px;
  height: 11px;
  top: 0;
  box-shadow: 0 0 0 3px rgba(200, 147, 105, .25);
}

.stop__body {
  padding-top: 1.25rem;                     /* 20px */
  display: flex;
  flex-direction: column;
  gap: .375rem;                             /* 6px */
}

.stop__label {
  font-family: var(--font-util);
  font-weight: 600;
  font-size: .6875rem;
  line-height: 1.2;
  letter-spacing: .0825rem;
  color: var(--gold);
  text-transform: uppercase;
}

.stop__label--muted { color: var(--slate); }

.stop__name {
  font-family: var(--font-display);
  font-size: 1rem;                          /* 16px */
  line-height: 1.32;
  letter-spacing: -.01rem;
  color: var(--navy);
  text-transform: uppercase;
}

.stop__name--lead {
  font-size: 1.25rem;                       /* 20px */
  font-weight: 700;
  letter-spacing: -.0125rem;
}

.stop__desc {
  font-family: var(--font-display);
  font-size: 1rem;
  line-height: 1.5;
  color: var(--slate);
}

/* --------------------------------------------------------------------------
   10. INVESTMENT PHILOSOPHY  (node 101:198) — cream band
   -------------------------------------------------------------------------- */
.philosophy {
  background: var(--cream);
  padding-top: 6.25rem;                     /* 100px */
  padding-bottom: 6.25rem;
  display: flex;
  flex-direction: column;
  gap: 3.25rem;                             /* 52px */
}

.philosophy__glow {
  width: 56.25rem;                          /* 900px */
  height: 56.25rem;
  left: 52.8125rem;
  top: -19.875rem;
}

.sec-head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.25rem;
  text-align: center;
  width: 100%;
}

.sec-head__group {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2rem;                                /* 32px */
}

.sec-head__lede {
  font-family: var(--font-display);
  font-size: 1.125rem;
  line-height: 1.4;
  color: var(--navy);
  max-width: 53.125rem;                     /* 850px */
}

/* Three-up feature strip (shared with the InVed band) */
.xp {
  background: #fff;
  border-radius: 1.25rem;                   /* 20px */
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  overflow: hidden;
}

.xp__cell {
  display: flex;
  gap: 1rem;
  padding: 1.875rem;                        /* 30px */
}

.xp__cell + .xp__cell { border-left: 1px solid rgba(227, 213, 196, .9); }

.xp__badge {
  width: 2.5rem;                            /* 40px */
  height: 2.5rem;
  flex: none;
  border-radius: 999px;
  background: var(--gold);
  display: flex;
  align-items: center;
  justify-content: center;
}

.xp__badge img { width: 1.25rem; height: 1.25rem; }

.xp__title {
  font-family: var(--font-display);
  font-size: 1.25rem;                       /* 20px */
  line-height: 1.4;
  letter-spacing: .0125rem;
  color: var(--gold);
  text-transform: uppercase;
  margin-bottom: .3125rem;
}

.xp__body {
  font-family: var(--font-display);
  font-size: 1.125rem;
  line-height: 1.4;
  color: var(--slate);
}

/* Metric row -------------------------------------------------------------- */
.metrics {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
}

.metrics__cell { padding: 0 4rem; }
.metrics__cell:first-child { padding-left: 0; }
.metrics__cell:last-child { padding-right: 0; }
.metrics__cell + .metrics__cell { border-left: 1px solid rgba(22, 35, 59, .14); }

.metrics__value {
  font-family: var(--font-display);
  font-size: 2.375rem;                      /* 38px */
  line-height: 1.2;
  color: var(--ink);
  margin-bottom: 1rem;
}

.metrics__label {
  font-family: var(--font-display);
  font-size: 1.125rem;
  line-height: 1.4;
  color: var(--slate-alt);
}

/* --------------------------------------------------------------------------
   11. MATCH FRAMEWORK  (node 101:255)
   -------------------------------------------------------------------------- */
.match {
  padding-top: 6.75rem;                     /* 108px */
  padding-bottom: 7rem;                     /* 112px */
  background: linear-gradient(153.149deg,
              var(--navy-mid) 14.644%,
              var(--navy) 50%,
              var(--navy-mid) 85.356%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3.375rem;                            /* 54px */
}

.match__glow { width: 56.25rem; height: 56.25rem; left: -20rem; top: -16.25rem; }

.match__lines {
  top: 29.375rem;                           /* 470px */
  height: 20rem;                            /* 320px */
  opacity: .5;
}

.match__title {
  font-family: var(--font-display);
  font-size: 2.8125rem;                     /* 45px */
  line-height: 1.04;
  letter-spacing: .16875rem;                /* 2.7px */
  color: #fff;
  text-align: center;
}

.match__lede {
  font-family: var(--font-display);
  font-size: .96875rem;                     /* 15.5px */
  line-height: 1.75;
  color: var(--on-dark-body-3);
  text-align: center;
  max-width: 47.5rem;
}

.match__grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 1rem;                                /* 16px */
  width: 100%;
}

.match-card {
  border-radius: 1.25rem;                   /* 20px */
  overflow: hidden;
  display: flex;
  flex-direction: column;
  min-height: 18.4375rem;                   /* 295px */
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  transition: transform .3s ease, box-shadow .3s ease;
}

.match-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 22px 44px -14px rgba(8, 13, 28, .5);
}

.match-card__bar {
  height: 3px;
  flex: none;
  background: linear-gradient(90deg, var(--orange) 0%, rgba(200, 147, 105, .25) 100%);
}

.match-card:nth-child(even) .match-card__bar {
  background: linear-gradient(90deg, var(--gold) 0%, rgba(244, 150, 86, .25) 100%);
}

.match-card__inner {
  padding: 1.625rem 1.625rem 1.5rem;        /* 26px 26px 24px */
  display: flex;
  flex-direction: column;
  gap: .875rem;                             /* 14px */
}

.match-card__letter {
  font-family: var(--font-display);
  font-size: 3.75rem;                       /* 60px */
  line-height: 1;
  letter-spacing: .075rem;
  color: var(--gold);
}

.match-card__name {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1rem;                          /* 16px */
  line-height: 1.4;
  letter-spacing: .02rem;
  color: #fff;
}

.match-card__desc {
  font-family: var(--font-display);
  font-size: 1.125rem;
  line-height: 1.2;
  color: var(--on-dark-body-2);
}

/* --------------------------------------------------------------------------
   12. FUND ARCHITECTURE  (node 111:2)
   -------------------------------------------------------------------------- */
.architecture {
  background: #fff;
  padding-top: 6.5rem;
  padding-bottom: 6.5rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3.25rem;
}

.alloc { width: 100%; }

.alloc__bar {
  display: flex;
  gap: 4px;
  margin-bottom: .75rem;
}

.alloc__seg {
  height: 1rem;                             /* 16px */
  border-radius: .25rem;
}

.alloc__seg--listed { flex: 1016; background: var(--gold); }
.alloc__seg--ipo    { flex: 204;  background: var(--navy-deep); }
.alloc__seg--pre    { flex: 68;   background: var(--orange); }

.alloc__labels {
  display: flex;
  gap: 4px;
  font-family: var(--font-util);
  font-weight: 600;
  font-size: .6875rem;
  line-height: 1.2;
  letter-spacing: .0825rem;
  color: var(--slate);
}

.alloc__labels span:nth-child(1) { flex: 1016; }
.alloc__labels span:nth-child(2) { flex: 204; }
.alloc__labels span:nth-child(3) { flex: 68; }

.engines {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  width: 100%;
}

.engine {
  background: var(--cream-card);
  border: 1px solid var(--cream-line);
  border-radius: 1rem;                      /* 16px */
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.engine__bar { height: 3px; background: var(--gold); }
.engine--ipo .engine__bar { background: var(--navy-deep); }
.engine--pre .engine__bar { background: var(--orange); }

.engine__inner {
  padding: 1.875rem;
  display: flex;
  flex-direction: column;
  gap: .75rem;
}

.engine__value {
  font-family: var(--font-display);
  font-size: 2.375rem;                      /* 38px */
  line-height: 1;
  letter-spacing: -.02375rem;
  color: var(--gold);
}

.engine--ipo .engine__value { color: var(--navy-deep); }
.engine--pre .engine__value { color: var(--orange); }

.engine__of {
  font-family: var(--font-util);
  font-weight: 600;
  font-size: .6875rem;
  line-height: 1.2;
  letter-spacing: .12375rem;
  color: var(--slate);
}

.engine__name {
  font-family: var(--font-display);
  font-size: 1.25rem;
  line-height: 1.4;
  letter-spacing: .0125rem;
  color: var(--navy);
  text-transform: uppercase;
}

.engine__desc {
  font-family: var(--font-display);
  font-size: 1.125rem;
  line-height: 1.5;
  color: var(--slate);
}

/* --------------------------------------------------------------------------
   13. WHY NOW  (node 101:496) — cream band
   -------------------------------------------------------------------------- */
.whynow {
  background: var(--cream);
  padding-top: 5rem;                        /* 80px */
  padding-bottom: 5rem;
  display: flex;
  flex-direction: column;
  gap: 3.5rem;                              /* 56px */
}

.whynow__glow { width: 56.25rem; height: 56.25rem; left: -18.8125rem; top: -15.4375rem; }

.driver-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: .625rem;                             /* 10px */
}

.driver {
  background: #fff;
  border-radius: .875rem;                   /* 14px */
  padding: 1.875rem 1.25rem;                /* 30px 20px */
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.driver__title {
  font-family: var(--font-display);
  font-size: 1.25rem;                       /* 20px */
  line-height: 1.32;
  letter-spacing: -.01875rem;
  color: #000;
  text-transform: uppercase;
}

.driver__body {
  font-family: var(--font-display);
  font-size: 1.125rem;
  line-height: 1.5;
  color: var(--slate);
}

/* Evidence row ------------------------------------------------------------ */
.evidence {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 31rem;   /* chart | 496px table */
  gap: 1.5rem;
  align-items: start;
}

.chart-card,
.table-card {
  background: #fff;
  border-radius: 1rem;
  overflow: hidden;
}

.chart-card {
  padding: 1.875rem;
  display: flex;
  flex-direction: column;
  gap: 1.125rem;
}

.legend { display: flex; gap: 1.375rem; align-items: center; }

.legend__item { display: flex; align-items: center; gap: .5rem; }

.legend__swatch { width: 1.125rem; height: 3px; border-radius: 2px; }
.legend__swatch--gold { background: var(--gold); }
.legend__swatch--slate { background: var(--slate); }

.legend__label {
  font-family: var(--font-util);
  font-weight: 600;
  font-size: .6875rem;
  line-height: 1.2;
  letter-spacing: .0825rem;
  color: var(--navy);
  text-transform: uppercase;
}

.plot { position: relative; width: 100%; aspect-ratio: 716 / 250; }

/* Exported vectors are placed at the exact insets from the Figma plot node.
   A wrapper carries the inset because an absolutely positioned <img> resolves
   to its intrinsic size rather than stretching between offsets. */
.plot__v {
  position: absolute;
  display: block;
}

.plot__v img {
  width: 100%;
  height: 100%;
  max-width: none;
  display: block;
}

.plot__lbl {
  position: absolute;
  font-family: var(--font-data);
  font-size: .625rem;                       /* 10px */
  line-height: normal;
  color: #8c8677;
  white-space: nowrap;
}

.plot__lbl--y { text-align: right; }
.plot__lbl--x { text-align: center; }

.chart-note {
  font-family: var(--font-display);
  font-size: .8125rem;                      /* 13px */
  line-height: 1.5;
  color: var(--slate);
}

/* Index returns table ----------------------------------------------------- */
.idx { width: 100%; border-collapse: collapse; }

.idx thead th {
  background: var(--gold);
  font-family: var(--font-display);
  font-weight: 700;
  font-size: .6875rem;
  line-height: 1.3;
  letter-spacing: .0825rem;
  color: #fff;
  text-transform: uppercase;
  padding: 1rem 0;
}

.idx thead th:first-child { padding-left: 1.25rem; }
.idx thead th:last-child  { padding-right: 1.25rem; }

.idx tbody td {
  font-family: var(--font-display);
  font-size: 1rem;
  line-height: 1.4;
  padding: .9375rem 0;
  border-bottom: 1px solid var(--cream-line);
  color: var(--navy);
}

.idx tbody tr:last-child td { border-bottom: 0; }
.idx tbody td:first-child { padding-left: 1.25rem; }
.idx tbody td:last-child  { padding-right: 1.25rem; }

.idx .num { text-align: right; color:#fff; }
.idx .num--hero { color: var(--gold); font-weight: 700; }

.idx-foot {
  font-family: var(--font-display);
  font-size: .8125rem;
  line-height: 1.5;
  color: var(--slate);
  padding: 1rem 1.25rem 1.125rem;
}

/* --------------------------------------------------------------------------
   14. INVED RESEARCH  (node 115:595)
   -------------------------------------------------------------------------- */
.inved {
  background: #fff;
  padding-top: 6.25rem;
  padding-bottom: 6.25rem;
  display: flex;
  flex-direction: column;
  gap: 3.25rem;
}

.inved__glow-a { width: 56.25rem; height: 56.25rem; left: 52.8125rem; top: -19.875rem; }
.inved__glow-b { width: 56.25rem; height: 56.25rem; left: -14.8125rem; top: -1.14rem; }

.inved__kicker {
  font-family: var(--font-display);
  font-size: 1.25rem;                       /* 20px */
  line-height: 1.4;
  color: var(--navy);
  text-align: center;
}

/* Gold stat plate */
.plate {
  background: var(--gold);
  border-radius: 1rem;
  padding: 1.875rem;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}

.plate__cell { padding: 0 3rem; }
.plate__cell:first-child { padding-left: 0; }
.plate__cell:last-child { padding-right: 0; }
.plate__cell + .plate__cell { border-left: 1px solid rgba(255, 255, 255, .14); }

.plate__value {
  font-family: var(--font-display);
  font-size: 2.375rem;
  line-height: 1.2;
  color: #fff;
  margin-bottom: 1rem;
}

.plate__label {
  font-family: var(--font-display);
  font-size: 1.125rem;
  line-height: 1.4;
  color: #121212;
}

/* --------------------------------------------------------------------------
   15. VENTURE CATALYSTS++  (node 101:526)
   -------------------------------------------------------------------------- */
.vc {
  padding-top: 6.5rem;
  padding-bottom: 6.5rem;
  background: linear-gradient(130.084deg, var(--navy-mid) 14.644%, var(--navy) 85.356%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3rem;                                /* 48px */
}

.vc__lede {
  font-family: var(--font-display);
  font-size: 1.125rem;
  line-height: 1.5;
  color: rgba(255, 255, 255, .6);
  text-align: center;
  max-width: 53.75rem;
}

.founders {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
  width: 100%;
}

.founder {
  background: var(--glass-bg-soft);
  border: 1px solid var(--glass-border);
  border-radius: 1rem;
  padding: 1.625rem;                        /* 26px */
  display: flex;
  flex-direction: column;
  gap: .875rem;                             /* 14px */
}

.founder__portrait {
  width: 4rem;                              /* 64px */
  height: 4rem;
  border-radius: 999px;
  border: 1px solid var(--gold);
  background: rgba(227, 213, 196, .7);
  overflow: hidden;
  flex: none;
}

.founder__portrait img { width: 100%; height: 100%; -o-object-fit: cover; object-fit: cover; }

.founder__name {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.0625rem;                     /* 17px */
  line-height: 1.32;
  color: #fff;
}

.founder__role {
  font-family: var(--font-util);
  font-weight: 600;
  font-size: .6875rem;
  line-height: 1.3;
  letter-spacing: .0825rem;
  color: var(--gold);
  text-transform: uppercase;
}

.founder__list {
  list-style: disc;
  padding-left: 1.4rem;
  font-family: var(--font-display);
  font-size: .9375rem;                      /* 15px */
  line-height: 1.5;
  color: rgba(255, 255, 255, .6);
}

.founder__logos { margin-top: auto; }
.founder__logos img { width: 100%; height: auto; border-radius: .375rem; }

/* Investor chips ---------------------------------------------------------- */
.chips {
  display: flex;
  flex-wrap: wrap;
  gap: .625rem;
  justify-content: space-between;
  width: 100%;
}

.chip {
  background: var(--glass-bg-soft);
  border: 1px solid var(--glass-border);
  border-radius: .75rem;
  padding: .75rem 1.125rem;
  display: flex;
  flex-direction: column;
  gap: .25rem;
}

.chip__name {
  font-family: var(--font-util);
  font-weight: 600;
  font-size: .6875rem;
  line-height: 1.3;
  letter-spacing: .0825rem;
  color: #fff;
  text-transform: uppercase;
}

.chip__firm {
  font-family: var(--font-display);
  font-size: .875rem;                       /* 14px */
  line-height: 1.4;
  color: rgba(255, 255, 255, .5);
}

/* Platform metrics -------------------------------------------------------- */
.vc-metrics {
  display: flex;
  align-items: stretch;
  gap: 1.25rem;
  width: 100%;
}

.vc-metric { flex: 1; padding-right: 1.5rem; }

.vc-metric__value {
  font-family: var(--font-display);
  font-size: 2.375rem;
  line-height: 1;
  letter-spacing: -.02375rem;
  color: #fff;
  margin-bottom: .625rem;
}

.vc-metric__label {
  font-family: var(--font-display);
  font-size: .9375rem;
  line-height: 1.5;
  color: rgba(255, 255, 255, .6);
}

.vc-divider { width: 1px; background: #fff; flex: none; align-self: center; height: 4.875rem; }

/* Footprint cards --------------------------------------------------------- */
.footprint {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem;
  width: 100%;
}

.fp-card {
  background: var(--glass-bg-soft);
  border: 1px solid var(--glass-border);
  border-radius: 1rem;
  padding: 1.875rem;
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  box-shadow: 0 8px 24px rgba(22, 35, 59, .08);
}

.fp-card__title {
  font-family: var(--font-display);
  font-size: 1.25rem;
  line-height: 1.4;
  letter-spacing: .0125rem;
  color: #fff;
  text-transform: uppercase;
}

.fp-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }

.fp-metric__value {
  font-family: var(--font-display);
  font-size: 3.75rem;                       /* 60px */
  line-height: 1;
  letter-spacing: -.0375rem;
  color: var(--gold);
  margin-bottom: .375rem;
}

.fp-metric__label {
  font-family: var(--font-display);
  font-size: .9375rem;
  line-height: 1.5;
  color: rgba(255, 255, 255, .6);
}

.pill-row { display: flex; flex-wrap: wrap; gap: .625rem; }

.pill {
  background: rgba(255, 255, 255, .1);
  border: 1px solid #fff;
  border-radius: 999px;
  padding: .5rem .875rem;
  font-family: var(--font-util);
  font-weight: 600;
  font-size: .6875rem;
  line-height: 1.2;
  letter-spacing: .0825rem;
  color: #fff;
  text-transform: uppercase;
  white-space: nowrap;
}

.vc-note {
  font-family: var(--font-display);
  font-size: .9375rem;
  line-height: 1.5;
  color: rgba(255, 255, 255, .6);
  text-align: center;
  width: 100%;
}

.vc-plate {
  /* background: #fff; */
  border-radius: .875rem;
  padding: 1rem 1.5rem;
  /* box-shadow: 0 10px 26px -6px rgba(0, 0, 0, .22); */
  display: inline-flex;
}

.vc-plate img { width: 316px; height: auto; }

/* --------------------------------------------------------------------------
   16. CTA  (node 101:579)
   -------------------------------------------------------------------------- */
.cta {
  background: #fff;
  padding-top: 5.75rem;                     /* 92px */
  padding-bottom: 5.75rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.625rem;                            /* 26px */
  text-align: center;
}

.cta__lines { top: 4rem; height: 19.75rem; opacity: .6; }

.cta__title {
  font-family: var(--font-display);
  font-size: 2.8125rem;
  line-height: 1.16;
  letter-spacing: -.028125rem;
  color: var(--navy);
  text-transform: uppercase;
  max-width: 47.5rem;
}

.cta__title .gold { color: var(--gold); }

.cta__lede {
  font-family: var(--font-display);
  font-size: 1.125rem;
  line-height: 1.75;
  color: var(--ink-soft);
  max-width: 41.25rem;
}

.cta__buttons { display: flex; gap: .75rem; align-items: center; flex-wrap: wrap; justify-content: center; }

.cta__contact {
  font-family: var(--font-display);
  font-size: 1.125rem;
  line-height: 1.5;
  letter-spacing: .045rem;
  color: var(--ink-softer);
}

/* --------------------------------------------------------------------------
   17. FOOTER  (node 101:603)
   -------------------------------------------------------------------------- */
.footer {
  background: var(--navy);
  padding-top: 5.5rem;                      /* 88px */
  padding-bottom: 2.5rem;                   /* 40px */
  display: flex;
  flex-direction: column;
  gap: 2.5rem;
}

.footer__top {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 11.875rem 11.875rem 18.75rem;
  gap: 4rem;                                /* 64px */
  align-items: start;
}

.footer__logo { width: 9.3125rem; height: auto; }

.footer__reg {
  font-family: var(--font-display);
  font-size: 1.125rem;
  line-height: 1.4;
  color: var(--on-dark-link);
  margin-top: 1.25rem;
}

.footer__coltitle {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: .975rem;                       /* 15.6px */
  line-height: 1.2;
  letter-spacing: .1755rem;                 /* 2.808px */
  color: var(--gold);
  margin-bottom: 1rem;
}

.footer__list {
  display: flex;
  flex-direction: column;
  gap: .6875rem;                            /* 11px */
  font-family: var(--font-display);
  font-size: 1.125rem;
  line-height: 1.4;
  color: var(--on-dark-link);
}

.footer__list--contact { gap: .875rem; }
.footer__list a:hover { color: #fff; }
.footer__list strong { color: #fff; font-weight: 400; }

.footer__rule { height: 1px; background: rgba(255, 255, 255, .2); }
.footer__rule--faint { background: rgba(255, 255, 255, .1); }

.disclaimer { display: flex; flex-direction: column; gap: 1.125rem; }

.disclaimer__title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: .625rem;                       /* 10px */
  line-height: 1.2;
  letter-spacing: .1125rem;
  color: var(--on-dark-label);
}

.disclaimer__body {
  font-family: var(--font-display);
  font-size: .65625rem;                     /* 10.5px */
  line-height: 1.68;
  color: rgba(255, 255, 255, .6);
}

.legal {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  font-family: var(--font-display);
  font-size: .6875rem;                      /* 11px */
  line-height: 1.4;
  color: rgba(255, 255, 255, .6);
}

/* --------------------------------------------------------------------------
   18. ENQUIRY MODAL
   -------------------------------------------------------------------------- */
.ashv-modal .modal-content {
  border: 0;
  border-radius: 1rem;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 30px 70px -20px rgba(8, 13, 28, .55);
}

.ashv-modal .modal-header {
  background: linear-gradient(135deg, var(--navy-mid) 0%, var(--navy) 100%);
  border: 0;
  padding: 1.75rem 1.875rem 1.5rem;
  display: block;
  position: relative;
}

.ashv-modal__title {
  font-family: var(--font-display);
  font-size: 1.75rem;
  line-height: 1.2;
  letter-spacing: -.02rem;
  color: #fff;
  text-transform: uppercase;
  margin: .75rem 0 .5rem;
}

.ashv-modal__lede {
  font-family: var(--font-display);
  font-size: 1rem;
  line-height: 1.5;
  color: rgba(255, 255, 255, .7);
}

.ashv-modal .btn-close {
  position: absolute;
  top: 1.25rem;
  right: 1.25rem;
  filter: invert(1) grayscale(1) brightness(2);
  opacity: .8;
}

.ashv-modal .modal-body { padding: 1.875rem; }

.field { margin-bottom: 1.25rem; }

.field__label {
  display: block;
  font-family: var(--font-util);
  font-weight: 600;
  font-size: .6875rem;
  letter-spacing: .0825rem;
  text-transform: uppercase;
  color: var(--slate);
  margin-bottom: .5rem;
}

.field__label .req { color: var(--orange); }

.field__input {
  width: 100%;
  font-family: var(--font-display);
  font-size: 1rem;
  line-height: 1.4;
  color: var(--navy);
  background: #fff;
  border: 1px solid var(--cream-line);
  border-radius: .375rem;
  padding: .8125rem .875rem;
  transition: border-color .18s ease, box-shadow .18s ease;
}

.field__input::-moz-placeholder { color: #b3bbc8; }
.field__input::placeholder { color: #b3bbc8; }

.field__input:focus {
  outline: none;
  border-color: var(--gold);
  box-shadow: 0 0 0 3px rgba(200, 147, 105, .18);
}

.field__input.is-invalid {
  border-color: #c0392b;
  box-shadow: 0 0 0 3px rgba(192, 57, 43, .12);
}

.field__error {
  display: none;
  font-family: var(--font-util);
  font-size: .75rem;
  font-weight: 500;
  color: #c0392b;
  margin-top: .375rem;
}

.field__error.is-visible { display: block; }

.form-actions { display: flex; gap: .75rem; align-items: center; }

.form-actions .btn-ashv { flex: 1; }

.form-success {
  display: none;
  text-align: center;
  padding: 1.25rem 0 .5rem;
}

.form-success.is-visible { display: block; }

.form-success__tick {
  width: 3.25rem;
  height: 3.25rem;
  border-radius: 999px;
  background: var(--gold);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 1rem;
  font-size: 1.5rem;
}

.form-success__title {
  font-family: var(--font-display);
  font-size: 1.375rem;
  text-transform: uppercase;
  color: var(--navy);
  margin-bottom: .5rem;
}

.form-success__body {
  font-family: var(--font-display);
  font-size: 1rem;
  color: var(--slate);
}

/* --------------------------------------------------------------------------
   19. AOS — keep motion quiet, and respect reduced-motion
   -------------------------------------------------------------------------- */
/*[data-aos] { pointer-events: none; }*/
/*[data-aos].aos-animate { pointer-events: auto; }*/

/* Only suppress interaction while an element is genuinely still hidden.
   Scoped so that if AOS never loads, nothing becomes unclickable. */
html:not(.no-js) [data-aos]:not(.aos-animate):not(.is-revealed) { pointer-events: none; }
[data-aos].aos-animate,
[data-aos].is-revealed { pointer-events: auto; }

/* Sections use overflow:hidden to contain the glow/line-art layers, which
   clips AOS's default 100px horizontal travel. 40px keeps the whole slide
   inside the section so fade-left / fade-right are actually visible. */
html:not(.no-js) [data-aos="fade-right"] { transform: translate3d(-40px, 0, 0); }
html:not(.no-js) [data-aos="fade-left"]  { transform: translate3d(40px, 0, 0); }
html:not(.no-js) [data-aos="fade-right"].aos-animate,
html:not(.no-js) [data-aos="fade-left"].aos-animate { transform: none; }

/* Fallback reveal — main.js adds .ashv-reveal to <html> when the AOS library
   fails to load (blocked CDN, offline). Same motion, zero dependencies. */
html.ashv-reveal [data-aos] {
  opacity: 0;
  transition: opacity .62s cubic-bezier(.215, .61, .355, 1),
              transform .62s cubic-bezier(.215, .61, .355, 1);
  will-change: opacity, transform;
}

html.ashv-reveal [data-aos="fade-right"] { transform: translate3d(-40px, 0, 0); }
html.ashv-reveal [data-aos="fade-left"]  { transform: translate3d(40px, 0, 0); }
html.ashv-reveal [data-aos="fade-up"]    { transform: translate3d(0, 24px, 0); }
html.ashv-reveal [data-aos="zoom-in"]    { transform: scale(.92); }

html.ashv-reveal [data-aos].is-revealed {
  opacity: 1;
  transform: none;
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
    scroll-behavior: auto !important;
  }
  [data-aos] { opacity: 1 !important; transform: none !important; pointer-events: auto !important; }
}

/* ==========================================================================
   20. RESPONSIVE
   1200–1439 : desktop composition, fluid
   992–1199  : large tablet — columns relax
   768–991   : tablet
   ≤767      : mobile, following the Ashv-Holdings-Mobile artboard
   ========================================================================== */

/* ---- 1200–1439 ---------------------------------------------------------- */
@media (max-width: 1439px) {
  :root { --gutter: 3.5rem; }

  .hub__card { width: 24rem; }
}

@media(max-width:1366px){
    .about__statement {
    font-family: var(--font-display);
    font-size: 24px;
    line-height: 1.32;
    letter-spacing: -.0309375rem;
    color: var(--navy);
}
  .hero__panel {
    position: relative;
    min-height: 41.25rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    padding: 13rem 2.5rem 2.5rem;
    background: linear-gradient(155.376deg,
              var(--navy-mid) 14.644%,
              var(--navy) 53.536%,
              var(--navy-lift) 85.356%);
    overflow: hidden;
}
.idx-foot {
    font-family: var(--font-display);
    font-size: .8125rem;
    line-height: 1.5;
    color: var(--slate);
    padding: 1rem 1.25rem 0.7rem;
}
  .hero__mark img {
    position: absolute;
    width: 116.28%;
    height: 142.86%;
    left: -16.14%;
    top: -1.43%;
    max-width: none;
}
}
/* ---- 992–1199 ----------------------------------------------------------- */
@media (max-width: 1199px) {
  :root { --gutter: 2.5rem; }

  .hero__panel { min-height: 34rem; padding-top: 11rem; }
  .hero__title { font-size: 3rem; }
  .hero__mark { left: 18%; width: 34rem; height: 33.5rem; }

  .about__statement { font-size: 1.75rem; }

  .h-display { font-size: 2.375rem; }

  /* MATCH 5-up becomes 3-up + 2-up */
  .match__grid { grid-template-columns: repeat(3, 1fr); }

  /* Team roster 3-up becomes 2-up */
  .team__grid { grid-template-columns: repeat(2, 1fr); }
  .roster__row { grid-template-columns: repeat(2, 1fr); }

  .founders { grid-template-columns: repeat(2, 1fr); }

  .driver-grid { grid-template-columns: repeat(2, 1fr); }

  .evidence { grid-template-columns: 1fr; }

  .vc-metrics { flex-wrap: wrap; }
  .vc-metric { flex: 0 0 calc(33.333% - 1rem); }
  .vc-divider { display: none; }

  .footer__top { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2.5rem; }

  /* Hub → flow layout, connectors hidden */
  .hub { min-height: 0; display: flex; flex-direction: column; align-items: center; gap: 2rem; }
  .hub__logo,
  .hub__card { position: static; transform: none; }
  .hub__card { width: 100%; max-width: 34rem; }
  .hub__spoke { display: none; }
  .hub__dot { display: none; }
}

/* ---- 768–991 ------------------------------------------------------------ */
@media (max-width: 991px) {
  :root { --gutter: 2rem; }

  .nav-links { display: none; }
  .nav-toggle { display: block; }
  .nav { padding: 1rem var(--gutter); }

  .nav-logo { padding: .5rem; border-radius: .5rem; }
  .nav-logo__img { width: 4.25rem; height: 5.3rem; }
  .nav-logo-spacer { width: 5.25rem; height: 6.3rem; }

  .hero__panel { padding-top: 9.5rem; min-height: 30rem; }
  .hero__title { font-size: 2.5rem; letter-spacing: -.0625rem; }
  .hero__sub { font-size: 1.25rem; }

  .h-display { font-size: 2.125rem; }
  .about__statement { font-size: 1.5rem; }

  .team__grid { grid-template-columns: 1fr; }

  .xp { grid-template-columns: 1fr; }
  .xp__cell + .xp__cell { border-left: 0; border-top: 1px solid rgba(227, 213, 196, .9); }

  .metrics { grid-template-columns: repeat(2, 1fr); row-gap: 1.75rem; }
  .metrics__cell { padding: 0 1.5rem; }
  .metrics__cell:nth-child(odd) { padding-left: 0; }
  .metrics__cell:nth-child(2n) { padding-right: 0; }
  .metrics__cell:nth-child(3) { border-left: 0; }

  .engines { grid-template-columns: 1fr; }

  .plate { grid-template-columns: 1fr; row-gap: 1.5rem; }
  .plate__cell { padding: 0; }
  .plate__cell + .plate__cell {
    border-left: 0;
    border-top: 1px solid rgba(255, 255, 255, .14);
    padding-top: 1.5rem;
  }

  .footprint { grid-template-columns: 1fr; }

  .cta__title { font-size: 2rem; }
  .cta__buttons { flex-direction: column; align-items: stretch; width: 100%; max-width: 24rem; }

  .legal { flex-direction: column; align-items: flex-start; gap: .5rem; }
}

/* ---- ≤767 : MOBILE — Ashv-Holdings-Mobile artboard (360px) -------------- */
@media (max-width: 767px) {
  :root { --gutter: 1.25rem; }              /* 20px */

  body { font-size: .875rem; }

  /* Eyebrow — 8px / 0.96px tracking on the mobile board */
  .eyebrow { font-size: .5rem; letter-spacing: .06rem; gap: .5625rem; }
  .eyebrow--wide { letter-spacing: .09rem; }

  .h-display { font-size: 1.75rem; letter-spacing: -.02rem; }   /* 28px */

  .btn-ashv { font-size: .75rem; letter-spacing: .015rem; padding: .9375rem 1rem; }

  /* Nav — logo plate 4px pad / 4px radius, 46x58 leaf, hamburger 24px */
  .nav { padding: .875rem var(--gutter); }
  .nav-logo { top: .875rem; left: var(--gutter); padding: .25rem; border-radius: .25rem; }
  .nav-logo__img { width: 2.875rem; height: 3.625rem; }
  .nav-logo-spacer { width: 3.375rem; height: 4.125rem; }

  /* Hero — pt120 pb80, px20 */
  .hero__panel {
    min-height: 0;
    padding: 7.5rem 1.25rem 5rem;
    justify-content: center;
  }
  .hero__content { gap: 1.125rem; }
  .hero__title { font-size: 2rem; letter-spacing: -.05rem; }     /* 32px */
  .hero__sub { font-size: 1rem; letter-spacing: -.025rem; }      /* 16px */
  .hero__note { font-size: .875rem; }                            /* 14px */
  .hero__buttons { width: 100%; gap: .625rem; }
  .hero__buttons .btn-ashv { flex: 1 1 0; min-width: 0; }
  .hero__glow { width: 26.25rem; height: 26.25rem; left: 7.5rem; top: -6.875rem; }
  .hero__mark { left: 2.25rem; top: 5.9375rem; width: 18.625rem; height: 18.375rem; }
  .hero__lines { top: 16.6875rem; height: 7.65625rem; }

  /* About — px20 py30, gap 34, statement 16, meta 12 */
  .about { padding-top: 1.875rem; padding-bottom: 1.875rem; gap: 2.125rem; }
  .about__statement { font-size: 1rem; letter-spacing: -.015rem; }
  .about__footer { flex-direction: column-reverse; align-items: stretch; gap: 1.25rem; }
  .about__meta { font-size: .75rem; max-width: none; }
  .about__footer .btn-ashv { width: 100%; justify-content: flex-start; }

  /* Partners hub — logo, then two cards side-by-side, then one full width */
  .partners { padding-top: 2.5rem; padding-bottom: 2.5rem; gap: 2rem; }
  .hub { display: block; }
  .hub__logo {
    position: static;
    transform: none;
    width: 8.75rem;
    margin: 0 auto 1.5rem;
    background: transparent;
    border-radius: 0;
  }
  .hub__logo img { width: 100%; height: auto; }
  .hub__card {
    position: static;
    transform: none;
    width: 100%;
    padding: 1rem;
    border-radius: .875rem;
    gap: .75rem;
  }
  .hub__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: .75rem;
    margin-bottom: .75rem;
  }
  .hub__card-title { font-size: 1.125rem; }
  .hub__card-body { font-size: .8125rem; }
  .hub__card-note { font-size: .75rem; }

  /* Team */
  .team { padding-top: 2.5rem; padding-bottom: 2.5rem; gap: 2.25rem; }
  .team__grid { gap: 1.25rem; }
  .profile { padding: 1.25rem; gap: 1rem; }
  .profile__portrait { width: 4.25rem; height: 4.25rem; }
  .profile__name { font-size: 1.375rem; }
  .profile__role { font-size: .875rem; }
  .profile__bio { font-size: .875rem; }

  .roster__row { grid-template-columns: repeat(2, 1fr); gap: 1rem 1.25rem; }
  .stop__name { font-size: .8125rem; }
  .stop__name--lead { font-size: .9375rem; }
  .stop__desc { font-size: .75rem; }
  .stop__label { font-size: .5rem; letter-spacing: .06rem; }

  /* Philosophy */
  .philosophy { padding-top: 2.5rem; padding-bottom: 2.5rem; gap: 2rem; }
  .sec-head__lede { font-size: .875rem; }
  .xp { border-radius: .875rem; }
  .xp__cell { padding: 1.125rem; gap: .75rem; }
  .xp__badge { width: 2rem; height: 2rem; }
  .xp__badge img { width: 1rem; height: 1rem; }
  .xp__title { font-size: 1rem; }
  .xp__body { font-size: .8125rem; }

  .metrics { row-gap: 1.5rem; }
  .metrics__value { font-size: 1.5rem; margin-bottom: .5rem; }
  .metrics__label { font-size: .8125rem; }

  /* MATCH */
  .match { padding-top: 2.5rem; padding-bottom: 2.5rem; gap: 1.75rem; }
  .match__grid { grid-template-columns: 1fr; gap: .75rem; }
  .match-card { min-height: 0; }
  .match-card__inner { padding: 1.125rem; gap: .625rem; }
  .match-card__letter { font-size: 2rem; }
  .match-card__name { font-size: .875rem; }
  .match-card__desc { font-size: .8125rem; line-height: 1.4; }
  .match__title { font-size: 1.75rem; letter-spacing: .105rem; }
  .match__lede { font-size: .8125rem; }

  /* Architecture */
  .architecture { padding-top: 2.5rem; padding-bottom: 2.5rem; gap: 2rem; }
  .alloc__labels { font-size: .5rem; letter-spacing: .05rem; }
  .engine__inner { padding: 1.25rem; }
  .engine__value { font-size: 1.75rem; }
  .engine__name { font-size: 1rem; }
  .engine__desc { font-size: .8125rem; }

  /* Why now */
  .whynow { padding-top: 2.5rem; padding-bottom: 2.5rem; gap: 2rem; }
  .driver { padding: 1.125rem; gap: .625rem; border-radius: .75rem; }
  .driver__title { font-size: .9375rem; }
  .driver__body { font-size: .75rem; }
  .chart-card { padding: 1.125rem; gap: .875rem; }
  .legend__label { font-size: .5rem; letter-spacing: .05rem; }
  .chart-note { font-size: .6875rem; }
  .idx thead th { font-size: .5rem; letter-spacing: .05rem; padding: .75rem 0; }
  .idx thead th:first-child { padding-left: .875rem; }
  .idx thead th:last-child { padding-right: .875rem; }
  .idx tbody td { font-size: .8125rem; padding: .75rem 0; }
  .idx tbody td:first-child { padding-left: .875rem; }
  .idx tbody td:last-child { padding-right: .875rem; }
  .idx-foot { font-size: .6875rem; padding: .75rem .875rem 1rem; }

  /* InVed */
  .inved { padding-top: 2.5rem; padding-bottom: 2.5rem; gap: 2rem; }
  .inved__kicker { font-size: .9375rem; }
  .plate { padding: 1.25rem; }
  .plate__value { font-size: 1.5rem; margin-bottom: .5rem; }
  .plate__label { font-size: .8125rem; }

  /* Venture Catalysts */
  .vc { padding-top: 2.5rem; padding-bottom: 2.5rem; gap: 2rem; }
  .vc__lede { font-size: .875rem; }
  .founders { grid-template-columns: 1fr; gap: 1rem; }
  .founder { padding: 1.125rem; gap: .625rem; }
  .founder__name { font-size: .9375rem; }
  .founder__role { font-size: .5rem; letter-spacing: .06rem; }
  .founder__list { font-size: .75rem; padding-left: 1.1rem; }

  .chips { display: grid; grid-template-columns: repeat(2, 1fr); gap: .5rem; }
  .chip { padding: .625rem .75rem; border-radius: .625rem; }
  .chip__name { font-size: .5rem; letter-spacing: .05rem; }
  .chip__firm { font-size: .6875rem; }

  .vc-metrics { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.25rem; }
  .vc-metric { padding-right: 0; }
  .vc-metric__value { font-size: 1.5rem; }
  .vc-metric__label { font-size: .75rem; }

  .fp-card { padding: 1.125rem; gap: .875rem; }
  .fp-card__title { font-size: 1rem; }
  .fp-metric__value { font-size: 1.75rem; }
  .fp-metric__label { font-size: .6875rem; }
  .pill { font-size: .5rem; letter-spacing: .05rem; padding: .375rem .625rem; }
  .vc-note { font-size: .75rem; }
  .vc-plate { padding: .625rem 1rem; }
  .vc-plate img { width: 11rem; }

  /* CTA */
  .cta { padding-top: 2.5rem; padding-bottom: 2.5rem; gap: 1.125rem; }
  .cta__title { font-size: 1.625rem; }
  .cta__lede { font-size: .875rem; }
  .cta__contact { font-size: .8125rem; letter-spacing: .02rem; }
  .cta__buttons { max-width: none; }

  /* Footer */
  .footer { padding-top: 2.5rem; padding-bottom: 1.75rem; gap: 1.75rem; }
  .footer__top { grid-template-columns: 1fr; gap: 1.75rem; }
  .footer__logo { width: 7rem; }
  .footer__reg { font-size: .875rem; }
  .footer__coltitle { font-size: .8125rem; letter-spacing: .12rem; }
  .footer__list { font-size: .875rem; gap: .5rem; }
  .disclaimer__title { font-size: .5rem; }
  .disclaimer__body { font-size: .625rem; }
  .legal { font-size: .625rem; }

  /* Modal */
  .ashv-modal .modal-header { padding: 1.25rem 1.25rem 1.125rem; }
  .ashv-modal__title { font-size: 1.375rem; }
  .ashv-modal__lede { font-size: .875rem; }
  .ashv-modal .modal-body { padding: 1.25rem; }
  .form-actions { flex-direction: column; align-items: stretch; }
}

/* Mobile nav drawer ------------------------------------------------------- */
.nav-drawer {
  position: fixed;
  inset: 0 0 0 auto;
  width: min(20rem, 82vw);
  background: linear-gradient(160deg, var(--navy-mid) 0%, var(--navy) 100%);
  z-index: 70;
  transform: translateX(100%);
  transition: transform .32s cubic-bezier(.4, 0, .2, 1);
  padding: 5rem 1.75rem 2rem;
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  overflow-y: auto;
}

.nav-drawer.is-open { transform: translateX(0); }

.nav-drawer a {
  font-family: var(--font-display);
  font-size: 1.125rem;
  color: #fff;
  padding-bottom: .75rem;
  border-bottom: 1px solid rgba(255, 255, 255, .12);
}

.nav-drawer .btn-ashv { margin-top: .75rem; background: var(--gold); }

.nav-drawer__close {
  position: absolute;
  top: 1.5rem;
  right: 1.5rem;
  background: none;
  border: 0;
  color: #fff;
  font-size: 1.75rem;
  line-height: 1;
  cursor: pointer;
  padding: 0;
}

.nav-scrim {
  position: fixed;
  inset: 0;
  background: rgba(8, 13, 28, .55);
  z-index: 65;
  opacity: 0;
  visibility: hidden;
  transition: opacity .28s ease, visibility .28s ease;
}

.nav-scrim.is-open { opacity: 1; visibility: visible; }
