/* =============================================================
   CLOUDLAND INVESTMENTS · Redesign
   Direction: "The Brow" · the escarpment horizon where mountain meets sky.
   Signature: the Brow Line, a brass horizon datum that recurs throughout.
   ============================================================= */

/* ---------- TOKENS ---------- */
:root {
  /* Color · core (6) */
  --ink:    #14202B; /* high-emphasis text */
  --deep:   #06243D; /* primary dark surface (escarpment blue) */
  --ridge:  #51677A; /* muted / secondary text (far ridge) */
  --brass:  #A87E3D; /* accent · golden-hour light along the brow */
  --mist:   #EDF1F4; /* background · cool morning mist */
  --paper:  #FFFFFF; /* light text and true-white accents on dark surfaces */
  --vellum: #F8F3EA; /* light sections · soft vellum */
  --vellum-rgb: 248,243,234;

  /* Tonal extensions */
  --deep-900: #020B16;
  --deep-700: #06243D;
  --deep-600: #0B3C66;
  --deep-gradient: linear-gradient(180deg, #020A14 0%, #03182B 22%, #062B4B 46%, #0A3E68 62%, #05233D 82%, #020A14 100%);
  --chrome-gradient: var(--deep-gradient);
  --footer-gradient: var(--chrome-gradient);
  --brass-600: #8A6526;
  --brass-300: #C8A86E;
  --line:     #D7DEE4; /* hairline borders on light */
  --line-dark: rgba(255,255,255,0.14); /* hairlines on dark */

  /* Semantic status (tokenized, not ad-hoc) */
  --status-err: #B23B3B; /* form/validation error · 5.9:1 on white, AA for small text */

  /* Second accent: restrained oxblood for the mono system labels (kickers, indices).
     Brass remains the dominant brand accent. */
  --oxblood:      #8B2E2A; /* on light · 8.3:1 on white, 7.3:1 on mist */
  --oxblood-soft: #D98A80; /* on dark  · 5.1:1 on the deep escarpment blue */

  /* Type */
  --display: "Figtree", system-ui, -apple-system, sans-serif; /* headlines */
  --serif: "Vollkorn", Georgia, "Times New Roman", serif;
  --sans:  system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; /* retired from the design; graceful fallback only */
  --mono:  "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;

  /* ============================================================
     TYPE SYSTEM · three faces, three jobs, two weights each.
       Figtree (display)  : headlines + figures. weights 750 / 600
       Vollkorn (serif)   : reading text.        weights 400 / 600
       IBM Plex Mono      : labels + UI + data.  weight  500
     Hierarchy is carried by SIZE first, weight second. Nothing
     sets a size or weight outside these tokens.
     ============================================================ */
  --w-display: 750; /* hero h1, section h2, figures */
  --w-title:   600; /* card / item titles (h3) */
  --w-body:    400; /* running text + lede */
  --w-strong:  600; /* emphasis inside body */
  --w-label:   500; /* every mono label, nav, button */

  --fs-display: clamp(2.7rem, 5.6vw, 4.5rem);   /* 1 */
  --fs-h2:      clamp(1.95rem, 3.4vw, 2.7rem);  /* 2 */
  --fs-h3:      clamp(1.35rem, 1.5vw, 1.55rem); /* 3 · card/item titles */
  --fs-lede:    clamp(1.2rem, 1.5vw, 1.4rem);   /* 4 · intro */
  --fs-body:    1.125rem;                       /* 5 · 18px reading text */
  --fs-label:   0.74rem;                        /* 6 · mono labels */
  --fs-stat:    clamp(2.2rem, 3.6vw, 3rem);     /* display figures */
  --lh-display: 1.03;
  --lh-h2:      1.08;
  --lh-h3:      1.18;

  /* Spacing · 8px base */
  --s-xs: 4px;  --s-sm: 8px;  --s-md: 16px; --s-lg: 24px;
  --s-xl: 32px; --s-2xl: 48px; --s-3xl: 64px; --s-4xl: 96px; --s-5xl: 144px;

  /* Shape */
  --radius: 4px;
  --radius-lg: 8px;
  --container: 1240px;
  --gutter: clamp(20px, 4.2vw, 56px); /* fluid side margins: copy stays proportionally inset as the screen narrows */

  /* Motion */
  --dur-micro: 160ms;
  --dur-base:  280ms;
  --dur-seq:   560ms;
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in:  cubic-bezier(0.4, 0, 1, 1);

  /* Shadow */
  --shadow-sm: 0 1px 2px rgba(15,35,53,0.06), 0 1px 3px rgba(15,35,53,0.05);
  --shadow-md: 0 8px 24px rgba(15,35,53,0.10), 0 2px 6px rgba(15,35,53,0.06);
  --shadow-section-deboss: inset 0 1px 0 rgba(5,16,26,0.16), inset 0 -1px 0 rgba(5,16,26,0.12), inset 0 12px 18px -20px rgba(5,16,26,0.40), inset 0 -12px 18px -20px rgba(5,16,26,0.32);
  --surface-layer-overlap: clamp(10px, 0.9vw, 16px);

  /* Letterpress headline API
     Top-lit deboss: the lower interior edge catches light, so the main cue is a
     1px highlight below the glyph. Keep offsets at 1px and blur at 0-1px;
     anything larger becomes a generic drop shadow. Decorative only: base color
     contrast must pass WCAG AA for large text before these shadows are applied. */
  --lp-depth: 1px;
  --lp-blur: 1px;
  --lp-highlight: rgba(255,255,255,0.90);
  --lp-shadow: rgba(70,56,42,0.20);
  --lp-dark-highlight: rgba(255,255,255,0.16);
  --lp-dark-shadow: rgba(0,0,0,0.72);
  --lp-text-light: #6F665C;
  --lp-text-dark: #E0E6E9;
  --lp-light: 0 var(--lp-depth) 0 var(--lp-highlight), 0 calc(var(--lp-depth) * -1) var(--lp-blur) var(--lp-shadow);
  --lp-dark: 0 calc(var(--lp-depth) * -1) 0 var(--lp-dark-highlight), 0 var(--lp-depth) var(--lp-blur) var(--lp-dark-shadow);
  --lp-emboss-light: 0 calc(var(--lp-depth) * -1) var(--lp-blur) var(--lp-highlight), 0 var(--lp-depth) 0 var(--lp-shadow);
  --lp-emboss-dark: 0 var(--lp-depth) 0 var(--lp-dark-highlight), 0 calc(var(--lp-depth) * -1) var(--lp-blur) var(--lp-dark-shadow);
  --white-headline-color: var(--vellum);
  --white-headline-shadow:
    0 1px 2px rgba(1,8,15,0.45),
    0 2px 8px rgba(1,8,15,0.25);

  /* Horizontal blue-panel elevation
     A normal box-shadow bleeds from all four sides. These stacks use negative
     spread values equal to the blur radius, contracting the shadow box inward
     so the shadow only escapes along the vertically offset top/bottom edges.
     If a side shadow ever appears, increase the negative spread before adding
     blur. Bottom shadows are intentionally heavier than top shadows. */
  --elevation-edge-highlight:
    inset 0 1px 0 rgba(255,255,255,0.26),
    inset 0 -1px 0 rgba(1,8,15,0.30);
  --elevation-clip: inset(-150px 0 -180px 0);
  --blue-surface-warp:
    radial-gradient(ellipse 94% 78% at 50% 52%, rgba(10,62,104,0.24) 0%, rgba(6,36,61,0.18) 44%, rgba(1,10,20,0.56) 100%),
    linear-gradient(120deg, rgba(4,45,80,0.30) 0%, rgba(2,14,27,0.12) 48%, rgba(7,55,92,0.24) 100%);
  --blue-surface-bg: var(--blue-surface-warp), var(--deep-gradient);
  --blue-chrome-bg: var(--blue-surface-bg);
  --blue-surface-bg-size: 130% 120%, 160% 140%, 100% 260%;
  --blue-surface-bg-position: 50% 50%, 0% 50%, 50% 0%;
  --blue-surface-bg-position-mid: 50% 50%, 100% 50%, 50% 100%;
  --blue-surface-bg-position-settle: 50% 50%, 58% 50%, 50% 42%;
  --blue-media-warp:
    radial-gradient(ellipse 70% 56% at 50% 46%, rgba(255,255,255,0.14) 0%, rgba(255,255,255,0.05) 38%, rgba(255,255,255,0) 68%),
    radial-gradient(ellipse 94% 78% at 50% 56%, rgba(2,10,18,0) 0%, rgba(2,10,18,0.18) 56%, rgba(2,10,18,0.48) 100%),
    linear-gradient(180deg, rgba(15,35,53,0.32) 0%, rgba(15,35,53,0.48) 50%, rgba(5,16,26,0.88) 100%);
  --blue-media-warp-size: 118% 105%, 116% 130%, 100% 100%;
  --blue-media-warp-position: 50% 54%, 50% 48%, 50% 50%;
  --blue-media-warp-position-mid: 51% 52%, 49% 50%, 50% 50%;
  --blue-media-warp-position-settle: 50% 53%, 50% 49%, 50% 50%;
  --elevation-surface-inset:
    inset 0 28px 52px -34px rgba(255,255,255,0.26),
    inset 0 -34px 68px -30px rgba(1,8,15,0.72),
    inset 0 0 150px -44px rgba(1,8,15,0.62);
  --elevation-edge-top:
    0 -1px 0 0 rgba(255,255,255,0.10),
    0 -14px 28px -16px rgba(2,10,18,0.30),
    0 -52px 88px -58px rgba(2,10,18,0.20);
  --elevation-edge-bottom:
    0 1px 0 0 rgba(2,10,18,0.18),
    0 18px 34px -16px rgba(2,10,18,0.38),
    0 78px 124px -82px rgba(2,10,18,0.28);
  --elevation-1:
    0 -8px 18px -10px rgba(2,10,18,0.19),
    0 -30px 52px -34px rgba(2,10,18,0.14),
    0 12px 24px -10px rgba(2,10,18,0.26),
    0 42px 70px -44px rgba(2,10,18,0.19);
  --elevation-2:
    0 -10px 24px -12px rgba(2,10,18,0.25),
    0 -44px 76px -48px rgba(2,10,18,0.19),
    0 18px 34px -14px rgba(2,10,18,0.33),
    0 68px 112px -66px rgba(2,10,18,0.25);
  --elevation-3:
    0 -12px 28px -14px rgba(2,10,18,0.30),
    0 -58px 96px -58px rgba(2,10,18,0.23),
    0 24px 44px -18px rgba(2,10,18,0.39),
    0 92px 144px -86px rgba(2,10,18,0.30);
}

/* ---------- RESET / BASE ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 96px; /* WCAG 2.2 2.4.11: clear the sticky header on anchor/focus */ }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body {
  margin: 0;
  /* serif carries the reading voice; Figtree the display voice; mono the system voice */
  font-family: var(--serif);
  font-weight: var(--w-body);
  font-size: var(--fs-body);
  line-height: 1.55;
  color: var(--ink);
  background: var(--vellum);
  font-feature-settings: "kern" 1;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button { font-family: inherit; }
::selection { background: var(--brass-300); color: var(--ink); }

/* Layout primitives */
.container {
  width: 100%;
  max-width: var(--container);
  margin-inline: auto;
  padding-inline: var(--gutter);
}
.section { padding-block: 60px; }
.section--vellum,
.section:not(.surface-deep) {
  position: relative;
  isolation: isolate;
  background-color: var(--vellum);
  background-image: none;
  box-shadow: none;
}
.section--vellum > *,
.section:not(.surface-deep) > * {
  position: relative;
  z-index: 2;
}
.section.section--white {
  background-color: var(--vellum);
  background-image: none;
  box-shadow: none;
}
.section--tight { padding-block: 60px; }
.section--cta {
  padding-block: 60px;
}
.hero + .section:not(.surface-deep),
.image-band + .section:not(.surface-deep),
.section:not(.surface-deep):has(+ .image-band) {
  z-index: 2;
  margin-block: calc(var(--surface-layer-overlap) * -1);
  padding-block: calc(60px + var(--surface-layer-overlap));
  border-block: 1px solid rgba(255,255,255,0.72);
}

/* Dark surface */
.surface-deep {
  position: relative;
  z-index: 1;
  isolation: isolate;
  overflow: visible;
  background-image: var(--blue-surface-bg);
  background-size: var(--blue-surface-bg-size);
  background-position: var(--blue-surface-bg-position);
  background-repeat: no-repeat;
  border-block: 1px solid rgba(237,241,244,0.16);
  color: var(--mist);
  box-shadow: none;
}
.section.surface-deep {
  z-index: 3;
  margin-block: calc(var(--surface-layer-overlap) * -1);
  padding-block: calc(60px + var(--surface-layer-overlap));
}
.section--elevated,
.section.surface-deep,
.hero:not(.video-hero),
.presentation-slide--title,
.presentation-slide--photo {
  --elevation-level: var(--elevation-2);
  position: relative;
  z-index: 4;
  overflow: visible;
  border-radius: 0;
  clip-path: var(--elevation-clip);
  box-shadow: var(--elevation-level), var(--elevation-edge-highlight), var(--elevation-surface-inset);
}
.section--elevated.section--cta { --elevation-level: var(--elevation-3); }
.section--elevated.section--tight { --elevation-level: var(--elevation-1); }
.hero:not(.video-hero),
.presentation-slide--title,
.presentation-slide--photo {
  --elevation-level: var(--elevation-3);
}
.hero:not(.video-hero) {
  background-image: var(--blue-surface-bg);
  background-size: var(--blue-surface-bg-size);
  background-position: var(--blue-surface-bg-position);
  background-repeat: no-repeat;
}
.video-hero,
.image-band {
  position: relative;
  z-index: 4;
  isolation: isolate;
  clip-path: var(--elevation-clip);
  box-shadow: var(--elevation-3), var(--elevation-edge-highlight), var(--elevation-surface-inset);
}
.section--elevated::before,
.section--elevated::after,
.section.surface-deep::before,
.section.surface-deep::after,
.hero:not(.video-hero)::before,
.hero:not(.video-hero)::after,
.presentation-slide--title::before,
.presentation-slide--title::after,
.presentation-slide--photo::before,
.presentation-slide--photo::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  height: 1px;
  z-index: 1;
  pointer-events: none;
}
.section--elevated::before,
.section.surface-deep::before,
.hero:not(.video-hero)::before,
.presentation-slide--title::before,
.presentation-slide--photo::before {
  top: 0;
  box-shadow: var(--elevation-edge-top);
}
.section--elevated::after,
.section.surface-deep::after,
.hero:not(.video-hero)::after,
.presentation-slide--title::after,
.presentation-slide--photo::after {
  bottom: 0;
  box-shadow: var(--elevation-edge-bottom);
}
.section--elevated > *,
.section.surface-deep > *,
.presentation-slide--title > *,
.presentation-slide--photo > * {
  position: relative;
  z-index: 2;
}
.hero:not(.video-hero) .hero__inner {
  position: relative;
  z-index: 2;
}
.hero:not(.video-hero) .hero__bg {
  position: absolute;
  z-index: 0;
  overflow: hidden;
}
.surface-deep .eyebrow { color: var(--oxblood-soft); }

/* ---------- TYPOGRAPHY ---------- */
/* All headings are Figtree. Title weight by default; the display tier (.display/.h2)
   steps up to 750. Hierarchy reads: 750 big display  >  600 titles  >  400 serif body. */
h1, h2, h3, h4 { font-family: var(--display); font-weight: var(--w-title); color: var(--ink); margin: 0; letter-spacing: -0.005em; }
.surface-deep h1, .surface-deep h2, .surface-deep h3, .surface-deep h4 { color: var(--vellum); }
h1, h2, h3, h4,
.display, .h2, .h3, .h4,
.fund__name, .project__name, .person__name, .feature__title, .recognition__award,
.image-band__quote {
  text-wrap: balance;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: manual;
}
.section:not(.surface-deep) :is(.display, .h2),
.section--vellum :is(.display, .h2),
.section--white :is(.display, .h2) {
  color: var(--lp-text-light);
  text-shadow: var(--lp-light);
}
.surface-deep :is(.section-head, .split__aside, .split > div, .hero__inner) :is(h1, h2, .display, .h2),
.presentation-slide--title :is(h1, h2, .display, .h2, .presentation-display),
.presentation-slide--photo :is(h1, h2, .display, .h2, .presentation-display),
.hero :is(h1, h2, .display, .h2),
.image-band :is(h1, h2, .display, .h2, .image-band__quote) {
  color: var(--white-headline-color);
  -webkit-text-fill-color: currentColor;
  text-shadow: var(--white-headline-shadow);
}
.surface-deep :is(.section-head, .split__aside, .split > div) :is(h1, h2, .display, .h2) {
  color: var(--vellum);
  text-shadow: var(--white-headline-shadow);
}
.surface-deep :is(.card, .project, .feature, .recognition__item, .person, .accolade, .founder-module-card, .portal-login-card, .text-module, .structure-card, .stack-card, .thesis-card, .pipeline-card) :is(h1, h2, h3, h4, .display, .h2, .h3, .h4, .fund__name, .project__name, .person__name, .feature__title, .recognition__award) {
  text-shadow: none;
}
/* default running text on dark surfaces (class-based text colors win via higher specificity) */
.surface-deep p { color: rgba(237,241,244,0.82); }

.display {
  font-family: var(--display);
  font-size: var(--fs-display);
  line-height: var(--lh-display);
  letter-spacing: -0.012em;
  font-weight: var(--w-display);
}
.h2 {
  font-family: var(--display);
  font-size: var(--fs-h2);
  line-height: var(--lh-h2);
  letter-spacing: -0.01em;
  font-weight: var(--w-display);
}
.h3 {
  font-size: var(--fs-h3);
  line-height: var(--lh-h3);
  letter-spacing: -0.003em;
  font-weight: var(--w-title);
}
.h4 { font-size: 1.05rem; line-height: 1.3; font-weight: var(--w-title); }

.lede {
  font-family: var(--serif);
  font-size: var(--fs-lede);
  line-height: 1.5;
  color: var(--ridge);
  font-weight: var(--w-body);
  max-width: 62ch;
}
.surface-deep .lede { color: rgba(237,241,244,0.82); }

p { margin: 0 0 1em; max-width: 68ch; }
strong, b { font-weight: var(--w-strong); }
.muted { color: inherit; }
.surface-deep .muted { color: inherit; }

/* Ledger folio: the section label sits on a top rule with an auto index at the
   right, a manifest header rather than the AI "kicker over the headline." */
body { counter-reset: folio; }
.eyebrow {
  counter-increment: folio;
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--s-lg);
  border-top: 1px solid var(--line);
  padding-top: 11px;
  margin: 0 0 var(--s-lg);
  font-family: var(--mono);
  font-style: normal;
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--oxblood);
  font-weight: 500;
}
.eyebrow::after {
  content: counter(folio, lower-roman) var(--folio-total, "");
  color: var(--ridge);
  letter-spacing: 0.12em;
}
.surface-deep .eyebrow::after { color: rgba(237,241,244,0.5); }
.surface-deep .eyebrow { border-top-color: var(--line-dark); }
/* hero: a clean label over the photograph, no folio rule or index */
.hero .eyebrow { display: block; border-top: none; padding-top: 0; counter-increment: none; }
.hero .eyebrow::after { content: none; }
/* card sub-labels are field labels, not section folios */
.card .eyebrow { display: block; border-top: none; padding-top: 0; counter-increment: none; color: var(--ridge); letter-spacing: 0.16em; }
.card .eyebrow::after { content: none; }
/* Removed: the eyebrow kicker label + roman-numeral folio index above every headline.
   In-card field labels (e.g. "Target raise") are kept, they are not above a headline. */
.eyebrow { display: none; }
.hero .eyebrow { display: none; }

.serif-quote {
  font-family: var(--display);
  font-style: normal;
}

/* Figures use tabular lining numerals everywhere */
.fig, .stat__num, table td, table th { font-variant-numeric: tabular-nums; }

/* ---------- THE BROW LINE (signature) ---------- */
.brow {
  position: relative;
  height: 1px;
  background: var(--line);
  margin-block: var(--s-3xl);
}
.brow::before {
  content: "";
  position: absolute;
  left: 0; top: 50%;
  width: clamp(64px, 22%, 200px);
  height: 1px;
  background: var(--brass);
  transform: translateY(-50%);
}

/* ---------- BUTTONS ---------- */
.btn {
  --btn-bg: var(--brass);
  --btn-fg: var(--ink);
  display: inline-flex;
  align-items: center;
  gap: 0.7em;
  font-family: var(--mono);
  font-weight: 500;
  font-size: 0.78rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 15px 26px;
  min-height: 48px;
  border-radius: var(--radius);
  border: 1px solid transparent;
  background: var(--btn-bg);
  color: var(--btn-fg);
  cursor: pointer;
  transition: transform var(--dur-micro) var(--ease-out),
              background-color var(--dur-base) var(--ease-out),
              color var(--dur-base) var(--ease-out),
              box-shadow var(--dur-base) var(--ease-out),
              border-color var(--dur-base) var(--ease-out);
}
.btn:hover { --btn-fg: var(--paper); background: var(--deep-600); transform: translateY(-1px); box-shadow: var(--shadow-md); }
.btn:active { transform: translateY(0); }
.btn--ghost {
  --btn-bg: var(--brass);
  --btn-fg: var(--ink);
  border-color: var(--brass);
}
.btn--ghost:hover { --btn-fg: var(--paper); background: var(--deep-600); border-color: var(--deep-600); box-shadow: 0 10px 28px rgba(11,60,102,0.24); }
.surface-deep .btn--ghost { --btn-bg: var(--brass); --btn-fg: var(--ink); border-color: var(--brass); }
.surface-deep .btn--ghost:hover { --btn-fg: var(--paper); background: var(--deep-600); border-color: rgba(255,255,255,0.6); box-shadow: 0 10px 28px rgba(11,60,102,0.28); }

.btn--brass { --btn-bg: var(--brass); --btn-fg: var(--ink); }
.btn--brass:hover { background: var(--deep-600); --btn-fg: var(--paper); }

.btn:disabled, .btn[disabled], .btn[aria-disabled="true"] {
  background: var(--line);
  color: var(--ridge);
  border-color: var(--line);
  cursor: not-allowed;
  box-shadow: none;
  transform: none;
  pointer-events: none;
}

:where(a, button, input, textarea, select, summary, [tabindex]):focus-visible {
  outline: 2px solid var(--brass);
  outline-offset: 3px;
  border-radius: 2px;
}
#main:focus { outline: none; } /* programmatic focus target for the skip link */

/* Skip link · first tab stop, visible only on focus */
.skip-link {
  position: absolute;
  left: var(--gutter); top: -60px;
  z-index: 200;
  background: var(--deep);
  color: var(--paper);
  font-family: var(--mono);
  font-weight: 500;
  font-size: 0.82rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 12px 18px;
  border-radius: var(--radius);
  transition: top var(--dur-micro) var(--ease-out);
}
.skip-link:focus { top: 12px; outline-offset: 2px; }

/* link with brass underline (on dark) */
.link-brass {
  color: var(--brass-300);
  font-weight: 500;
  border-bottom: 1px solid rgba(200,168,110,0.4);
  transition: border-color var(--dur-micro) var(--ease-out);
}
.link-brass:hover { border-color: var(--brass-300); }

/* ---------- HEADER ---------- */
.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  isolation: isolate;
  overflow: hidden;
  background-image: var(--blue-chrome-bg);
  background-size: var(--blue-surface-bg-size);
  background-position: var(--blue-surface-bg-position);
  background-repeat: no-repeat;
  border-bottom: 1px solid rgba(237,241,244,0.18);
  box-shadow: 0 1px 0 rgba(255,255,255,0.05), 0 12px 28px rgba(15,35,53,0.18);
}
.site-header::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: none;
}
.site-header::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: none;
}
.site-header__inner {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(24px, 4vw, 64px);
  min-height: 88px;
  padding-block: 14px;
}
/* Brand logo: anchored left on desktop and mobile, with nav links balanced to the right. */
.brandmark { display: inline-flex; align-items: center; }
.brandmark__img { display: block; width: auto; height: 42px; }
.site-header .brandmark {
  padding: 0;
  margin-left: 0;
}
.site-header .brandmark__img {
  height: 40px;
  filter: drop-shadow(0 2px 2px rgba(2,10,18,0.46)) drop-shadow(0 0 1px rgba(255,235,180,0.22));
}
.brandmark--header { flex: 0 0 auto; position: relative; }
/* One-time light pan across the header wordmark. The overlay is masked by the
   logo's own alpha channel, so the passing light and its shadows render on the
   letter interiors only. Plays once per page load, then rests. */
.brandmark--header::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  -webkit-mask-image: url("/images/logo-header-gold-cropped.png");
  mask-image: url("/images/logo-header-gold-cropped.png");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
  background-image: linear-gradient(100deg,
    rgba(2,11,22,0) 33%,
    rgba(2,11,22,0.55) 40%,
    rgba(255,238,196,0.85) 50%,
    rgba(2,11,22,0.55) 60%,
    rgba(2,11,22,0) 67%);
  background-size: 300% 100%;
  background-repeat: no-repeat;
  background-position-x: 100%;
  animation: brandmark-light-pan 2.4s ease-in-out 0.4s 1 forwards;
}
@keyframes brandmark-light-pan {
  from { background-position-x: 100%; }
  to   { background-position-x: 0%; }
}
@media (prefers-reduced-motion: reduce) {
  .brandmark--header::after { animation: none; background-image: none; }
}
.nav {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: clamp(16px, 2.2vw, 32px);
  width: auto;
  flex: 1 1 auto;
}
.nav__group { display: flex; align-items: center; gap: clamp(14px, 1.8vw, 24px); min-width: 0; }
.nav__group--left,
.nav__group--right { justify-content: flex-end; }
.nav .brandmark--desktop { display: none; }
.nav__link {
  display: inline-flex;
  align-items: center;
  font-family: var(--mono);
  font-size: 0.74rem;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  white-space: nowrap;
  color: rgba(255,255,255,0.88);
  text-shadow: 0 1px 2px rgba(5,16,26,0.76);
  padding: 0;
  position: relative;
  transition: color 280ms var(--ease-out), text-shadow 280ms var(--ease-out);
}
.nav__link::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -14px;
  height: 2px;
  background: var(--brass-300);
  opacity: 0;
  transform: scaleX(0);
  transform-origin: center;
  transition: opacity 280ms var(--ease-out), transform 280ms var(--ease-out);
}
.nav__link[aria-current="page"] { color: var(--paper); text-shadow: 0 1px 3px rgba(5,16,26,0.86); }
.nav__link:hover,
.nav__link:focus-visible,
.nav__link[aria-current="page"]:hover,
.nav__link[aria-current="page"]:focus-visible {
  color: var(--brass-300);
  text-shadow: 0 1px 3px rgba(5,16,26,0.86);
}
.nav__link:hover::after,
.nav__link:focus-visible::after,
.nav__link[aria-current="page"]::after {
  opacity: 1;
  transform: scaleX(1);
}
.site-header .btn { box-shadow: 0 5px 14px rgba(2,10,18,0.28); }
.nav-toggle { display: none; }
.nav-toggle svg path { stroke: var(--mist); } /* light hamburger on the dark header */

/* ---------- HERO ---------- */
.hero {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: stretch;
  min-height: 800px;
  height: 800px;
  background: var(--deep);
  color: var(--mist);
  overflow: hidden;
}
/* full-bleed media of the real place, behind a legibility scrim */
.hero__bg { position: absolute; inset: 0; z-index: 0; }
.hero__bg img, .hero__bg video { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; }
.hero-carousel__slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 1400ms cubic-bezier(0.19, 1, 0.22, 1);
}
.hero-carousel__slide.is-active { opacity: 1; }
.hero__bg::after { /* single-direction scrim for text legibility over photography */
  content: "";
  position: absolute; inset: 0;
  background: var(--blue-media-warp);
  background-size: var(--blue-media-warp-size);
  background-position: var(--blue-media-warp-position);
  background-repeat: no-repeat;
}
.video-hero {
  min-height: 800px;
  height: 800px;
  padding: 0;
  background: var(--deep-900);
  box-shadow: var(--elevation-3), var(--elevation-edge-highlight), var(--elevation-surface-inset);
}
.video-hero::before {
  content: none;
}
.video-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background: var(--blue-media-warp);
  background-size: var(--blue-media-warp-size);
  background-position: var(--blue-media-warp-position);
  background-repeat: no-repeat;
}
.video-hero__embed {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: var(--deep-900);
}
.video-hero__embed iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}
.hero--tall .hero__inner { padding-block: 60px; }
.hero__inner {
  position: relative;
  width: 100%;
  padding-block: 60px;
  z-index: 2;
}
.hero .display { color: var(--white-headline-color); max-width: 17ch; text-shadow: var(--white-headline-shadow); }
.hero .lede { margin-top: var(--s-lg); color: rgba(237,241,244,0.84); }
.hero__cta { display: flex; flex-wrap: wrap; gap: var(--s-md); margin-top: var(--s-2xl); }
.hero__meta {
  margin-top: clamp(32px, 6vh, 72px);
  display: flex; flex-wrap: wrap; gap: var(--s-2xl);
  position: relative; z-index: 2;
}
.hero__meta .stat__num { color: var(--brass-300); }
/* over-photo legibility: hero text and CTAs sit on imagery, so force light treatments */
.hero .eyebrow { color: var(--oxblood-soft); }
.hero .stat__label { color: rgba(237,241,244,0.82); }
.hero .btn--ghost {
  --btn-fg: var(--ink);
  border-color: var(--brass);
  background: var(--brass);
}
.hero .btn--ghost:hover { --btn-fg: var(--paper); background: var(--deep-600); border-color: rgba(255,255,255,0.6); box-shadow: 0 10px 28px rgba(11,60,102,0.30); }

/* Homepage hero stays tall; the quote image band is shorter and centered. */
.home .hero {
  min-height: 800px;
  height: 800px;
}
.home .image-band {
  min-height: 600px;
  height: 600px;
}
.home .hero--tall .hero__inner,
.home .hero__inner {
  min-height: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  text-align: left;
  padding-block: 60px;
}
.home .hero .display,
.home .hero .lede,
.home .image-band__quote {
  margin-left: 0;
  margin-right: 0;
}
.home .hero__cta,
.home .hero__meta {
  justify-content: flex-start;
}
.home .image-band {
  align-items: center;
}
.home .image-band__inner {
  min-height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  text-align: left;
  padding-block: 60px;
}

/* ---------- STAT / METRIC ---------- */
.stat { display: flex; flex-direction: column; gap: 6px; }
.stat__num {
  font-family: var(--display);
  font-size: var(--fs-stat);
  line-height: 1;
  letter-spacing: -0.012em;
  font-weight: var(--w-display);
  color: var(--ink);
}
.surface-deep .stat__num { color: var(--paper); }
.stat__label {
  font-family: var(--mono);
  font-size: 0.7rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ridge);
}
.surface-deep .stat__label { color: rgba(237,241,244,0.6); }
.stat--brow { padding-bottom: var(--s-md); border-bottom: 1px solid var(--brass); }

/* ---------- GENERIC GRID ---------- */
.grid { display: grid; gap: var(--s-2xl); }
.grid--2 { grid-template-columns: repeat(2, 1fr); }
.grid--3 { grid-template-columns: repeat(3, 1fr); }
.grid--12 { grid-template-columns: repeat(12, 1fr); }
.fund-size-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-auto-rows: minmax(220px, auto);
  gap: 24px;
}
.fund-size-grid .card {
  min-height: 220px;
  padding: 24px;
}
.fund-size-section .section-head {
  margin-bottom: 24px;
}
.fund-size-grid .h4 {
  margin-bottom: var(--s-md);
}
.fund-size-grid p {
  color: var(--ridge);
  font-size: 1.05rem;
  line-height: 1.55;
  margin-bottom: 0;
}
.section-head { max-width: 64ch; margin-bottom: 60px; }
.section-head .h2 { margin-top: 0; }
.section-head p { margin-top: var(--s-lg); }
.section-head--compact { max-width: 52ch; margin-bottom: 60px; }
.h2--module { font-size: clamp(1.65rem, 2.35vw, 2.2rem); line-height: 1.12; }

/* split layout */
.split { display: grid; grid-template-columns: 1fr 1.15fr; gap: clamp(40px, 6vw, 96px); align-items: start; }
.split--sticky .split__aside { position: sticky; top: 104px; }
.split__aside .h2 + .muted { margin-top: var(--s-lg); }
#enquire .container {
  max-width: min(1380px, calc(100vw - (var(--gutter) * 2)));
}
.contact-split {
  grid-template-columns: minmax(220px, 0.65fr) minmax(0, 1.75fr);
  gap: clamp(32px, 5vw, 72px);
}
.contact-form-wrap,
.contact-form {
  min-width: 0;
  width: 100%;
}
.projects-cta { padding-top: 0; }

/* ---------- FOUNDER PORTAL ---------- */
.founder-portal-hero,
.investor-portal-hero,
.portal-login-hero {
  min-height: 800px;
  height: auto;
}
.founder-portal__inner,
.investor-portal__inner,
.portal-login__inner {
  display: grid;
  align-content: center;
}
.founder-portal__inner,
.investor-portal__inner {
  gap: clamp(78px, 9vh, 112px);
}
.portal-login__inner {
  gap: 60px;
}
.founder-portal__head,
.investor-portal__head {
  max-width: 62ch;
}
.founder-module-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--s-lg);
}
.founder-module-card,
.portal-login-card {
  background: rgba(var(--vellum-rgb),0.92);
  border: 1px solid rgba(215,222,228,0.92);
  border-radius: var(--radius-lg);
  color: var(--ink);
}
.founder-module-card {
  min-height: 190px;
  padding: clamp(24px, 2.4vw, 34px);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: var(--s-lg);
}
.founder-module-card .h3 {
  color: var(--ink);
  max-width: 12ch;
}
.founder-module-card > p:not(.project__scale) {
  color: var(--ridge);
  margin-bottom: 0;
  font-size: 0.98rem;
}
.founder-module-card p:last-child {
  color: var(--ridge);
  margin-bottom: 0;
  font-size: 0.98rem;
}
.founder-module-link {
  align-self: flex-start;
  margin-top: auto;
}
.founder-module-links {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  margin-top: auto;
}
.founder-module-links .founder-module-link {
  margin-top: 0;
}
.founder-portal-hero .founder-module-grid,
.investor-portal-hero .founder-module-grid {
  grid-auto-rows: minmax(310px, 1fr);
  align-items: stretch;
}
.founder-portal-hero .founder-module-card,
.investor-portal-hero .founder-module-card {
  height: 100%;
  justify-content: flex-start;
  align-items: flex-start;
}
.founder-portal-hero .founder-module-link,
.founder-portal-hero .founder-module-links,
.investor-portal-hero .founder-module-link,
.investor-portal-hero .founder-module-links {
  margin-top: 0;
}
.portal-logout {
  margin: 0;
}
.portal-login__inner {
  justify-items: start;
}
.portal-login-card {
  width: min(100%, 520px);
  padding: clamp(28px, 4vw, 48px);
}
.portal-login-card .h2 {
  color: var(--ink);
}
.portal-login-card .lede {
  color: var(--ridge);
}
.portal-login-form {
  display: grid;
  gap: var(--s-md);
  margin-top: var(--s-xl);
}
.portal-login-form label {
  font-family: var(--mono);
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ridge);
}
.portal-login-form input {
  width: 100%;
  min-height: 50px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 0 14px;
  font: inherit;
  color: var(--ink);
  background: var(--vellum);
}
.portal-login-error,
.portal-config-error {
  display: none;
  margin: var(--s-lg) 0 0;
  color: var(--status-err);
  font-size: 0.96rem;
}
.portal-login-failed .portal-login-error,
.portal-login-config-missing .portal-config-error {
  display: block;
}

/* ---------- PRESENTATION ---------- */
.presentation-page {
  --presentation-site-header-height: 88px;
  --presentation-nav-height: 58px;
  --presentation-offset: calc(var(--presentation-site-header-height) + var(--presentation-nav-height));
  background: var(--deep-900);
  overflow: hidden;
}
.presentation-page .site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
}
.presentation-header {
  position: fixed;
  top: var(--presentation-site-header-height);
  left: 0;
  right: 0;
  z-index: 45;
  min-height: 58px;
  display: grid;
  grid-template-columns: 1fr;
  align-items: center;
  padding: 10px clamp(18px, 3vw, 44px);
  background: rgba(15,35,53,0.96);
  color: var(--mist);
  border-top: 1px solid rgba(255,255,255,0.08);
  border-bottom: 1px solid rgba(255,255,255,0.12);
  box-shadow: 0 8px 24px rgba(5,16,26,0.22);
}
.presentation-title {
  font-family: var(--mono);
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(237,241,244,0.74);
  white-space: nowrap;
}
.presentation-nav {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;
  overflow-x: auto;
  scrollbar-width: none;
}
.presentation-nav::-webkit-scrollbar {
  display: none;
}
.presentation-nav__button {
  border: 1px solid rgba(237,241,244,0.24);
  border-radius: var(--radius);
  background: rgba(var(--vellum-rgb),0.06);
  color: rgba(237,241,244,0.82);
  min-height: 38px;
  padding: 0 12px;
  font-family: var(--mono);
  font-size: 0.66rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
  transition: color var(--dur-micro), background var(--dur-micro), border-color var(--dur-micro);
}
.presentation-nav__button:hover,
.presentation-nav__button:focus-visible,
.presentation-nav__button.is-active {
  color: var(--ink);
  background: var(--brass);
  border-color: var(--brass);
  outline: 0;
}
.presentation-shell {
  position: relative;
  height: calc(100svh - var(--presentation-offset));
  min-height: 0;
  overflow: hidden;
  margin-top: var(--presentation-offset);
  padding-top: 0;
}
.presentation-track {
  width: 100%;
  height: 100%;
  display: flex;
  transform: translate3d(calc(var(--slide-index) * -100%), 0, 0);
  transition: transform 720ms cubic-bezier(0.19, 1, 0.22, 1);
  will-change: transform;
}
.presentation-slide {
  flex: 0 0 100%;
  min-width: 100%;
  height: 100%;
  display: grid;
  place-items: center;
  padding-block: clamp(14px, 2vh, 28px);
  padding-inline: clamp(62px, 6vw, 96px);
  background: var(--vellum);
  box-shadow: inset 0 1px 0 rgba(5,16,26,0.16), inset 0 -1px 0 rgba(5,16,26,0.12);
  overflow: hidden;
  scrollbar-width: thin;
  scrollbar-color: rgba(81,103,122,0.5) transparent;
}
.presentation-slide--scroll {
  overflow-y: auto;
}
.presentation-slide--content {
  place-items: stretch;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.presentation-slide--accolades {
  align-content: center;
}
.presentation-slide--map {
  padding: 0;
  overflow: hidden;
}
.presentation-slide--title {
  background-image: var(--blue-surface-bg);
  background-size: var(--blue-surface-bg-size);
  background-position: var(--blue-surface-bg-position);
  background-repeat: no-repeat;
  color: var(--paper);
  box-shadow: var(--elevation-surface-inset);
}
.presentation-title-panel {
  position: relative;
  width: min(100%, 1120px);
  height: 100%;
  margin-inline: auto;
  display: grid;
  align-content: center;
}
.presentation-title-copy {
  max-width: none;
}
.presentation-title-copy .eyebrow {
  color: var(--brass-300);
}
.presentation-title-copy h1 {
  color: var(--white-headline-color);
  font-family: var(--display);
  font-size: clamp(2.9rem, 7.4vw, 6.4rem);
  font-weight: var(--w-display);
  line-height: 0.95;
  letter-spacing: 0;
  white-space: nowrap;
  text-wrap: nowrap;
}
.presentation-title-copy p:not(.eyebrow) {
  margin: clamp(12px, 2vh, 22px) 0 0;
  color: rgba(237,241,244,0.86);
  font-size: clamp(1.25rem, 2.2vw, 1.7rem);
}
.presentation-title-stats {
  margin-top: clamp(28px, 5vh, 56px);
  gap: clamp(24px, 4vw, 56px);
}
.presentation-title-stats .stat__num {
  color: var(--brass-300);
  font-size: clamp(2rem, 4.6vw, 3.85rem);
  letter-spacing: 0;
}
.presentation-title-stats .stat__label {
  color: rgba(237,241,244,0.78);
  max-width: 18ch;
}
.presentation-title-qr {
  position: absolute;
  top: clamp(18px, 4vh, 42px);
  right: 0;
  width: clamp(92px, 10vw, 150px);
  margin: 0;
  padding: 10px;
  background: var(--vellum);
  border: 1px solid rgba(237,241,244,0.32);
  border-radius: var(--radius);
  box-shadow: 0 16px 34px rgba(2,10,18,0.28);
}
.presentation-title-qr img {
  display: block;
  width: 100%;
  height: auto;
}
.presentation-title-qr figcaption {
  width: 100%;
  max-width: 100%;
  margin-top: 6px;
  color: var(--deep-900);
  font-family: var(--sans);
  font-size: 0.68rem;
  font-weight: 800;
  line-height: 1;
  letter-spacing: 0;
  text-align: center;
  white-space: nowrap;
}
.presentation-panel {
  width: min(100%, 1340px);
  height: 100%;
  min-height: 0;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: clamp(8px, 1.3vh, 16px);
}
.presentation-panel--proof,
.presentation-panel--structure,
.presentation-panel--register {
  justify-content: center;
}
.presentation-panel--structure {
  justify-content: flex-start;
  gap: clamp(6px, 1vh, 12px);
  padding-top: clamp(4px, 1.2vh, 16px);
}
.presentation-panel--proof {
  gap: clamp(24px, 4vh, 46px);
}
.presentation-panel--accolades {
  height: 100%;
  min-height: 0;
  justify-content: center;
  gap: clamp(16px, 2.4vh, 30px);
}
.presentation-panel__head {
  max-width: 860px;
}
.presentation-panel__head--split {
  max-width: none;
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(280px, 0.72fr);
  gap: clamp(18px, 3vw, 46px);
  align-items: center;
}
.presentation-panel__head--center {
  max-width: 900px;
  margin-inline: 0;
  text-align: left;
}
.presentation-panel__head .eyebrow {
  color: var(--brass-600);
}
.presentation-panel__head .lede {
  margin-top: clamp(6px, 1vh, 10px);
  color: var(--ridge);
}
.presentation-display {
  font-family: var(--display);
  font-weight: var(--w-display);
  font-size: clamp(1.9rem, 3.35vw, 3.45rem);
  line-height: 1.04;
  letter-spacing: 0;
  color: var(--ink);
  margin: 0;
  text-wrap: balance;
}
.presentation-accolades {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-auto-rows: minmax(82px, 1fr);
  grid-auto-flow: row;
  gap: clamp(7px, 1vh, 10px) clamp(12px, 1.6vw, 20px);
  align-items: stretch;
  align-content: center;
}
.presentation-card {
  background: rgba(var(--vellum-rgb),0.72);
  border: 1px solid rgba(215,222,228,0.95);
  border-radius: var(--radius-lg);
  padding: clamp(10px, 1vw, 14px);
  box-shadow: 0 16px 34px rgba(15,35,53,0.12), 0 3px 10px rgba(15,35,53,0.08);
  transition: transform 260ms var(--ease-out), border-color 260ms var(--ease-out), background-color 260ms var(--ease-out), box-shadow 260ms var(--ease-out);
}
.presentation-card:hover {
  transform: translateY(-7px) scale(1.012);
  border-color: rgba(168,126,61,0.62);
  background: rgba(var(--vellum-rgb),0.84);
  box-shadow: 0 24px 52px rgba(15,35,53,0.18), 0 7px 18px rgba(15,35,53,0.10);
}
.presentation-card--award {
  min-height: 82px;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: 2px;
}
.presentation-card--award h2,
.presentation-card--register h2 {
  font-family: var(--display);
  font-size: clamp(0.88rem, 1vw, 1rem);
  font-weight: var(--w-title);
  line-height: 1.15;
  color: var(--ink);
  margin: 0;
  letter-spacing: 0;
  text-wrap: balance;
}
.presentation-card--award p,
.presentation-card--flow span,
.presentation-card--note span,
.presentation-card--register span {
  font-family: var(--mono);
  font-size: 0.66rem;
  line-height: 1.3;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--brass-600);
  margin: 0;
}
.presentation-metrics {
  flex: 0 1 auto;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-template-rows: repeat(2, minmax(108px, auto));
  gap: clamp(16px, 2.1vw, 28px);
  align-items: stretch;
  align-content: center;
  min-height: 0;
}
.presentation-card--metric {
  min-height: 0;
  padding: clamp(16px, 1.55vw, 24px);
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 6px;
  background: rgba(var(--vellum-rgb),0.76);
}
.presentation-card--metric strong {
  display: block;
  font-family: var(--display);
  font-size: clamp(1.7rem, 3.2vw, 3.1rem);
  font-weight: var(--w-display);
  line-height: 0.98;
  color: var(--ink);
  letter-spacing: 0;
}
.presentation-card--metric span {
  font-family: var(--mono);
  font-size: 0.72rem;
  line-height: 1.3;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--ridge);
}
.presentation-flow {
  flex: 0 1 auto;
  display: grid;
  grid-template-columns: minmax(280px, 0.9fr) minmax(360px, 1.1fr);
  grid-template-rows: 1fr auto;
  gap: clamp(6px, 0.9vw, 10px);
  align-items: stretch;
  position: relative;
  min-height: 0;
}
.presentation-flow::before {
  content: "";
  position: absolute;
  left: 31%;
  right: 31%;
  top: 39%;
  border-top: 1px solid rgba(168,126,61,0.62);
  z-index: 0;
}
.presentation-flow__sources,
.presentation-flow__outcome {
  position: relative;
  z-index: 1;
}
.presentation-flow__sources {
  display: grid;
  gap: clamp(6px, 0.85vh, 9px);
}
.presentation-card--flow {
  min-height: 0;
  display: grid;
  align-content: center;
  gap: 3px;
}
.presentation-card--flow strong,
.presentation-card--residential strong,
.presentation-card--note h2 {
  font-family: var(--display);
  font-weight: var(--w-display);
  color: var(--ink);
  line-height: 1.04;
  letter-spacing: 0;
  margin: 0;
}
.presentation-card--flow strong {
  font-size: clamp(1.45rem, 2.3vw, 2.45rem);
}
.presentation-card--flow p {
  margin: 0;
  color: var(--ridge);
  line-height: 1.25;
}
.presentation-card--note {
  height: 100%;
  min-height: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 6px;
  background: rgba(var(--vellum-rgb),0.82);
  border-color: rgba(168,126,61,0.58);
}
.presentation-card--note h2 {
  font-size: clamp(1.45rem, 2.5vw, 2.6rem);
  max-width: 13ch;
}
.presentation-note-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
  padding-top: 6px;
  border-top: 1px solid rgba(168,126,61,0.34);
}
.presentation-note-grid p {
  margin: 0;
  color: var(--ridge);
  line-height: 1.25;
}
.presentation-note-grid strong {
  font-family: var(--display);
  font-size: clamp(1.05rem, 1.45vw, 1.45rem);
  color: var(--ink);
}
.presentation-card--residential {
  grid-column: 1 / -1;
  margin-top: 60px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 6px;
  min-height: 136px;
  background: rgba(15,35,53,0.08);
  border-style: dashed;
  text-align: left;
}
.presentation-card--residential strong {
  font-size: clamp(1.05rem, 1.35vw, 1.35rem);
  max-width: 76ch;
}
.presentation-card--residential span {
  font-weight: 700;
  color: var(--ridge);
}
.presentation-card--residential ol {
  margin: 0;
  padding-left: 1.2rem;
  display: grid;
  grid-template-columns: 1fr;
  row-gap: 3px;
  color: var(--ridge);
  line-height: 1.28;
}
.presentation-panel--map {
  display: grid;
  grid-template-rows: minmax(0, 1fr);
  gap: 0;
  align-items: stretch;
  position: relative;
  width: 100%;
  height: 100%;
  max-width: none;
  min-height: 0;
}
.presentation-map-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.presentation-map-copy .eyebrow {
  color: var(--brass-600);
}
.presentation-map-stats {
  position: absolute;
  z-index: 3;
  top: clamp(14px, 2.2vh, 28px);
  right: clamp(58px, 5vw, 86px);
  display: grid;
  grid-template-columns: repeat(2, max-content);
  justify-content: end;
  align-items: start;
  gap: clamp(16px, 1.8vw, 28px);
  width: auto;
  margin: 0;
  padding: 0;
}
.presentation-map-stats .presentation-card {
  min-height: 0;
  padding: 0;
  gap: 2px;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
.presentation-map-stats .presentation-card:hover {
  transform: none;
  border-color: transparent;
  background: transparent;
  box-shadow: none;
}
.presentation-map-stats .presentation-card--metric strong {
  font-size: clamp(0.85rem, 1.7vw, 1.55rem);
  line-height: 0.96;
}
.presentation-map-stats .presentation-card--metric span {
  max-width: 18ch;
  font-size: 0.52rem;
  line-height: 1.22;
  letter-spacing: 0.12em;
}
.presentation-map-frame {
  position: relative;
  margin: 0;
  min-height: 0;
  width: 100%;
  height: 100%;
  display: grid;
  place-items: center;
  background: transparent;
  border: 0;
  border-radius: 0;
  overflow: hidden;
}
.presentation-map-frame img {
  display: block;
  justify-self: center;
  align-self: center;
  width: min(100%, calc((100svh - var(--presentation-offset)) * 1.50685));
  height: auto;
  max-width: 100%;
  max-height: calc(100svh - var(--presentation-offset));
  object-fit: contain;
  object-position: center;
  transform: none;
  background: transparent;
}
.presentation-panel--register {
  justify-content: center;
  gap: clamp(22px, 4vh, 42px);
}
.presentation-panel--register .presentation-panel__head {
  max-width: 980px;
}
.presentation-register-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-auto-rows: minmax(150px, 1fr);
  gap: clamp(18px, 2.4vw, 30px);
  align-items: stretch;
}
.presentation-card--register {
  min-height: 150px;
  padding: clamp(22px, 2vw, 30px);
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: clamp(13px, 1.4vw, 18px);
  background: rgba(var(--vellum-rgb),0.76);
}
.presentation-card--register span {
  width: 100%;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(168,126,61,0.28);
}
.presentation-card--register h2 {
  max-width: 24ch;
  font-size: clamp(1.28rem, 1.65vw, 1.85rem);
  line-height: 1.12;
  text-align: left;
}
.presentation-slide--photo {
  position: relative;
  overflow: hidden;
  place-items: start start;
  background-image: var(--blue-surface-bg);
  background-size: var(--blue-surface-bg-size);
  background-position: var(--blue-surface-bg-position);
  background-repeat: no-repeat;
  color: var(--mist);
  box-shadow: var(--elevation-surface-inset);
  padding: 0;
  cursor: pointer;
}
.presentation-photo-carousel {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.presentation-photo-carousel::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: var(--blue-media-warp);
  background-size: var(--blue-media-warp-size);
  background-position: var(--blue-media-warp-position);
  background-repeat: no-repeat;
}
.presentation-photo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transform: scale(1);
  transition: opacity 1200ms cubic-bezier(0.19, 1, 0.22, 1), transform 5200ms ease-out;
}
.presentation-photo.is-active {
  opacity: 1;
  transform: scale(1.06);
}
.presentation-slide--photo::after {
  display: none;
}
.presentation-photo-copy {
  position: relative;
  z-index: 2;
  width: min(100%, 520px);
  margin-left: clamp(24px, 7vw, 96px);
  margin-top: clamp(24px, 6vh, 64px);
  padding-right: var(--gutter);
}
.presentation-photo-captions {
  position: relative;
  min-height: 138px;
}
.presentation-photo-caption {
  position: absolute;
  inset: 0 auto auto 0;
  width: min(100%, 460px);
  opacity: 0;
  transform: translateY(12px);
  transition: opacity 600ms var(--ease-out), transform 600ms var(--ease-out);
  background: rgba(248,243,234,0.94);
  border: 1px solid rgba(215,222,228,0.92);
  border-radius: var(--radius-lg);
  padding: clamp(16px, 2vw, 24px);
  box-shadow: 0 18px 42px rgba(5,16,26,0.20), 0 5px 14px rgba(5,16,26,0.12);
  transition: opacity 600ms var(--ease-out), transform 600ms var(--ease-out), border-color 260ms var(--ease-out), background-color 260ms var(--ease-out), box-shadow 260ms var(--ease-out);
  pointer-events: none;
}
.presentation-photo-caption.is-active {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}
.presentation-photo-caption.is-active:hover {
  transform: translateY(-7px) scale(1.012);
  border-color: rgba(168,126,61,0.62);
  background: rgba(248,243,234,0.98);
  box-shadow: 0 26px 58px rgba(5,16,26,0.26), 0 9px 20px rgba(5,16,26,0.14);
}
.presentation-photo-caption__subhead {
  font-family: var(--mono);
  font-size: 0.68rem;
  line-height: 1.45;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--brass-600);
  margin: 0 0 var(--s-md);
}
.presentation-photo-caption__body {
  max-width: 32ch;
  margin: 0;
  color: var(--ink);
  font-size: clamp(1.08rem, 1.4vw, 1.32rem);
  line-height: 1.38;
}
.presentation-panel--qr {
  display: grid;
  grid-template-columns: minmax(0, 640px);
  align-content: center;
  justify-content: center;
  justify-items: center;
  gap: clamp(22px, 4vh, 44px);
}
.presentation-qr-copy {
  max-width: 760px;
  text-align: center;
  justify-self: center;
}
.presentation-qr-copy .eyebrow {
  color: var(--brass-600);
}
.presentation-qr-copy .lede {
  color: var(--ridge);
  margin-top: var(--s-lg);
  margin-inline: auto;
}
.presentation-qr-copy .presentation-display {
  text-align: center;
}
.presentation-qr-card {
  margin: 0;
  justify-self: center;
  width: min(100%, 440px, 48svh);
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  padding: clamp(18px, 2.3vw, 30px);
  background: var(--vellum);
  border: 1px solid rgba(215,222,228,0.95);
  border-radius: var(--radius-lg);
  box-shadow: 0 18px 42px rgba(15,35,53,0.14), 0 5px 14px rgba(15,35,53,0.08);
  transition: transform 260ms var(--ease-out), border-color 260ms var(--ease-out), box-shadow 260ms var(--ease-out);
}
.presentation-qr-card:hover {
  transform: translateY(-7px) scale(1.012);
  border-color: rgba(168,126,61,0.62);
  box-shadow: 0 26px 58px rgba(15,35,53,0.22), 0 9px 20px rgba(15,35,53,0.12);
}
.presentation-qr-card img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.presentation-arrow {
  position: fixed;
  z-index: 62;
  top: calc(var(--presentation-offset) + ((100svh - var(--presentation-offset)) / 2));
  width: clamp(42px, 4vw, 54px);
  height: clamp(42px, 4vw, 54px);
  display: grid;
  place-items: center;
  border: 1px solid rgba(237,241,244,0.28);
  border-radius: 50%;
  background: rgba(15,35,53,0.72);
  color: var(--paper);
  font-family: var(--display);
  font-size: clamp(2rem, 3vw, 2.8rem);
  line-height: 1;
  cursor: pointer;
  transform: translateY(-50%);
  transition: background var(--dur-micro), border-color var(--dur-micro), color var(--dur-micro), opacity var(--dur-micro);
}
.presentation-arrow:hover,
.presentation-arrow:focus-visible {
  background: var(--brass);
  border-color: var(--brass);
  color: var(--ink);
  outline: 0;
}
.presentation-arrow:disabled {
  opacity: 0.28;
  pointer-events: none;
}
.presentation-arrow--prev {
  left: clamp(10px, 1.5vw, 24px);
}
.presentation-arrow--next {
  right: clamp(10px, 1.5vw, 24px);
}
@media (max-width: 1180px) {
  .presentation-accolades,
  .presentation-metrics,
  .presentation-register-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .presentation-panel__head--split,
  .presentation-panel--map,
  .presentation-panel--qr {
    grid-template-columns: 1fr;
  }
  .presentation-accolades {
    grid-auto-rows: minmax(86px, auto);
  }
}
@media (max-width: 860px) {
  .presentation-slide--accolades {
    align-content: start;
  }
  .presentation-panel--accolades {
    height: auto;
    min-height: 100%;
    justify-content: flex-start;
    padding-block: 18px;
  }
  .presentation-accolades {
    grid-template-columns: 1fr;
  }
  .presentation-accolades {
    grid-template-rows: none;
    grid-auto-rows: auto;
    grid-auto-flow: row;
  }
  .presentation-card--award {
    min-height: auto;
  }
  .presentation-flow {
    grid-template-columns: 1fr;
  }
  .presentation-flow::before {
    display: none;
  }
  .presentation-map-stats {
    top: 12px;
    right: auto;
    left: 16px;
    grid-template-columns: 1fr;
    justify-content: start;
    gap: 6px;
    width: auto;
    max-width: 13ch;
    padding: 0;
  }
  .presentation-card--residential {
    align-items: flex-start;
    flex-direction: column;
  }
}

/* ---------- CARDS ---------- */
.card {
  background: var(--vellum);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  padding: var(--s-xl);
  transition: transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out);
}
.card:hover { box-shadow: var(--shadow-md); border-color: var(--ridge); }
/* fund cards */
.fund {
  display: flex; flex-direction: column;
  min-height: 280px;
  position: relative;
}
.fund__status {
  font-family: var(--mono);
  font-size: 0.66rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  display: inline-flex; align-items: center; gap: 0.5em;
  padding: 5px 10px;
  border-radius: 999px;
  align-self: flex-start;
}
.fund__status--active { background: rgba(168,126,61,0.12); color: var(--brass-600); }
.fund__status--soon { background: rgba(81,103,122,0.1); color: var(--ridge); }
.fund__status .dot { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.fund__name { font-family: var(--display); font-size: 1.5rem; margin: var(--s-lg) 0 var(--s-sm); color: var(--ink); }
.fund__desc { color: var(--ridge); font-size: 0.98rem; flex: 1; }
.fund__foot { margin-top: var(--s-lg); padding-top: var(--s-md); border-top: 1px solid var(--line); font-family: var(--mono); font-size: 0.72rem; letter-spacing: 0.04em; color: var(--ridge); text-transform: uppercase; }
/* white cards on dark surfaces: re-assert dark text (beats .surface-deep h/p specificity) */
.surface-deep .card .fund__name { color: var(--ink); }
.surface-deep .card .fund__desc { color: var(--ridge); }
.fund--soon { background: transparent; border-style: dashed; }
.fund--soon .fund__name { color: var(--ridge); }
/* dashed "coming soon" cards sit on the dark surface: keep all text AA on deep */
.surface-deep .fund--soon .fund__name { color: rgba(237,241,244,0.92); }
.surface-deep .fund--soon .fund__desc { color: rgba(237,241,244,0.70); }
.surface-deep .fund--soon .fund__foot { color: rgba(237,241,244,0.60); border-top-color: var(--line-dark); }

/* feature list (rolling admissions etc.) */
.features { display: grid; gap: var(--s-md); list-style: none; padding: 0; margin: 0; }
.feature { display: flex; gap: var(--s-md); align-items: flex-start; }
.feature__icon { flex: none; width: 40px; height: 40px; color: var(--brass-600); }
.feature__title { font-family: var(--display); font-size: 1.2rem; margin: 0 0 4px; }
.feature__body { color: var(--ridge); font-size: 0.96rem; margin: 0; }

/* ---------- PROJECT CARDS ---------- */
.project {
  background: var(--vellum);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  overflow: hidden;
  display: flex; flex-direction: column;
  position: relative;
  isolation: isolate;
  box-shadow: 0 1px 0 rgba(5,16,26,0.05);
  transition: transform 420ms cubic-bezier(0.19, 1, 0.22, 1), box-shadow 420ms cubic-bezier(0.19, 1, 0.22, 1), border-color 420ms cubic-bezier(0.19, 1, 0.22, 1);
}
.project::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  box-shadow: inset 0 0 0 1px rgba(200,168,110,0);
  transition: box-shadow 420ms cubic-bezier(0.19, 1, 0.22, 1);
}
.project:hover {
  transform: translateY(-8px);
  border-color: rgba(200,168,110,0.58);
  box-shadow: 0 22px 48px rgba(5,16,26,0.24), 0 4px 12px rgba(5,16,26,0.12);
}
.project:hover::after { box-shadow: inset 0 0 0 1px rgba(200,168,110,0.52); }
.project__media {
  aspect-ratio: 16 / 10;
  background: var(--deep);
  position: relative;
  overflow: hidden;
}
.project__media::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(135deg, rgba(255,255,255,0.16), rgba(255,255,255,0) 42%);
  opacity: 0;
  transition: opacity 420ms cubic-bezier(0.19, 1, 0.22, 1);
}
.project:hover .project__media::after { opacity: 1; }
.project__media img {
  width: 100%; height: 100%;
  object-fit: cover; display: block;
  transition: transform 900ms cubic-bezier(0.19, 1, 0.22, 1);
}
.project:hover .project__media img { transform: scale(1.06); }
.project__body { padding: var(--s-xl); display: flex; flex-direction: column; gap: var(--s-sm); flex: 1; }
.project__cats { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: var(--s-xs); }
.tag {
  font-family: var(--mono);
  font-size: 0.64rem; letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--ridge);
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 3px 9px;
}
.project__name { font-family: var(--display); font-size: 1.45rem; color: var(--ink); }
.surface-deep .project .project__name { color: var(--ink); }
.surface-deep .project .project__desc { color: var(--ridge); }
.project__scale { font-family: var(--mono); font-size: 0.74rem; letter-spacing: 0.08em; color: var(--brass-600); text-transform: uppercase; }
.project__desc { color: var(--ridge); font-size: 0.95rem; margin: 0; }
.project__links {
  margin-top: var(--s-md);
  padding-top: var(--s-md);
  border-top: 1px solid var(--line);
  display: flex;
  flex-wrap: wrap;
  gap: 10px 18px;
  align-items: center;
}
.text-link {
  display: inline-flex;
  align-items: center;
  gap: 0.45em;
  font-family: var(--mono);
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--brass-600);
  border-bottom: 1px solid rgba(168,126,61,0.36);
  transition: color var(--dur-micro) var(--ease-out), border-color var(--dur-micro) var(--ease-out);
}
.text-link:hover {
  color: var(--ink);
  border-color: var(--brass);
}
.accolade {
  margin-top: auto;
  padding-top: var(--s-md);
  border-top: 1px solid var(--line);
  display: flex; gap: 10px; align-items: flex-start;
  font-size: 0.88rem; color: var(--ink);
}
.accolade svg { flex: none; width: 18px; height: 18px; color: var(--brass); margin-top: 2px; }

/* ---------- MCLEMORE FUND PAGE ---------- */
.mclemore-fund-page .section {
  padding-block: 60px;
}
.mclemore-fund-page .section--tight {
  padding-block: 60px;
}
.thesis-card,
.pipeline-card {
  min-height: 220px;
}
.thesis-card p {
  margin: var(--s-md) 0 0;
  color: var(--ridge);
  font-size: 0.96rem;
}
.thesis-card--image {
  padding: 0;
  overflow: hidden;
  min-height: 100%;
}
.thesis-card--image img {
  width: 100%;
  height: 100%;
  min-height: 260px;
  object-fit: cover;
}
.surface-deep .thesis-card h3,
.surface-deep .pipeline-card h2,
.surface-deep .pipeline-card h3 {
  color: var(--ink);
}
.surface-deep .thesis-card p,
.surface-deep .pipeline-card p {
  color: var(--ridge);
}
.structure-list {
  display: grid;
  gap: var(--s-lg);
}
.structure-card {
  display: grid;
  grid-template-columns: minmax(180px, 0.35fr) 1fr;
  gap: var(--s-lg);
  align-items: start;
}
.structure-card p {
  margin: 0;
  color: var(--ridge);
}
.capital-metrics {
  display: grid;
  gap: var(--s-lg);
  margin-top: var(--s-2xl);
  max-width: 420px;
}
.capital-list {
  list-style: none;
  padding: 0;
  margin: 0;
  border-top: 1px solid var(--line);
}
.capital-list li {
  position: relative;
  padding: var(--s-lg) 0 var(--s-lg) 34px;
  border-bottom: 1px solid var(--line);
  color: var(--ink);
}
.capital-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 1.95em;
  width: 10px;
  height: 10px;
  border: 1px solid var(--brass);
  background: var(--vellum);
  transform: rotate(45deg);
}
.module-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--s-lg);
}
.text-module {
  min-height: 170px;
  display: flex;
  flex-direction: column;
  gap: var(--s-md);
}
.text-module p {
  margin: 0;
  color: var(--ridge);
}
.text-module--wide {
  grid-column: 1 / -1;
}
.stack-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-auto-rows: minmax(260px, 1fr);
  gap: 24px;
}
.stack-card {
  min-height: 260px;
  display: flex;
  flex-direction: column;
  gap: var(--s-md);
  height: 100%;
  padding: 28px;
}
.stack-card p {
  color: var(--ridge);
  font-size: 0.95rem;
  margin: 0;
}
.stack-card__figure,
.stack-card__label {
  display: block;
  font-family: var(--display);
  font-size: clamp(1.65rem, 2.1vw, 2.15rem);
  font-weight: var(--w-display);
  line-height: 1.08;
  letter-spacing: -0.003em;
  color: var(--ink);
}
.stack-card--wide {
  grid-column: auto;
  min-height: 260px;
}
.surface-deep .stack-card .project__scale { color: var(--brass-600); }
.surface-deep .stack-card p { color: var(--ridge); }
.surface-deep .stack-card strong { color: var(--ink); }
.pipeline-card {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: 0;
  padding: 0;
  overflow: hidden;
}
.pipeline-card__media {
  aspect-ratio: 16 / 9;
  background: var(--deep);
  overflow: hidden;
}
.pipeline-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 900ms cubic-bezier(0.19, 1, 0.22, 1);
}
.pipeline-card:hover .pipeline-card__media img { transform: scale(1.05); }
.pipeline-card__body {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: var(--s-xl);
  padding: var(--s-xl);
}
.pipeline-card h2,
.pipeline-card h3 {
  max-width: 15ch;
}
.pipeline-card p {
  margin: 0;
  color: var(--ridge);
  font-size: 0.95rem;
}
.legal-note {
  margin-top: clamp(40px, 6vw, 72px);
  padding-top: 0;
}
.legal-note p {
  max-width: 100%;
  margin: 0;
  color: var(--ridge);
  font-family: var(--mono);
  font-size: 0.72rem;
  line-height: 1.55;
  letter-spacing: 0.03em;
}
.legal-note--standalone {
  margin-top: 0;
}

/* ---------- RECOGNITION (enterprise proof) ---------- */
.recognition-section,
.team-section {
  padding-block: 60px;
}
.recognition {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--s-md);
  align-items: stretch;
}
.recognition__item {
  min-height: 132px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: var(--s-lg);
  background: rgba(var(--vellum-rgb),0.72);
  border: 1px solid rgba(215,222,228,0.92);
  border-radius: var(--radius-lg);
  padding: clamp(18px, 1.8vw, 24px);
}
.recognition__award { font-family: var(--display); font-size: clamp(0.96rem, 1.15vw, 1.08rem); line-height: 1.16; color: var(--ink); margin: 0; }
.recognition__meta { font-family: var(--mono); font-size: 0.66rem; line-height: 1.45; letter-spacing: 0.09em; text-transform: uppercase; color: var(--ridge); margin: 0; }
@media (max-width: 1100px) { .recognition { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 780px) { .recognition { grid-template-columns: repeat(2, 1fr); gap: var(--s-lg); } }
@media (max-width: 460px) { .recognition { grid-template-columns: 1fr; } }

/* ---------- TEAM ---------- */
.team-group { display: grid; gap: var(--s-md); margin-bottom: var(--s-xl); }
.team-group:last-child { margin-bottom: 0; }
.team-group__label {
  font-family: var(--mono); font-size: 0.72rem; letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--brass-600); margin-bottom: 0;
  padding-bottom: var(--s-md); border-bottom: 1px solid var(--line);
  display: flex; align-items: baseline; justify-content: space-between;
}
.team-group__label .count { color: var(--ridge); }
.person {
  background: rgba(var(--vellum-rgb),0.72);
  border: 1px solid rgba(215,222,228,0.92);
  border-radius: var(--radius-lg);
  padding: clamp(22px, 2.5vw, 32px);
  display: grid;
  grid-template-columns: minmax(180px, 220px) 1fr;
  gap: clamp(24px, 3.5vw, 56px);
  align-items: start;
}
.person__id { }
.person__name { font-family: var(--display); font-size: clamp(1.16rem, 1.35vw, 1.36rem); line-height: 1.12; }
.person__role { font-family: var(--mono); font-size: 0.74rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--brass-600); margin-top: var(--s-sm); }
.person__org { color: var(--ridge); font-size: 0.84rem; margin-top: 2px; }
.person__bio { color: var(--ink); max-width: 70ch; }
.person--lead { padding: clamp(24px, 3vw, 40px); margin-bottom: 0; }
.person--lead .person__name { font-size: clamp(1.38rem, 2.05vw, 1.8rem); }

/* ---------- FORM ---------- */
.field { display: flex; flex-direction: column; gap: 8px; margin-bottom: var(--s-lg); }
.field label { font-family: var(--mono); font-size: 0.72rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ridge); }
.input, .textarea, .select {
  font-family: var(--serif); font-size: 1.05rem; color: var(--ink);
  background: var(--vellum);
  border: 1px solid var(--line); border-radius: var(--radius);
  padding: 14px 16px; width: 100%;
  transition: border-color var(--dur-micro) var(--ease-out), box-shadow var(--dur-micro) var(--ease-out);
}
.input:focus, .textarea:focus, .select:focus { outline: none; border-color: var(--brass); box-shadow: 0 0 0 3px rgba(168,126,61,0.15); }
.textarea { min-height: 140px; resize: vertical; }
.input:disabled, .textarea:disabled, .select:disabled {
  background: var(--mist);
  color: var(--ridge);
  cursor: not-allowed;
  border-color: var(--line);
}
.field--error .input, .field--error .textarea, .field--error .select { border-color: var(--status-err); }
.field--error .input:focus { box-shadow: 0 0 0 3px rgba(178,59,59,0.15); }
.field__error { color: var(--status-err); font-size: 0.82rem; font-family: var(--mono); letter-spacing: 0.02em; }
.field--honeypot {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
  margin: 0;
}
.form-status {
  min-height: 1.35em;
  margin: var(--s-md) 0 0;
  font-family: var(--mono);
  font-size: 0.78rem;
  letter-spacing: 0.04em;
  color: var(--ridge);
}
.form-status[data-state="success"] { color: var(--brass-600); }
.form-status[data-state="error"] { color: var(--status-err); }
.contact-form.is-sending .btn { opacity: 0.78; cursor: progress; }
.contact-form .btn:disabled { opacity: 0.78; cursor: progress; }

/* ---------- FOOTER ---------- */
.site-footer {
  position: relative;
  z-index: 4;
  isolation: isolate;
  overflow: visible;
  display: flex;
  align-items: stretch;
  min-height: 300px;
  background-image: var(--blue-chrome-bg);
  background-size: var(--blue-surface-bg-size);
  background-position: var(--blue-surface-bg-position);
  background-repeat: no-repeat;
  border-top: 1px solid rgba(237,241,244,0.18);
  color: rgba(237,241,244,0.7);
  padding-block: 40px 24px;
  clip-path: var(--elevation-clip);
  box-shadow: var(--elevation-3), var(--elevation-edge-highlight), var(--elevation-surface-inset);
}
.site-footer::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: none;
}
.site-footer::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: none;
}
.site-footer > .container {
  position: relative;
  z-index: 2;
  width: 100%;
  min-height: 236px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.site-footer a { color: rgba(237,241,244,0.7); transition: color var(--dur-micro), background var(--dur-micro), border-color var(--dur-micro); }
.site-footer a:hover { color: var(--brass-300); }
.footer-grid { display: flex; flex-direction: row-reverse; align-items: flex-start; justify-content: space-between; gap: var(--s-xl); margin-bottom: 0; }
.footer__brand .brandmark { margin-bottom: 0; }
.footer__brand .brandmark__img {
  height: 40px;
  filter: drop-shadow(0 2px 2px rgba(2,10,18,0.46)) drop-shadow(0 0 1px rgba(255,235,180,0.22));
}
.footer__nav { display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-start; gap: 8px; padding-top: 2px; text-align: left; font-family: var(--mono); font-size: 0.75rem; letter-spacing: 0.06em; text-transform: uppercase; }
.footer__legal { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: flex-start; gap: var(--s-sm) var(--s-xl); text-align: left; font-family: var(--mono); font-size: 0.72rem; letter-spacing: 0.06em; color: rgba(237,241,244,0.5); }
/* white reverse wordmark in the footer */
.footer__logo { height: 30px; width: auto; display: block; margin-bottom: var(--s-md); }

/* ---------- EDITORIAL IMAGE BAND (full-bleed photograph + quote) ---------- */
.image-band {
  position: relative;
  min-height: clamp(420px, 60vh, 620px);
  display: flex; align-items: flex-end;
  overflow: hidden;
  color: var(--paper);
}
.image-band img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.image-band::after {
  content: ""; position: absolute; inset: 0; z-index: 1;
  background: var(--blue-media-warp);
  background-size: var(--blue-media-warp-size);
  background-position: var(--blue-media-warp-position);
  background-repeat: no-repeat;
}
.image-band__inner { position: relative; z-index: 2; width: 100%; padding-block: 60px; }
.image-band__quote {
  font-family: var(--display);
  font-size: clamp(1.6rem, 3.4vw, 2.9rem);
  line-height: 1.18; font-weight: 500; color: var(--vellum);
  max-width: 22ch; margin: 0;
  text-shadow: var(--white-headline-shadow);
}
.image-band__cite { font-family: var(--serif); font-style: italic; color: rgba(237,241,244,0.96); margin-top: var(--s-md); font-size: 1.1rem; font-weight: 500; text-shadow: 0 2px 22px rgba(5,16,26,0.82), 0 0 2px rgba(5,16,26,0.72); }

/* ---------- UNIFIED HEADING SCALE (declared last so it governs every title) ----------
   Every card / item title is the SAME step (h3). Big quotes are section-level (h2).
   Figures use the stat step. No component sets its own heading size above this. */
.fund__name, .project__name, .person__name, .feature__title, .recognition__award {
  font-family: var(--display);
  font-size: var(--fs-h3);
  line-height: var(--lh-h3);
  letter-spacing: -0.003em;
  font-weight: var(--w-title);
}
.image-band__quote { font-size: var(--fs-h2); line-height: var(--lh-h2); font-weight: var(--w-display); }
.stat__num { font-size: var(--fs-stat); font-weight: var(--w-display); }

/* ---------- MOTION ---------- */
@keyframes fade-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
@keyframes rise { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: none; } }
@keyframes kenburns { from { transform: scale(1); } to { transform: scale(1.06); } }
@keyframes deep-gradient-drift {
  0% { background-position: var(--blue-surface-bg-position); }
  45% { background-position: var(--blue-surface-bg-position-mid); }
  72% { background-position: var(--blue-surface-bg-position-settle); }
  100% { background-position: var(--blue-surface-bg-position); }
}
@keyframes media-warp-drift {
  0% { background-position: var(--blue-media-warp-position); }
  45% { background-position: var(--blue-media-warp-position-mid); }
  72% { background-position: var(--blue-media-warp-position-settle); }
  100% { background-position: var(--blue-media-warp-position); }
}
@keyframes header-cloud-drift {
  0% { background-position: 50% 50%, 100% 50%; }
  50% { background-position: 46% 54%, 90% 46%; }
  100% { background-position: 50% 50%, 100% 50%; }
}
@keyframes chrome-warp-drift {
  0% { background-position: var(--blue-surface-bg-position); }
  45% { background-position: var(--blue-surface-bg-position-mid); }
  72% { background-position: var(--blue-surface-bg-position-settle); }
  100% { background-position: var(--blue-surface-bg-position); }
}

/* Richer CTA micro-interaction (purposeful, not decorative) */
.btn:hover { transform: translateY(-2px); }
.btn--brass { background-image: none; }
.btn--brass:hover { box-shadow: 0 10px 28px rgba(11,60,102,0.32); }
.card:hover { border-color: var(--brass); }
.section--vellum .btn,
.section:not(.surface-deep) .btn {
  background-image: none;
}
.section--vellum .project__media::after,
.section:not(.surface-deep) .project__media::after {
  background: none;
}
.section--vellum .card,
.section--vellum .card:hover,
.section--vellum .project,
.section--vellum .project:hover,
.section--vellum .btn:hover,
.section:not(.surface-deep) .card,
.section:not(.surface-deep) .card:hover,
.section:not(.surface-deep) .project,
.section:not(.surface-deep) .project:hover,
.section:not(.surface-deep) .btn:hover {
  box-shadow: none;
}

@media (hover: hover) and (pointer: fine) {
  :is(.card, .project, .feature, .recognition__item, .person, .stat, .accolade, .founder-module-card, .portal-login-card, .text-module, .structure-card, .stack-card, .thesis-card, .pipeline-card, .presentation-card, .presentation-photo-caption, .presentation-qr-card, .presentation-map-frame, .presentation-title-panel) {
    transition: transform 260ms var(--ease-out), border-color 260ms var(--ease-out), background-color 260ms var(--ease-out), box-shadow 260ms var(--ease-out);
    will-change: transform;
  }
  :is(.card, .project, .feature, .recognition__item, .person, .stat, .accolade, .founder-module-card, .portal-login-card, .text-module, .structure-card, .stack-card, .thesis-card, .pipeline-card, .presentation-card, .presentation-photo-caption, .presentation-qr-card, .presentation-map-frame, .presentation-title-panel):hover {
    transform: translateY(-7px) scale(1.012);
    border-color: rgba(168,126,61,0.62);
    box-shadow: 0 18px 42px rgba(5,16,26,0.16);
  }
  .section--vellum :is(.card, .project, .feature, .recognition__item, .person, .stat, .accolade, .founder-module-card, .portal-login-card, .text-module, .structure-card, .stack-card, .thesis-card, .pipeline-card):hover,
  .section:not(.surface-deep) :is(.card, .project, .feature, .recognition__item, .person, .stat, .accolade, .founder-module-card, .portal-login-card, .text-module, .structure-card, .stack-card, .thesis-card, .pipeline-card):hover {
    box-shadow: 0 18px 42px rgba(5,16,26,0.16);
  }
}

@media (prefers-reduced-motion: no-preference) {
  /* one choreographed hero entrance on load */
  .hero__inner > * { animation: rise 620ms var(--ease-out) backwards; }
  .hero .eyebrow   { animation-delay: 60ms; }
  .hero .display   { animation-delay: 140ms; }
  .hero .lede      { animation-delay: 240ms; }
  .hero__cta       { animation-delay: 340ms; }
  .hero__meta      { animation-delay: 440ms; }
  .surface-deep,
  .hero:not(.video-hero),
  .site-header,
  .site-footer,
  .presentation-slide--title,
  .presentation-slide--photo { animation: deep-gradient-drift 72s ease-in-out infinite; }
  .hero__bg::after,
  .video-hero::after,
  .image-band::after,
  .presentation-photo-carousel::after { animation: media-warp-drift 72s ease-in-out infinite; }

  /* slow drift on the hero photograph for depth */
  .hero__bg img { animation: kenburns 14s ease-out forwards; }

  /* modules reveal as they enter, with a light intra-group stagger.
     Hiding is gated on .js-reveal (set by JS, removed by the failsafe),
     so content is NEVER stuck invisible if scripting or the observer fails. */
  .js-reveal .reveal { opacity: 0; transform: translateY(20px); transition: opacity 600ms var(--ease-out), transform 600ms var(--ease-out); }
  .js-reveal .reveal--headline { transform: translateY(48px); transition: opacity 1250ms cubic-bezier(0.19, 1, 0.22, 1), transform 1250ms cubic-bezier(0.19, 1, 0.22, 1); }
  .js-reveal .reveal.in { opacity: 1; transform: none; }
  .js-reveal .reveal:nth-child(2) { transition-delay: 90ms; }
  .js-reveal .reveal:nth-child(3) { transition-delay: 180ms; }
  .js-reveal .reveal:nth-child(4) { transition-delay: 270ms; }
  .js-reveal .grid--3 > .project.reveal { transform: translateY(30px); transition-duration: 760ms; }
  .js-reveal .grid--3 > .project.reveal.in { transform: none; }
  .js-reveal .grid--3 > .project.reveal.in:hover { transform: translateY(-8px); }
  .js-reveal .grid--3 > .project.reveal:nth-child(3n+1) { transition-delay: 0ms; }
  .js-reveal .grid--3 > .project.reveal:nth-child(3n+2) { transition-delay: 150ms; }
  .js-reveal .grid--3 > .project.reveal:nth-child(3n+3) { transition-delay: 300ms; }
  .js-reveal .portfolio-teaser .grid--3 > .project.reveal { transition-duration: 1250ms; }
  .js-reveal .portfolio-teaser .grid--3 > .project.reveal:nth-child(3n+1) { transition-delay: 0ms; }
  .js-reveal .portfolio-teaser .grid--3 > .project.reveal:nth-child(3n+2) { transition-delay: 320ms; }
  .js-reveal .portfolio-teaser .grid--3 > .project.reveal:nth-child(3n+3) { transition-delay: 640ms; }

  /* the image-band photo settles in */
  .image-band img { animation: kenburns 16s ease-out forwards; }
}

/* ---------- RESPONSIVE ---------- */
@media (max-width: 980px) {
  .grid--3 { grid-template-columns: repeat(2, 1fr); }
  .stack-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .stack-card--wide { grid-column: auto; }
  .split { grid-template-columns: 1fr; }
  .split--sticky .split__aside { position: static; }
  .person { grid-template-columns: 1fr; gap: var(--s-md); }
}
@media (max-width: 1080px) {
  .presentation-page {
    --presentation-site-header-height: 74px;
    --presentation-nav-height: 58px;
  }
  .site-header { overflow: visible; }
  .site-header__inner { justify-content: space-between; min-height: 74px; padding-block: 10px; }
  .brandmark--header { display: inline-flex; padding: 0 8px 0 0; }
  .brandmark--header .brandmark__img { height: 31px; max-width: min(54vw, 240px); object-fit: contain; }
  .nav { display: none; }
  .nav.open {
    display: flex;
    position: fixed;
    z-index: 140;
    top: 74px;
    left: 0;
    right: 0;
    width: 100vw;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    max-height: calc(100svh - 74px);
    overflow-y: auto;
    overflow-x: hidden;
    background: linear-gradient(180deg, var(--deep-900) 0%, #132941 100%);
    border-bottom: 1px solid var(--line-dark);
    box-shadow: 0 22px 42px rgba(5,16,26,0.34);
    padding: var(--s-sm) var(--gutter) var(--s-lg);
  }
  .nav.open .brandmark--desktop { display: none; }
  .nav.open .nav__group { display: contents; }
  .nav.open .nav__link {
    padding: 15px 0;
    border-bottom: 1px solid var(--line-dark);
    width: 100%;
    white-space: normal;
    line-height: 1.2;
    text-wrap: balance;
  }
  .nav.open .btn { margin-top: var(--s-md); justify-content: center; }
  .nav-toggle { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; background: rgba(15,35,53,0.32); border: 1px solid var(--line-dark); border-radius: var(--radius); cursor: pointer; color: var(--mist); flex: 0 0 auto; }
}
@media (max-width: 720px) {
  :root {
    --fs-display: 2.28rem;
    --fs-h2: 2rem;
    --fs-h3: 1.28rem;
    --fs-lede: 1.08rem;
    --fs-body: 1rem;
    --fs-stat: 2rem;
    --gutter: 20px;
    --elevation-clip: inset(-88px 0 -104px 0);
    --elevation-edge-top:
      0 -1px 0 0 rgba(255,255,255,0.16),
      0 -9px 18px -10px rgba(2,10,18,0.54),
      0 -28px 48px -32px rgba(2,10,18,0.38);
    --elevation-edge-bottom:
      0 1px 0 0 rgba(2,10,18,0.34),
      0 12px 24px -12px rgba(2,10,18,0.68),
      0 40px 68px -42px rgba(2,10,18,0.50);
    --elevation-1:
      0 -5px 12px -7px rgba(2,10,18,0.36),
      0 -18px 32px -22px rgba(2,10,18,0.28),
      0 8px 16px -8px rgba(2,10,18,0.48),
      0 28px 46px -30px rgba(2,10,18,0.36);
    --elevation-2:
      0 -7px 18px -10px rgba(2,10,18,0.46),
      0 -30px 52px -34px rgba(2,10,18,0.36),
      0 12px 24px -11px rgba(2,10,18,0.62),
      0 44px 72px -44px rgba(2,10,18,0.48);
    --elevation-3:
      0 -9px 22px -12px rgba(2,10,18,0.56),
      0 -40px 68px -44px rgba(2,10,18,0.44),
      0 16px 30px -14px rgba(2,10,18,0.72),
      0 62px 96px -58px rgba(2,10,18,0.56);
  }
  html { scroll-padding-top: 72px; overflow-x: hidden; }
  body { font-size: var(--fs-body); overflow-x: hidden; }
  .container { min-width: 0; }
  .section > .container,
  .split,
  .grid,
  .fund-size-grid,
  .structure-list,
  .module-grid,
  .stack-grid,
  .founder-module-grid {
    max-width: 100%;
    min-width: 0;
  }
  .split > *,
  .grid > *,
  .fund-size-grid > *,
  .structure-list > *,
  .module-grid > *,
  .stack-grid > *,
  .founder-module-grid > *,
  .card,
  .project,
  .feature,
  .section-head {
    min-width: 0;
    max-width: 100%;
  }
  .section :is(.display, .h2, .h3, h1, h2, h3, h4, .lede, p) {
    max-width: 100%;
    overflow-wrap: break-word;
  }
  .display,
  .h2,
  .lede,
  .hero .display,
  .hero .lede,
  .image-band__quote {
    max-width: 100%;
    overflow-wrap: break-word;
    word-break: normal;
    hyphens: auto;
  }
  h1, h2, h3, h4,
  .display, .h2, .h3,
  .fund__name, .project__name, .person__name, .feature__title, .recognition__award {
    letter-spacing: 0;
    text-wrap: balance;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: manual;
  }
  .section { padding-block: 60px; }
  .section--tight { padding-block: 60px; }
  .section--cta { padding-block: 60px; }
  .grid { gap: var(--s-lg); }
  .grid--2, .grid--3 { grid-template-columns: 1fr; }
  .stack-grid { grid-template-columns: 1fr; }
  .stack-card,
  .stack-card--wide {
    grid-column: auto;
    min-height: auto;
  }
  .module-grid { grid-template-columns: 1fr; }
  .text-module--wide { grid-column: auto; }
  .founder-module-grid { grid-template-columns: 1fr; }
  .founder-portal__inner,
  .investor-portal__inner {
    gap: 54px;
  }
  .founder-portal-hero,
  .investor-portal-hero {
    height: auto;
    min-height: 0;
    overflow: visible;
  }
  .founder-portal__inner,
  .investor-portal__inner {
    height: auto;
    min-height: 0;
    align-content: start;
    gap: 24px;
    padding-block: 36px 44px;
  }
  .founder-portal__head,
  .investor-portal__head {
    max-width: 100%;
  }
  .founder-portal-hero .display,
  .investor-portal-hero .display {
    max-width: 100%;
  }
  .founder-portal-hero .lede,
  .investor-portal-hero .lede {
    max-width: 34ch;
  }
  .founder-portal-hero .founder-module-grid,
  .investor-portal-hero .founder-module-grid {
    grid-auto-rows: auto;
    gap: 14px;
  }
  .founder-portal-hero .founder-module-card,
  .investor-portal-hero .founder-module-card {
    min-height: 0;
    height: auto;
    gap: 12px;
    padding: 20px;
  }
  .founder-module-card .h3 {
    max-width: none;
  }
  .founder-module-card > p:not(.project__scale),
  .founder-module-card p:last-child {
    font-size: 0.98rem;
    line-height: 1.42;
  }
  .founder-module-links {
    gap: 8px;
  }
  .portal-logout .btn {
    width: 100%;
    justify-content: center;
  }
  .portal-login__inner {
    gap: 40px;
  }
  .presentation-page {
    --presentation-site-header-height: 74px;
    --presentation-nav-height: 58px;
    overflow: hidden;
  }
  .presentation-header {
    top: var(--presentation-site-header-height);
    grid-template-columns: 1fr;
    min-height: 58px;
    align-items: center;
    gap: 0;
  }
  .presentation-title {
    white-space: normal;
  }
  .presentation-nav {
    justify-content: flex-start;
    width: 100%;
  }
  .presentation-shell {
    height: calc(100svh - var(--presentation-offset));
    margin-top: var(--presentation-offset);
    padding-top: 0;
    min-height: 0;
  }
  .presentation-slide {
    padding-block: 12px;
    padding-inline: clamp(18px, 8vw, 50px);
    place-items: start stretch;
    align-content: start;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }
  .presentation-slide.presentation-slide--map,
  .presentation-slide.presentation-slide--photo {
    padding: 0;
    overflow: hidden;
  }
  .presentation-panel {
    height: auto;
    min-height: 100%;
    gap: 8px;
    justify-content: flex-start;
  }
  .presentation-panel__head,
  .presentation-display {
    max-width: 100%;
  }
  .presentation-display {
    overflow-wrap: break-word;
    word-break: normal;
  }
  .presentation-panel--register .presentation-display {
    max-width: 12ch;
    font-size: clamp(1.38rem, 6.2vw, 1.75rem);
    line-height: 1.08;
  }
  .presentation-panel--map {
    height: 100%;
    min-height: 100%;
  }
  .presentation-title-copy h1 {
    max-width: 11ch;
    font-size: clamp(2.15rem, 11vw, 3.8rem);
    white-space: normal;
  }
  .presentation-title-copy p:not(.eyebrow) {
    margin-top: 10px;
  }
  .presentation-title-stats {
    margin-top: 18px;
    gap: 16px;
  }
  .presentation-title-stats .stat__num {
    font-size: clamp(1.35rem, 7vw, 2rem);
  }
  .presentation-title-stats .stat__label {
    font-size: 0.56rem;
  }
  .presentation-title-qr {
    top: 10px;
    right: 0;
    width: 72px;
    padding: 6px;
  }
  .presentation-display {
    font-size: clamp(1.45rem, 6.8vw, 2.1rem);
  }
  .presentation-card--award,
  .presentation-card--metric,
  .presentation-card--note,
  .presentation-card--register {
    min-height: auto;
  }
  .presentation-map-frame {
    min-height: 0;
    height: 100%;
  }
  .presentation-map-frame img {
    transform: none;
    transform-origin: center center;
  }
  .presentation-photo-copy {
    margin-inline: 0;
    padding-inline: var(--gutter);
    width: 100%;
  }
  .presentation-photo-copy .presentation-display {
    max-width: 12ch;
  }
  .presentation-photo-captions {
    min-height: 132px;
    margin-top: var(--s-lg);
  }
  .presentation-photo-caption {
    padding: var(--s-lg);
  }
  .presentation-panel__head .lede,
  .presentation-qr-copy .lede {
    margin-top: 10px;
  }
  .presentation-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: repeat(3, minmax(64px, auto));
    gap: 12px;
  }
  .presentation-card {
    padding: 10px;
  }
  .presentation-card--metric {
    gap: 6px;
  }
  .presentation-card--metric strong {
    font-size: clamp(1.15rem, 6.6vw, 1.65rem);
  }
  .presentation-map-stats .presentation-card--metric strong {
    font-size: clamp(0.78rem, 4.4vw, 1.15rem);
  }
  .presentation-map-stats .presentation-card--metric span {
    max-width: 16ch;
    font-size: 0.48rem;
  }
  .presentation-card--metric span,
  .presentation-card--flow span,
  .presentation-card--note span,
  .presentation-card--register span,
  .presentation-photo-caption__subhead {
    font-size: 0.58rem;
    line-height: 1.3;
  }
  .presentation-flow,
  .presentation-flow__sources,
  .presentation-register-grid {
    gap: 8px;
  }
  .presentation-card--flow {
    gap: 3px;
  }
  .presentation-card--flow strong,
  .presentation-card--residential strong {
    font-size: clamp(1.1rem, 5.2vw, 1.55rem);
  }
  .presentation-card--note {
    gap: 6px;
  }
  .presentation-card--note h2 {
    font-size: clamp(1.15rem, 5.8vw, 1.55rem);
    max-width: 16ch;
  }
  .presentation-note-grid {
    gap: 6px;
    padding-top: 6px;
  }
  .presentation-card--residential {
    margin-top: 24px;
    min-height: 0;
    gap: 6px;
  }
  .presentation-register-grid {
    grid-template-columns: 1fr;
    grid-auto-rows: auto;
  }
  .presentation-card--register {
    gap: 6px;
  }
  .presentation-card--register h2 {
    font-size: clamp(1rem, 5vw, 1.35rem);
  }
  .presentation-photo-caption__body {
    font-size: clamp(0.98rem, 4.4vw, 1.2rem);
  }
  .presentation-panel--qr {
    gap: 16px;
    align-content: center;
  }
  .presentation-qr-card {
    width: min(68svh, 100%, 360px);
    padding: 14px;
  }
  .presentation-arrow {
    display: none;
  }
  .split { gap: var(--s-xl); }
  .split .hero__cta { width: 100%; }
  .brow { margin-block: var(--s-xl); }
  .site-header__inner { gap: var(--s-md); }
  .brandmark--header .brandmark__img { height: 29px; }

  .hero,
  .home .hero {
    height: 800px;
    min-height: 800px;
  }
  .home .image-band {
    height: 600px;
    min-height: 600px;
  }
  .hero__inner,
  .hero--tall .hero__inner,
  .home .hero__inner,
  .home .hero--tall .hero__inner,
  .home .image-band__inner {
    height: 100%;
    min-height: 100%;
    justify-content: center;
    padding-block: 60px;
  }
  .hero .display {
    max-width: min(100%, 13ch);
    line-height: 1.08;
  }
  .hero .lede {
    max-width: min(100%, 32ch);
    margin-top: var(--s-md);
  }
  .hero__cta {
    width: 100%;
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
    margin-top: 28px;
  }
  .hero__cta .btn {
    width: 100%;
    justify-content: center;
    text-align: center;
  }
  .hero__meta {
    width: 100%;
    display: grid;
    grid-template-columns: 1fr;
    gap: 16px;
    margin-top: 28px;
  }
  .stat__label { font-size: 0.64rem; }
  .founder-portal-hero,
  .investor-portal-hero {
    display: block;
    height: auto;
    min-height: 0;
    overflow: hidden;
  }
  .founder-portal__inner,
  .investor-portal__inner {
    width: 100%;
    max-width: 100%;
    height: auto;
    min-height: 0;
    justify-content: start;
    align-content: start;
    justify-items: stretch;
    gap: 24px;
    padding-block: 36px 44px;
  }
  .founder-portal-hero .display,
  .investor-portal-hero .display {
    max-width: 100%;
  }
  .founder-portal-hero .lede,
  .investor-portal-hero .lede {
    max-width: 34ch;
  }
  .founder-portal-hero .founder-module-grid,
  .investor-portal-hero .founder-module-grid {
    width: calc(100svw - var(--gutter) - var(--gutter));
    max-width: 100%;
    min-width: 0;
    grid-template-columns: minmax(0, 1fr);
    grid-auto-rows: auto;
    gap: 14px;
    justify-self: start;
  }
  .founder-portal-hero .founder-module-card,
  .investor-portal-hero .founder-module-card {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    min-height: 0;
    height: auto;
    gap: 12px;
    padding: 20px;
    overflow: hidden;
  }
  .founder-module-card > *,
  .founder-module-links {
    max-width: 100%;
    min-width: 0;
  }
  .founder-module-links {
    width: 100%;
  }
  .founder-module-card p,
  .founder-module-card .h3 {
    max-width: 100%;
    overflow-wrap: anywhere;
    word-break: normal;
  }
  .founder-module-links .founder-module-link,
  .founder-module-link {
    display: block;
    width: 100%;
    min-width: 0;
    max-width: 100%;
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
    line-height: 1.35;
  }
  .legal-note,
  .legal-note p {
    max-width: 100%;
    overflow-wrap: break-word;
  }

  .card,
  .project__body {
    padding: 24px;
  }
  .structure-card {
    grid-template-columns: 1fr;
    gap: var(--s-sm);
  }
  .thesis-card,
  .pipeline-card {
    min-height: auto;
  }
  .capital-list li {
    padding-left: 28px;
  }
  .project__media { aspect-ratio: 4 / 3; }
  .fund { min-height: auto; }
  .feature { gap: 14px; }
  .feature__icon { width: 34px; height: 34px; }
  .recognition { gap: var(--s-md); }
  .recognition__item {
    min-height: 0;
    padding: 20px;
  }
  .recognition__award { margin-bottom: 6px; }
  .team-group { gap: 14px; margin-bottom: var(--s-xl); }
  .person { padding: 22px; }
  .footer-grid { flex-direction: column; align-items: flex-start; gap: var(--s-md); }
  .footer__brand .brandmark__img { width: min(74vw, 300px); height: auto; }
  .footer__nav { justify-content: flex-start; padding-top: 0; text-align: left; }
  .footer__legal { flex-direction: column; gap: 6px; }
}
@media (max-width: 430px) {
  :root {
    --fs-display: 2.08rem;
    --fs-h2: 1.86rem;
    --fs-h3: 1.22rem;
    --fs-lede: 1.04rem;
    --fs-stat: 1.82rem;
    --gutter: 18px;
  }
  .btn {
    min-height: 46px;
    padding: 13px 18px;
    letter-spacing: 0.08em;
  }
  .hero,
  .home .hero {
    min-height: 800px;
    height: 800px;
  }
  .founder-portal-hero,
  .investor-portal-hero {
    height: auto;
    min-height: 0;
  }
  .hero__inner,
  .hero--tall .hero__inner,
  .home .hero__inner,
  .home .hero--tall .hero__inner {
    min-height: 100%;
    height: 100%;
    padding-block: 60px;
  }
  .founder-portal__inner,
  .investor-portal__inner {
    height: auto;
    min-height: 0;
    padding-block: 30px 38px;
  }
  .founder-portal-hero .founder-module-card,
  .investor-portal-hero .founder-module-card {
    padding: 18px;
  }
  .home .image-band,
  .home .image-band__inner {
    min-height: 600px;
    height: 600px;
  }
  .hero__meta { grid-template-columns: 1fr; }
  .card,
  .project__body {
    padding: 22px;
  }
}

/* Phone landscape: width crosses the tablet breakpoint, but height is still phone-like.
   Keep the mobile presentation model and avoid 800px hero traps. */
@media (max-width: 1080px) and (max-height: 520px) and (orientation: landscape) {
  .hero,
  .home .hero,
  .video-hero {
    min-height: clamp(430px, 120svh, 560px);
    height: auto;
  }

  .hero__inner,
  .hero--tall .hero__inner,
  .home .hero__inner,
  .home .hero--tall .hero__inner {
    min-height: clamp(430px, 120svh, 560px);
    height: auto;
    padding-block: 32px;
  }

  .home .image-band,
  .home .image-band__inner {
    min-height: clamp(360px, 105svh, 500px);
    height: auto;
  }

  .hero .display {
    max-width: min(100%, 18ch);
    font-size: clamp(2rem, 6vw, 3rem);
  }

  .hero .lede {
    max-width: min(100%, 58ch);
    font-size: 1rem;
    line-height: 1.45;
  }

  .hero__cta {
    margin-top: 20px;
  }

  .hero__meta {
    margin-top: 20px;
    gap: 18px 28px;
  }

  .presentation-page {
    overflow-x: hidden;
    overflow-y: auto;
  }

  .presentation-shell {
    height: auto;
    min-height: 0;
    overflow: visible;
  }

  .presentation-track {
    display: block;
    height: auto;
    transform: none !important;
    transition: none;
  }

  .presentation-slide {
    width: 100%;
    min-width: 0;
    height: auto;
    min-height: calc(100svh - var(--presentation-offset));
    padding: 24px clamp(42px, 6vw, 64px) 42px;
    overflow: visible;
    clip-path: none;
    scroll-margin-top: var(--presentation-offset);
  }

  .presentation-slide + .presentation-slide {
    border-top: 1px solid rgba(15,35,53,0.16);
  }

  .presentation-panel,
  .presentation-panel--accolades {
    height: auto;
    min-height: 0;
    justify-content: flex-start;
  }

  .presentation-title-panel {
    min-height: auto;
    height: auto;
    align-content: start;
    padding-block: 16px;
  }

  .presentation-title-copy h1 {
    white-space: normal;
    max-width: 100%;
    font-size: clamp(2.35rem, 7vw, 4.1rem);
  }

  .presentation-title-stats {
    margin-top: 18px;
  }

  .presentation-title-qr {
    top: 16px;
    width: clamp(76px, 11vw, 112px);
  }

  .presentation-flow {
    grid-template-columns: 1fr;
    grid-template-rows: auto;
  }

  .presentation-flow::before {
    display: none;
  }

  .presentation-card--residential {
    margin-top: 0;
  }

  .presentation-slide.presentation-slide--photo {
    min-height: calc(100svh - var(--presentation-offset));
    overflow: hidden;
  }

  .presentation-photo-copy {
    margin: 0;
    padding: 24px clamp(42px, 6vw, 64px);
  }

  .presentation-photo-captions {
    min-height: 0;
  }

  .presentation-photo-caption {
    position: relative;
    inset: auto;
    display: none;
    width: min(100%, 520px);
  }

  .presentation-photo-caption.is-active {
    display: block;
  }
}

/* Mobile corrective layer: keep the presentation usable as a true page on phones
   while preserving the desktop slide-deck interaction. */
@media (max-width: 720px) {
  .hero,
  .home .hero,
  .video-hero {
    min-height: clamp(560px, calc(100svh - 74px), 700px);
    height: auto;
  }

  .hero__inner,
  .hero--tall .hero__inner,
  .home .hero__inner,
  .home .hero--tall .hero__inner {
    min-height: clamp(560px, calc(100svh - 74px), 700px);
    height: auto;
    padding-block: clamp(42px, 9svh, 72px);
  }

  .home .image-band,
  .home .image-band__inner {
    min-height: clamp(500px, 70svh, 620px);
    height: auto;
  }

  .presentation-page {
    overflow-x: hidden;
    overflow-y: auto;
  }

  .presentation-shell {
    height: auto;
    min-height: 0;
    overflow: visible;
  }

  .presentation-track {
    display: block;
    height: auto;
    transform: none !important;
    transition: none;
  }

  .presentation-slide {
    width: 100%;
    min-width: 0;
    height: auto;
    min-height: calc(100svh - var(--presentation-offset));
    padding: clamp(20px, 6vw, 32px) var(--gutter) clamp(34px, 9vw, 52px);
    overflow: visible;
    clip-path: none;
    scroll-margin-top: var(--presentation-offset);
  }

  .presentation-slide + .presentation-slide {
    border-top: 1px solid rgba(15,35,53,0.16);
  }

  .presentation-panel,
  .presentation-panel--accolades {
    height: auto;
    min-height: 0;
    justify-content: flex-start;
  }

  .presentation-title-panel {
    min-height: calc(100svh - var(--presentation-offset));
    height: auto;
    align-content: start;
    padding-block: clamp(28px, 8svh, 54px);
  }

  .presentation-title-copy h1 {
    max-width: 100%;
    font-size: clamp(2.35rem, 12vw, 4.1rem);
    line-height: 0.98;
  }

  .presentation-title-stats {
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .presentation-title-qr {
    position: static;
    width: clamp(82px, 25vw, 108px);
    margin-top: 22px;
  }

  .presentation-accolades {
    grid-template-columns: 1fr;
    grid-auto-rows: auto;
    align-content: start;
  }

  .presentation-flow {
    grid-template-columns: 1fr;
    grid-template-rows: auto;
  }

  .presentation-flow::before {
    display: none;
  }

  .presentation-card--residential {
    margin-top: 0;
  }

  .presentation-note-grid {
    grid-template-columns: 1fr;
  }

  .presentation-slide.presentation-slide--photo {
    min-height: calc(100svh - var(--presentation-offset));
    overflow: hidden;
    display: grid;
    align-content: start;
  }

  .presentation-photo-copy {
    margin: 0;
    padding: clamp(22px, 7vw, 34px) var(--gutter);
    width: 100%;
  }

  .presentation-photo-captions {
    min-height: 0;
    margin-top: 0;
  }

  .presentation-photo-caption {
    position: relative;
    inset: auto;
    display: none;
    width: 100%;
  }

  .presentation-photo-caption.is-active {
    display: block;
  }

  .presentation-slide.presentation-slide--map {
    min-height: calc(100svh - var(--presentation-offset));
  }

  .presentation-map-stats {
    top: 14px;
    right: var(--gutter);
    grid-template-columns: 1fr;
    gap: 10px;
  }
}

@media (max-width: 430px) {
  .hero,
  .home .hero,
  .video-hero {
    min-height: clamp(540px, calc(100svh - 74px), 680px);
    height: auto;
  }

  .hero__inner,
  .hero--tall .hero__inner,
  .home .hero__inner,
  .home .hero--tall .hero__inner {
    min-height: clamp(540px, calc(100svh - 74px), 680px);
    height: auto;
    padding-block: clamp(36px, 8svh, 58px);
  }

  .home .image-band,
  .home .image-band__inner {
    min-height: clamp(480px, 68svh, 580px);
    height: auto;
  }

  .presentation-slide {
    padding-inline: var(--gutter);
  }

  .hero .display {
    font-size: 1.92rem;
    line-height: 1.06;
  }

  .hero .lede {
    font-size: 0.98rem;
    line-height: 1.45;
  }

  .hero__cta {
    gap: 10px;
    margin-top: 22px;
  }

  .hero__meta {
    gap: 10px;
    margin-top: 22px;
  }

  .hero__meta .stat__num {
    font-size: 1.55rem;
  }

  .stat__label {
    font-size: 0.58rem;
  }
}

/* Contingent Note slide - compact single-viewport layout */
.presentation-panel--note { justify-content: center; gap: clamp(10px, 1.6vh, 18px); }
.note-figures {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: clamp(6px, 0.8vw, 12px);
}
.note-figure {
  background: rgba(var(--vellum-rgb), 0.72);
  border: 1px solid rgba(215, 222, 228, 0.95);
  border-radius: var(--radius);
  padding: clamp(8px, 0.9vw, 12px);
  display: flex; flex-direction: column; gap: 2px; justify-content: center;
}
.note-figure strong {
  font-family: var(--display); font-weight: var(--w-display); color: var(--ink);
  font-size: clamp(0.95rem, 1.4vw, 1.5rem); line-height: 1; letter-spacing: 0;
}
.note-figure span {
  font-family: var(--mono); font-size: 0.56rem; line-height: 1.2; letter-spacing: 0.07em;
  text-transform: uppercase; color: var(--brass-600);
}
.note-body {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(16px, 2vw, 30px); align-items: stretch; min-height: 0;
}
.note-terms { display: grid; gap: clamp(8px, 1.2vh, 14px); align-content: start; }
.note-term {
  background: rgba(var(--vellum-rgb), 0.72);
  border: 1px solid rgba(215, 222, 228, 0.95);
  border-radius: var(--radius); padding: clamp(10px, 1vw, 14px);
  display: grid; gap: 3px;
}
.note-term span {
  font-family: var(--mono); font-size: 0.62rem; letter-spacing: 0.1em;
  text-transform: uppercase; color: var(--brass-600);
}
.note-term p {
  margin: 0; color: var(--ink); font-family: var(--display); font-weight: var(--w-title);
  line-height: 1.15; font-size: clamp(0.95rem, 1.1vw, 1.15rem);
}
.note-why {
  background: rgba(15, 35, 53, 0.06); border: 1px dashed rgba(168, 126, 61, 0.5);
  border-radius: var(--radius-lg); padding: clamp(14px, 1.4vw, 20px);
  display: flex; flex-direction: column; gap: 8px;
}
.note-why span {
  font-family: var(--mono); font-size: 0.62rem; letter-spacing: 0.1em;
  text-transform: uppercase; color: var(--brass-600);
}
.note-why strong {
  font-family: var(--display); font-weight: var(--w-display); color: var(--ink);
  line-height: 1.1; font-size: clamp(1.1rem, 1.5vw, 1.6rem);
}
.note-why ul {
  margin: 0; padding-left: 1.1rem; display: grid; gap: 6px;
  color: var(--ridge); line-height: 1.3; font-size: clamp(0.85rem, 0.95vw, 1rem);
}
@media (max-width: 720px) {
  .note-figures { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .note-body { grid-template-columns: 1fr; }
}

/* Site map slide - Chickamauga project aerial */
.presentation-panel--sitemap { justify-content: flex-start; gap: clamp(8px, 1.4vh, 16px); height: 100%; }
.sitemap-frame {
  position: relative;
  flex: 1 1 auto;
  min-height: 0;
  width: 100%;
  margin: 0;
  border: 1px solid rgba(168, 126, 61, 0.5);
  border-radius: var(--radius-lg);
  overflow: hidden;
  background: var(--ink);
  box-shadow: 0 16px 34px rgba(15, 35, 53, 0.16), 0 3px 10px rgba(15, 35, 53, 0.08);
}
.sitemap-frame img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}
