@font-face { font-family: "Switzer"; font-style: normal; font-weight: 100 900; font-display: swap; src: url("fonts/Switzer-Variable.woff2") format("woff2"); }
@font-face { font-family: "Switzer"; font-style: italic; font-weight: 100 900; font-display: swap; src: url("fonts/Switzer-VariableItalic.woff2") format("woff2"); }
@font-face { font-family: "OCR A Std"; font-style: normal; font-weight: 400; font-display: swap; src: url("fonts/OCRAStd.otf") format("opentype"); }
/* ==========================================================================
   NeoGenesis Capital — Concept 2 landing page
   Design source: Figma LdctjEkIJipSU1Vg2QwKBI / frame "Concept 2" (1440 wide)
   Layout strategy: the page is authored on a fixed 1440px "stage" using the
   exact Figma coordinates, then scaled to the viewport width with a CSS
   transform (see script.js). Fidelity at 1440 is exact; narrower viewports get a
   proportional scale-down.
   ========================================================================== */

:root {
  /* colours */
  --c-black: #000000;
  --c-ink: #1e1e1e;
  --c-white: #ffffff;
  --c-green: #00ff6f;
  --c-gray-100: #d9d9d9;   /* light panel / secondary text on dark */
  --c-gray-500: #878787;
  --c-gray-600: #828282;   /* muted OCR labels */
  --c-stub: #141414;

  /* type */
  --f-sans: "Switzer", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;
  --f-mono: "OCR A Std", "OCR A Extended", "OCR-A", ui-monospace, Menlo, monospace;

  --fs-display: 72px;   /* hero tagline / headline */
  --fs-h1: 48px;        /* section headlines */
  --fs-h2: 32px;        /* thesis lead, full-stack heading */
  --fs-lead: 24px;      /* lead paragraphs, stat labels, card titles */
  --fs-body: 16px;
  --fs-small: 14px;
  --fs-caption: 12px;
  --fs-micro: 10px;
  --fs-nano: 8px;
  --fs-stat: 64px;

  --stage-w: 1440;
  --stage-h: 3853;      /* fixed-coordinate content ends where the Momentum band goes flat (incl. 1024 hero, subtracted in .viewport) */
}

*, *::before, *::after { box-sizing: border-box; }

html { background: var(--c-black); }

body {
  margin: 0;
  background: var(--c-black);
  color: var(--c-white);
  font-family: var(--f-sans);
  font-size: var(--fs-body);
  line-height: normal;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

/* viewport wrapper: its height is set by script.js to stage-h * scale */
.viewport {
  position: relative;
  width: 100%;
  height: calc(var(--stage-h) * 1px);
  overflow: hidden;
}

.stage {
  position: absolute;
  top: -1024px;                 /* hero (y 0–1024) lives in .hero-fixed; content starts at y 1024 */
  left: 50%;
  width: calc(var(--stage-w) * 1px);
  height: calc(var(--stage-h) * 1px);
  transform-origin: top left;
  transform: translateX(-50%);   /* centred at >=1440; script.js scales below that */
}

/* every design element is absolutely positioned in stage (page) coordinates */
.abs { position: absolute; }
.abs img, img.abs { display: block; }
.fill { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.max-none { max-width: none; }

/* sections are zero-height wrappers; their children carry page coordinates */
section.layer { position: absolute; top: 0; left: 0; width: 1440px; height: 0; }
.anchor { position: absolute; left: 0; width: 1px; height: 1px; }

p { margin: 0; }
a { color: inherit; text-decoration: none; }

/* -------- typography helpers -------- */
.sans { font-family: var(--f-sans); font-style: normal; }
.mono { font-family: var(--f-mono); font-style: normal; }
.w200 { font-weight: 200; }
.w300 { font-weight: 300; }
.w400 { font-weight: 400; }
.w500 { font-weight: 500; }
.w700 { font-weight: 700; }
.w900 { font-weight: 900; }
.upper { text-transform: uppercase; }
.nowrap { white-space: nowrap; }
.prewrap { white-space: pre-wrap; }
.wb { word-break: break-word; }

.t-green { color: var(--c-green); }
.t-white { color: var(--c-white); }
.t-black { color: var(--c-black); }
.t-ink { color: var(--c-ink); }
.t-gray { color: var(--c-gray-100); }
.t-muted { color: var(--c-gray-600); }

/* OCR label rows (10px, 1.6 leading, uppercase) */
.ocr10 { font-family: var(--f-mono); font-size: var(--fs-micro); line-height: 1.6; text-transform: uppercase; white-space: nowrap; }
.ocr10-14 { font-family: var(--f-mono); font-size: var(--fs-micro); line-height: 1.4; white-space: nowrap; }
.ocr8 { font-family: var(--f-mono); font-size: var(--fs-nano); line-height: normal; text-transform: uppercase; }
.ocr12 { font-family: var(--f-mono); font-size: var(--fs-caption); line-height: 1.6; text-transform: uppercase; white-space: nowrap; }

/* subtle fractal-noise overlay standing in for the Figma shader fill */
.noise::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='300' height='300'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 1 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  background-size: 300px 300px;
  opacity: 0.10;
  mix-blend-mode: multiply;
}

/* ==========================================================================
   HERO (237:6)  y 0–1024
   ========================================================================== */
/* Fixed full-screen hero. .hero-stage is a 1440-wide stage whose height is the viewport height in stage
   units (set by script.js); top-anchored items (nav, video top) and bottom-anchored items (tagline,
   blurb, corner icon) keep their Figma offsets from the respective edge. */
.hero-fixed { position: fixed; inset: 0; z-index: 0; background: var(--c-black); overflow: hidden; }
.hero-fixed.is-hidden { visibility: hidden; }
/* announcement band: full-width green strip across the top of the hero (above the scaled stage; the logo sits 47px down) */
.hero-band { position: absolute; left: 0; right: 0; top: 0; z-index: 3; height: 32px; display: flex; align-items: center; justify-content: center; gap: 14px;
  background: var(--c-green); color: var(--c-black); text-decoration: none; font-family: var(--f-sans); font-weight: 500; font-size: var(--fs-small); line-height: 1; transition: background .3s ease; }
.hero-band .hb-tag { color: rgba(0,0,0,.6); }
.hero-band .hb-arrow { width: 11px; height: 8px; fill: none; stroke: currentColor; stroke-width: 1.4; transition: translate .3s ease; }
.hero-band:hover, .hero-band:focus-visible { background: var(--c-white); outline: none; }
.hero-band:hover .hb-arrow, .hero-band:focus-visible .hb-arrow { translate: 3px 0; }
.hero-stage { position: absolute; top: 0; left: 0; width: 1440px; height: 1024px; transform-origin: top left; }
.hero-stage section.layer { height: 100%; }
.hero-spacer { height: 100vh; }
.viewport { position: relative; z-index: 2; }

/* video band: the free space between the logo (ends y 197) and the tagline (starts ~200px from the bottom);
   the 16:9 video is centred in that band, so it stays centred as the viewport gets taller */
.hero-bg { position: absolute; left: 0; right: 0; top: 197px; bottom: 200px; }
.hero-bg video { position: absolute; left: 0; top: 50%; width: 1440px; height: auto; transform: translateY(-50%); }

.nav-link { position: absolute; top: 52px; font-family: var(--f-sans); font-weight: 300; font-size: var(--fs-body); color: var(--c-gray-100); white-space: nowrap; }
.nav-link:hover { color: var(--c-white); }
.contact-btn { position: absolute; left: 1270px; top: 47px; width: 130px; height: 31px; display: block; }
.contact-btn img.bg { position: absolute; inset: 0; width: 100%; height: 100%; transform: scaleY(-1); }
.contact-btn .label { position: absolute; left: 10px; top: 5px; font-weight: 500; font-size: var(--fs-body); color: var(--c-black); white-space: nowrap; line-height: normal; }
.contact-btn .arrow { position: absolute; left: 108px; top: 16px; width: 11px; height: 0; }
.contact-btn .arrow img { position: absolute; left: -0.5px; top: -3.68px; width: 12px; height: 7.36px; max-width: none; }

.tagline { position: absolute; left: 40px; bottom: 41px; width: 750px; font-size: 52px; line-height: 1.1; color: var(--c-white); }   /* longer tagline: 72px ran into the hero blurb at left 814 */
.tagline .l1 { font-weight: 200; }
.tagline .l2 { font-weight: 700; }

.hero-blurb { position: absolute; left: 814px; bottom: 47px; width: 520px; font-family: var(--f-mono); font-size: var(--fs-caption); line-height: 1.6; color: var(--c-white); }

/* rotated 33px micro icon (outer ring + inner glyph) */
.micro-icon { position: absolute; overflow: hidden; display: block; cursor: pointer; }
.corner-arrow { position: absolute; inset: 0; width: 100%; height: 100%; display: block; overflow: visible; }
.corner-arrow .box { fill: transparent; stroke: var(--c-green); stroke-width: 1; animation: corner-box 2.4s ease-in-out infinite alternate; }
.corner-arrow .arrow path { fill: var(--c-green); animation: corner-arrow 2.4s ease-in-out infinite alternate; }
@keyframes corner-box   { 0%, 30% { fill: transparent; }   70%, 100% { fill: var(--c-green); } }
@keyframes corner-arrow { 0%, 30% { fill: var(--c-green); } 70%, 100% { fill: var(--c-black); } }
@media (prefers-reduced-motion: reduce) { .corner-arrow .box, .corner-arrow .arrow path { animation: none; } .corner-arrow .box { fill: var(--c-green); } .corner-arrow .arrow path { fill: var(--c-black); } }

/* ==========================================================================
   THESIS (237:59)  y 1024–3540
   ========================================================================== */
/* full-bleed: --scale is set on <html> by script.js; 100vw / scale = viewport width in stage units */
.bleed-l, .bleed-r { position: absolute; width: max(0px, calc((100vw / var(--scale, 1) - 1440px) / 2 + 2px)); pointer-events: none; }
.bleed-l { right: 1440px; }
.bleed-r { left: 1440px; }
.bg-black { background: var(--c-black); }
.bg-gray  { background: var(--c-gray-100); }
.gray-panel { position: absolute; top: 1024px; height: 1185px; background: var(--c-gray-100);
  left: min(0px, calc((1440px - 100vw / var(--scale, 1)) / 2)); width: max(1440px, calc(100vw / var(--scale, 1))); }

.headline { position: absolute; left: 40px; top: 1119px; width: 1154px; font-weight: 700; font-size: var(--fs-display); line-height: 1.05; color: var(--c-black); text-transform: capitalize; white-space: pre-wrap; }
.mammoth { position: absolute; left: 730px; top: 1055px; width: 638px; height: 359px; }
.mammoth img { width: 100%; height: 100%; object-fit: cover; display: block; }

.vtext { position: absolute; display: flex; align-items: center; justify-content: center; }
.vtext > span { transform: rotate(-90deg); white-space: nowrap; }

.thesis-lead { position: absolute; left: 40px; top: 1558px; width: 540px; font-size: var(--fs-h2); line-height: normal; }
.thesis-lead .a { font-weight: 700; color: var(--c-black); }
.thesis-lead .b { font-weight: 400; color: #4a4a4a; }
.thesis-copy { position: absolute; left: 791px; top: 1562px; width: 553px; font-size: var(--fs-lead); line-height: normal; color: var(--c-ink); white-space: pre-wrap; }
.thesis-copy { left: 660px; width: 684px; white-space: normal; font-size: 20px; line-height: 1.35; }   /* v3 copy is ~3x longer; 24px ran into the snapshot band */
.thesis-copy p { margin: 0; }
.thesis-copy p + p { margin-top: .75em; }
.thesis-copy .link { color: var(--c-black); text-decoration: underline; text-decoration-thickness: from-font; text-underline-position: from-font; }

.tag { position: absolute; height: 16px; }
.tag img { position: absolute; inset: 0; width: 100%; height: 100%; transform: scaleY(-1); }
.tag-label { position: absolute; font-family: var(--f-mono); font-size: var(--fs-micro); line-height: 1.4; white-space: nowrap; }

.cce-h1 { position: absolute; left: 40px; top: 1987px; width: 670px; font-weight: 700; font-size: var(--fs-h1); line-height: 54px; color: var(--c-black); }
.cce-sub { position: absolute; left: 40px; top: 2122px; width: 606px; font-weight: 700; font-size: var(--fs-lead); line-height: normal; color: var(--c-black); }
.cce-p { position: absolute; top: 2274px; width: 326px; font-size: var(--fs-body); line-height: normal; color: var(--c-ink); }

.hrule { position: absolute; height: 0; }
.hrule img { position: absolute; left: 0; top: -0.5px; width: 100%; height: 1px; max-width: none; }

.cell-img { position: absolute; left: 833px; top: 2093px; width: 523px; height: 286px; transform: rotate(180deg); overflow: hidden; pointer-events: none; }
.cell-img img { position: absolute; left: -43.42%; top: -46.85%; width: 188.54%; height: 193.71%; max-width: none; }

.frosted-logo { position: absolute; left: 768px; top: 1754px; width: 145px; height: 146px; border-radius: 20px;
  background: linear-gradient(135deg, rgba(255,255,255,0.45) 0%, rgba(255,255,255,0.18) 50%, rgba(255,255,255,0.30) 100%);
  border: 1px solid rgba(255,255,255,0.65);
  box-shadow: 0 20px 50px -18px rgba(0,0,0,0.35), inset 12px 12px 14px 0 rgba(255,255,255,0.35), inset -1px -1px 0 0 rgba(0,0,0,0.06);
  -webkit-backdrop-filter: blur(18px) saturate(1.2); backdrop-filter: blur(18px) saturate(1.2); }
.frosted-logo img { position: absolute; left: -13.79%; top: -13.7%; width: 127.58%; height: 127.4%; max-width: none; }

/* ---- Colossal Snapshot ---- */
.snapshot-shape { position: absolute; left: -102px; top: 1960px; width: 1742.392px; height: 909px; transform: scaleY(-1); }
.snapshot-body { position: absolute; left: 39px; top: 2495px; width: 638px; font-size: var(--fs-body); line-height: normal; color: var(--c-white); }
.snapshot-body .muted { color: var(--c-gray-600); }
.snap-p2 { display: block; margin-top: 1em; }
.lab-photo { position: absolute; left: 40px; top: 2227px; width: 670px; height: 242px; border-radius: 12px; overflow: hidden; }
.lab-photo img { position: absolute; left: 0; top: -57.99%; width: 100%; height: 184.6%; max-width: none; }
.stat-outline { position: absolute; left: 812px; width: 500px; height: 107px; }
.stat-outline img { position: absolute; left: -0.1%; top: -0.47%; width: 100.2%; height: 100.94%; max-width: none; }
.stat-num { position: absolute; left: 832px; font-weight: 200; font-size: var(--fs-stat); line-height: 1.6; color: var(--c-green); text-transform: uppercase; white-space: nowrap; }
.stat-label { position: absolute; font-weight: 200; font-size: var(--fs-lead); line-height: 1.6; color: var(--c-white); }
.stat-arrow { position: absolute; left: 1300px; width: 15px; height: 17px; }
.dot7 { position: absolute; width: 7.291px; height: 7.291px; transform: rotate(180deg); }
.wordmark-vert { position: absolute; left: 1268px; top: 2001px; width: 131px; height: 26px; display: flex; align-items: center; justify-content: center; }
.wordmark-vert .frame { width: 26px; height: 131px; transform: rotate(-90deg); overflow: hidden; position: relative; flex: none; }
.wordmark-vert .frame img { position: absolute; inset: 0; width: 100%; height: 100%; mix-blend-mode: difference; }

/* ==========================================================================
   PLATFORM (237:410)  y 3430–5123
   ========================================================================== */
.platform-bg { position: absolute; left: -132px; top: 2759px; width: 1686px; height: 1110px; overflow: hidden; }   /* shortened: the Full Stack panel below the pipeline was removed; the momentum tab covers the cut */
.platform-bg img { position: absolute; left: 0; top: 0; width: 100%; height: 1693px; }
.platform-bg::before { /* extends the light panel to the viewport edges below the top tab */
  content: ""; position: absolute; top: 53.77px; bottom: 16px; background: var(--c-gray-100);
  left: min(0px, calc((1686px - 100vw / var(--scale, 1)) / 2 - 9px)); width: max(1686px, calc(100vw / var(--scale, 1))); }
.platform-bg::after { /* noise, masked to the shape */
  content: ""; position: absolute; inset: 0; pointer-events: none; opacity: 0.2; mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='300' height='300'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 1 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  background-size: 300px 300px;
  -webkit-mask: url("assets/platform-bg-shape.svg") top center / 100% 1693px no-repeat;
  mask: url("assets/platform-bg-shape.svg") top center / 100% 1693px no-repeat;
}

.plat-h1 { position: absolute; left: 40px; top: 2949px; width: 665px; font-weight: 700; font-size: var(--fs-h1); line-height: 54px; color: var(--c-black); }
.plat-lead { position: absolute; left: 660px; top: 2949px; width: 684px; font-size: var(--fs-lead); line-height: normal; color: var(--c-black); white-space: pre-wrap; }
.plat-lead .muted { color: var(--c-gray-600); }

.pipeline-panel { position: absolute; left: 100px; top: 3142px; width: 1240px; height: 590px; transform: scaleX(-1); }
.pipeline-img { position: absolute; left: 176px; top: 3292px; width: 1089px; height: 363px; }
.pipeline-img img { width: 100%; height: 100%; object-fit: cover; display: block; pointer-events: none; }
.pl-top { position: absolute; top: 3308px; width: 200px; color: var(--c-gray-100); white-space: pre-wrap; }
.pl-bot { position: absolute; top: 3656px; width: 200px; color: var(--c-gray-100); transform: translateY(-100%); white-space: pre-wrap; }
.tick { position: absolute; width: 0; height: 45.5px; }
.tick img { position: absolute; left: -0.5px; top: 0; width: 1px; height: 100%; max-width: none; }
.dots-grid-flip { position: absolute; left: -43px; top: 3512px; width: 552.117px; height: 494px; transform: rotate(180deg); }

.dna-glass { position: absolute; left: 100px; top: 3201px; width: 1240px; height: 516px; border-radius: 30px;
  background: linear-gradient(135deg, rgba(255,255,255,0.45) 0%, rgba(255,255,255,0.18) 45%, rgba(255,255,255,0.30) 100%);
  border: 1px solid rgba(255,255,255,0.65);
  box-shadow: 0 0 100px 0 rgba(0,0,0,0.25), 0 24px 60px -20px rgba(0,0,0,0.25), inset 20px 20px 14px 0 rgba(255,255,255,0.35), inset -1px -1px 0 0 rgba(0,0,0,0.06);
  -webkit-backdrop-filter: blur(18px) saturate(1.2); backdrop-filter: blur(18px) saturate(1.2);
  pointer-events: none; }
.dna-img { position: absolute; left: 100px; top: 3176px; width: 1240px; height: 541px; overflow: hidden; pointer-events: none; }
.dna-img img { position: absolute; left: -4.88%; top: -21.69%; width: 108.15%; height: 139.34%; max-width: none; }

.fs-h2 { position: absolute; left: 144px; top: 3238px; width: 357px; font-weight: 700; font-size: var(--fs-h2); line-height: 1.1; color: var(--c-black); }
.fs-p { position: absolute; left: 140px; top: 3322px; width: 452px; font-size: var(--fs-body); line-height: normal; color: var(--c-black); }

.cards-shape { position: absolute; left: 140px; top: 3443px; width: 1160px; height: 238px; }
.card-title { position: absolute; top: 3454px; width: 171px; font-weight: 900; font-size: var(--fs-lead); line-height: normal; color: var(--c-white); }
.card-desc { position: absolute; top: 3492px; width: 171px; font-size: var(--fs-caption); line-height: normal; color: var(--c-white); }
.card-slash { position: absolute; top: 3555px; width: 45px; font-family: var(--f-mono); font-size: var(--fs-small); line-height: normal; color: var(--c-green); }
.card-num { position: absolute; top: 3650px; width: 17px; font-size: var(--fs-small); line-height: normal; color: var(--c-green); }
.card-arrow { position: absolute; top: 3470px; width: 15px; height: 0; }
.card-arrow img { position: absolute; left: -0.5px; top: -3.68px; width: 16px; height: 7.36px; max-width: none; }

/* ==========================================================================
   PLACEHOLDER STUBS  y 5123+
   ========================================================================== */
/* Momentum top band: platform shape re-used as a mask, filled black (Figma 237:652) */
.momentum-tab { position: absolute; left: -132px; top: 3799px; width: 1686px; height: 1693px; display: block; }

/* normal-flow region (Momentum + remaining sections) */
.flow { position: relative; z-index: 2; background: var(--c-black); }
.flow-stub { background: var(--c-stub); border-top: 1px solid #222; padding: 96px 0; }
.flow-stub .frame { max-width: 1440px; margin: 0 auto; padding: 0 40px; }
.flow-stub .kicker { font-family: var(--f-mono); font-size: var(--fs-micro); line-height: 1.4; color: var(--c-green); text-transform: uppercase; }
.flow-stub h2 { margin: 8px 0 0; font-weight: 700; font-size: var(--fs-h1); line-height: 54px; color: var(--c-white); }
.flow-stub .soon { margin-top: 8px; font-weight: 300; font-size: var(--fs-body); color: var(--c-gray-600); }

/* ==========================================================================
   FUND — normal-flow band right after the hero: the $200M vehicle and its six allocations.
   Reuses the Portfolio card language (.pf-corner, .pf-port). Connectors are pseudo-elements:
   desktop = one row with a bus line + a drop arrow into each card's in-port;
   ≤1000px = single column with a left spine and an arrow branching into each card.
   ========================================================================== */
.fd { position: relative; z-index: 2; background: var(--c-black); color: var(--c-white); --fd-line: rgba(255,255,255,.35); --fd-gap: 16px; --fd-drop: 56px; }
.fd-frame { position: relative; max-width: 1440px; margin: 0 auto; padding: 140px 40px 150px; }
.fd-top { display: flex; justify-content: center; }
.fd-fund { position: relative; display: flex; align-items: center; gap: 64px; padding: 34px 52px 38px; border: 1px solid rgba(0,255,111,.45); border-radius: 16px; background: #0c0c0c; }
.fd-fund .pf-corner { border-color: rgba(0,255,111,.6); }
.fd-fund-word img { display: block; height: auto; }
.fd-fund-word img:first-child { width: 300px; }
.fd-fund-word img + img { width: 168px; margin-top: 10px; }
.fd-fund-size p { margin: 0; }
.fd-amount { margin-top: 4px !important; font-weight: 200; font-size: var(--fs-stat); line-height: 1; color: var(--c-green); white-space: nowrap; }
.fd-stem { display: block; width: 1px; height: calc(var(--fd-drop) - 13px); margin: 13px auto 0; background: var(--fd-line); }   /* starts under the out-port */

.fd-nodes { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 2fr repeat(4, minmax(0, 1fr)); gap: var(--fd-gap); }
.fd-node { position: relative; display: flex; min-width: 0; padding-top: var(--fd-drop); }
.fd-node::before { content: ""; position: absolute; top: 0; height: 1px; left: calc(var(--fd-gap) / -2); right: calc(var(--fd-gap) / -2); background: var(--fd-line); }   /* bus segment */
.fd-node:first-child::before { left: 50%; }
.fd-node:last-child::before { right: 50%; }
.fd-node::after { content: ""; position: absolute; top: 0; left: 50%; width: 1px; height: calc(var(--fd-drop) - 21px); background: var(--fd-line); }   /* drop to the arrowhead */
.fd-box { position: relative; flex: 1; min-width: 0; display: flex; flex-direction: column; padding: 22px 18px 20px; border: 1px solid rgba(255,255,255,.14); border-radius: 16px; background: #0c0c0c; transition: border-color .35s ease; }
.fd-box::before { content: ""; position: absolute; left: 50%; top: -21px; transform: translateX(-50%); border-left: 4px solid transparent; border-right: 4px solid transparent; border-top: 7px solid var(--c-green); }   /* arrowhead into the in-port */
.fd-box:hover { border-color: rgba(0,255,111,.45); }
.fd-link { color: inherit; text-decoration: none; cursor: pointer; outline: none; }
.fd-link:focus-visible { border-color: var(--c-green); box-shadow: 0 0 0 1px var(--c-green); }
.fd-link:hover .pf-corner, .fd-link:focus-visible .pf-corner { border-color: var(--c-green); }
.fd-idx { display: flex; justify-content: space-between; }
.fd-ext { margin-right: 14px; font-size: 12px; line-height: 1; color: var(--c-gray-600); transition: color .35s ease, translate .35s ease; }   /* clear of the corner tick */
.fd-link:hover .fd-ext, .fd-link:focus-visible .fd-ext { color: var(--c-green); translate: 2px -2px; }
.fd-box:hover .pf-port-in { color: var(--c-green); }
.fd-idx { margin: 0; }
/* fixed rows so every card lines up: index / logo slot / name / category (pinned to the bottom, 2 lines reserved) */
.fd-slot { display: flex; align-items: flex-end; height: 44px; margin-top: 30px; }
.fd-name { margin: 16px 0 0; font-weight: 700; font-size: 20px; line-height: 1.2; overflow-wrap: anywhere; }
.fd-cat { margin: auto 0 0; padding-top: 16px; min-height: calc(16px + 3.2em); white-space: normal; }
.fd-anchor .fd-box { border-color: rgba(0,255,111,.45); background: radial-gradient(ellipse at 50% 120%, rgba(0,255,111,.10), transparent 60%), #0c0c0c; }
.fd-anchor .pf-corner { border-color: rgba(0,255,111,.6); }
/* logos sized by height (optical balance: Colossal ~6.7:1, Breaking ~4.3:1, Astromech ~8.8:1), sitting on the slot baseline */
.fd-mark { display: block; width: auto; max-width: 100%; object-fit: contain; object-position: left bottom; filter: brightness(.6); transition: filter .35s ease; }   /* white SVGs → #999 gray */
.fd-link:hover .fd-mark, .fd-link:focus-visible .fd-mark { filter: none; }   /* back to white on hover */
.fd-mark-clsl { height: 40px; }
.fd-mark-brk { height: 30px; }
.fd-mark-astro { height: 19px; margin-bottom: 4px; }   /* thin wordmark: lift it to the optical baseline of the others */
.fd-redact { display: block; width: 62%; max-width: 120px; height: 14px; margin-bottom: 6px; border-radius: 3px; background: repeating-linear-gradient(135deg, #262626 0 6px, #1b1b1b 6px 12px); }
.fd-stealth .fd-box, .fd-future .fd-box { border-style: dashed; }
.fd-stealth .fd-name, .fd-future .fd-name { color: var(--c-gray-100); }
.fd-future .pf-port-dot { animation-duration: 3.2s; opacity: .6; }
/* restricted cards (Stealth / Pipeline): same red "Access restricted" hover as Portfolio's Future Companies card
   (tooltip element + cursor from script.js; the tooltip reuses .pf-tip) */
.fd-restricted .fd-box { cursor: not-allowed; }
.fd-restricted .fd-box:hover { border-color: rgba(255,42,42,.6); }
.fd-restricted .fd-box:hover .pf-corner { border-color: #ff2a2a; }
.fd-restricted .fd-box:hover .pf-port-in { border-color: #ff2a2a; color: #ff2a2a; }
.fd-restricted .fd-box:hover .pf-port-in::before, .fd-restricted .fd-box:hover .pf-port-in::after { border-color: #ff2a2a; }
.fd-restricted .fd-box:hover .pf-port-dot { background: #ff2a2a; box-shadow: 0 0 8px rgba(255,42,42,.8); }
.fd-restricted .fd-box:hover .fd-cat, .fd-restricted .fd-box:hover .fd-idx { color: #ff2a2a; }   /* label + 04/05 index */
.fd-idx { transition: color .35s ease; }
.fd-restricted:hover::after { background: #ff2a2a; }                    /* its drop line */
.fd-restricted .fd-box:hover::before { border-top-color: #ff2a2a; }     /* its arrowhead (desktop: points down) */
.fd:has(.fd-restricted .fd-box:hover) .fd-fund .pf-port-out { border-color: #ff2a2a; color: #ff2a2a; }   /* fund OUT port goes red too */
.fd:has(.fd-restricted .fd-box:hover) .fd-fund .pf-port-out::before, .fd:has(.fd-restricted .fd-box:hover) .fd-fund .pf-port-out::after { border-color: #ff2a2a; }
.fd:has(.fd-restricted .fd-box:hover) .fd-fund .pf-port-out .pf-port-dot { background: #ff2a2a; box-shadow: 0 0 8px rgba(255,42,42,.8); }
.fd-node::after, .fd-box::before { transition: background-color .35s ease, border-color .35s ease; }
.fd-copy { max-width: 1000px; margin: 110px auto 0; text-align: center; font-size: var(--fs-lead); line-height: 1.35; color: var(--c-white); }
.fd-copy .muted { color: var(--c-gray-600); }

@media (max-width: 1180px) {
  .fd-name { font-size: 18px; }
  .fd-cat { min-height: calc(16px + 4.8em); }   /* narrower cards: labels can wrap to 3 lines */
  .fd-mark-clsl { height: 34px; }
  .fd-mark-brk { height: 26px; }
  .fd-mark-astro { height: 16px; }
  .fd-box { padding: 20px 14px 18px; }
  .fd-node .pf-port-in span { display: none; }   /* label won't fit the narrower cards; the dot stays */
  .fd-node .pf-port-in { padding: 0 9px; }
}
@media (max-width: 1000px) {
  .fd { --fd-spine: 14px; --fd-indent: 40px; --fd-gap: 14px; }
  .fd-frame { padding: 96px 24px 110px; }
  .fd-top, .fd-stem, .fd-nodes { max-width: 560px; margin-left: auto; margin-right: auto; }
  .fd-fund { flex: 1; flex-direction: column; align-items: flex-start; gap: 22px; padding: 28px 26px 30px; }
  .fd-fund .pf-port-out { display: none; }
  .fd-stem { width: auto; height: 28px; margin-top: 0; background: linear-gradient(var(--fd-line), var(--fd-line)) no-repeat calc(var(--fd-indent) + var(--fd-spine) - var(--fd-indent)) 0 / 1px 100%; }   /* full-width strip; the line sits on the spine */
  .fd-nodes { grid-template-columns: 1fr; padding-left: var(--fd-indent); }
  .fd-node { padding-top: 0; }
  .fd-node::before { left: calc(var(--fd-spine) - var(--fd-indent)); right: auto; top: calc(var(--fd-gap) * -1); bottom: 0; width: 1px; height: auto; }   /* spine segment */
  .fd-node:first-child::before { left: calc(var(--fd-spine) - var(--fd-indent)); top: 0; }
  .fd-node:last-child::before { right: auto; bottom: 50%; }
  .fd-node::after { top: 50%; left: calc(var(--fd-spine) - var(--fd-indent)); width: calc(var(--fd-indent) - var(--fd-spine) - 8px); height: 1px; }   /* branch */
  .fd-box { min-height: 0; padding: 20px 20px 20px; }
  .fd-box::before { left: -8px; top: 50%; transform: translateY(-50%); border: 4px solid transparent; border-right: 0; border-left: 7px solid var(--c-green); }   /* arrowhead pointing right */
  .fd-node .pf-port-in { display: none; }
  .fd-restricted .fd-box:hover::before { border-top-color: transparent; border-left-color: #ff2a2a; }
  .fd-name { font-size: var(--fs-lead); }
  .fd-slot { height: 36px; margin-top: 18px; }
  .fd-cat { min-height: 0; }
  .fd-mark-clsl { height: 34px; }
  .fd-mark-brk { height: 28px; }
  .fd-mark-astro { height: 18px; }
  .fd-name + .fd-cat { padding-top: 8px; }
  .fd-copy { max-width: 560px; margin-top: 72px; text-align: left; }
}
@media (max-width: 900px) {
  .fd-frame { padding: 72px 20px 80px; }
  .fd-fund-word img:first-child { width: 220px; }
  .fd-fund-word img + img { width: 123px; margin-top: 7px; }
}

/* -------- reveal-on-scroll (progressive; no-JS shows everything) -------- */
/* reveal: 0 → 100% opacity while rising 20px. Uses the standalone `translate` property so it composes
   with elements that carry their own `transform` (rotated/flipped imagery). */
.js .reveal, .js .reveal-fade { opacity: 0; translate: 0 20px; transition: opacity .7s ease var(--d, 0s), translate .7s ease var(--d, 0s); }
.js .reveal.in, .js .reveal-fade.in { opacity: 1; translate: 0 0; }
/* hero: slower load-in; elements then stay put */
.js .hero-fixed .reveal, .js .hero-fixed .reveal-fade { transition-duration: 1s, 1s; }
@media (prefers-reduced-motion: reduce) { .js .reveal, .js .reveal-fade { transition: none; opacity: 1; translate: 0 0; } }



/* ==========================================================================
   PRESS BLOCK (Figma 246:6) — normal flow, light band; offsets mirror the Figma frame
   ========================================================================== */
/* band = the light body (Figma rect 1570); tabs (rects 1571/1572) rise 70px above and hang 64px below it */
.press { position: relative; padding: 70px 0 64px; background: var(--c-black); color: var(--c-black); }
.press-band { position: relative; background: var(--c-gray-100); }
.press-step, .press-fill { position: absolute; display: block; pointer-events: none; }
.press-step-top { left: calc(50% - 80px); width: 260px; height: 82px; top: -70px; }        /* diagonal frame x 680→750 */
.press-fill-top { left: calc(50% + 180px); right: -50vw; height: 82px; top: -70px; background: var(--c-gray-100); }
.press-step-bot { left: calc(50% - 360px); width: 300px; height: 76px; bottom: -64px; }   /* diagonal frame x 560→624 */
.press-fill-bot { right: calc(50% + 360px); left: -50vw; height: 76px; bottom: -64px; background: var(--c-gray-100); }
.press-frame { position: relative; max-width: 1440px; margin: 0 auto; padding: 129px 40px 96px; }
.press-step-label { position: absolute; left: calc(50% + 42px); top: -54px; margin: 0; }   /* on the raised step, just right of the diagonal */
.press-cluster-tr { position: absolute; right: 20px; top: -50px; width: 158px; height: 40px; }   /* on the raised top-right step, 20px from its top */
.press-badge img { filter: brightness(0); }   /* green thesis badge → black */
.press-rule { position: absolute; left: 40px; top: 95px; width: 536px; height: 8px; display: block; }
.press-panel-marks { position: absolute; right: 38px; top: -33px; width: 220px; height: 10px; z-index: 2; }
.press-panel-marks img { position: absolute; top: 0; width: 8.836px; height: 8.836px; }
.press-panel-marks p { position: absolute; margin: 0; }
.press-cluster { display: block; width: 84.325px; height: 25px; margin: 64px 0 -134px -14px; }   /* sits on the lower-left step, 26px above its edge */

.press-head { display: grid; grid-template-columns: 518px 1fr; column-gap: 120px; align-items: start; }
.press-h1 { margin: 0; max-width: 100%; font-weight: 700; font-size: var(--fs-h1); line-height: 54px; }
.press-lead-wrap { position: relative; padding-top: 0; }
.press-dots { position: absolute; left: 0; top: -33px; width: 61.85px; height: 8.836px; }
.press-lead { margin: 0; max-width: 640px; font-size: var(--fs-lead); line-height: normal; }

.press-label { margin: 120px 0 24px; }

/* logo panel: frosted-glass card (same recipe as the Full Stack panel) with a small lip on the top-left
   carrying the label, and the large dot texture peeking out behind it */
.press-panel-wrap { position: relative; margin-top: 100px; }
.press-texture { position: absolute; left: -386px; top: -44px; width: 552px; height: 494px; z-index: 0; pointer-events: none; }   /* one row/column peeks out; the rest shows through the glass */
.press-panel { position: relative; z-index: 1; padding: 104px 40px 40px; border-radius: 30px;   /* 40 + 64px lip */
  background: linear-gradient(135deg, rgba(255,255,255,0.34) 0%, rgba(255,255,255,0.14) 45%, rgba(255,255,255,0.24) 100%);
  border: 1px solid rgba(255,255,255,0.65);
  box-shadow: inset 20px 20px 14px 0 rgba(255,255,255,0.35), inset -1px -1px 0 0 rgba(0,0,0,0.06);
  -webkit-backdrop-filter: blur(40px) saturate(1.2); backdrop-filter: blur(40px) saturate(1.2); }
.press-panel-wrap { filter: drop-shadow(0 0 50px rgba(0,0,0,0.25)) drop-shadow(0 24px 30px rgba(0,0,0,0.2)); }   /* = the Full Stack panel's shadow, following the lipped outline */
.press-corner-icon { position: absolute; right: 30px; top: 94px; width: 25px; height: 25px; }
/* raised lip on the top-left (mirror of the pipeline panel's tab); the outline is applied as a clip-path by script.js */
.press-lip-label { position: absolute; left: 40px; top: 23px; margin: 0; }
.press-panel .press-grid { position: relative; z-index: 1; }

.press-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, 1fr); gap: 16px; }
.press-tile { position: relative; height: 96px; display: flex; align-items: center; justify-content: center; text-align: center; }
.press-tile span { font-weight: 700; font-size: 20px; letter-spacing: .01em; line-height: 1.1; padding: 0 16px; }
.press-tile img { display: block; width: auto; height: auto; max-width: 160px; max-height: 40px; object-fit: contain; }   /* equal visual weight: every mark boxed to 160×40 */

@media (max-width: 1100px) {
  .press-head { grid-template-columns: 1fr; gap: 56px; }
  .press-dots { display: none; }
  .press-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 720px) {
  .press-frame { padding: 96px 24px 64px; }
  .press-h1 { font-size: 36px; line-height: 42px; }
  .press-grid { grid-template-columns: repeat(2, 1fr); }
}


/* ==========================================================================
   MOMENTUM intro — decorative micro elements (borrowed from the Colossal Snapshot band)
   ========================================================================== */
.ngx-deco { position: absolute; inset: 0; pointer-events: none; }
.ngx-deco-arrow { pointer-events: auto; }   /* the arrow is clickable even though the intro layer is not */
.ngx-deco p { margin: 0; }
.ngx-deco .ocr10 { line-height: 1.6; }
.ngx-deco-row { position: absolute; left: var(--ngx-gut); top: calc(clamp(1.5rem, 4vh, 3rem) + 4px); width: 115.286px; height: 16.471px; }
.ngx-deco-tr { position: absolute; right: var(--ngx-gut); top: clamp(1.5rem, 4vh, 3rem); width: 110px; height: 23px; }
.ngx-deco-vt { position: absolute; right: calc(var(--ngx-gut) - 6px); top: calc(50% - 29px); width: 14px; height: 58px; }
/* bottom row shares the scroll cue's vertical centre (cue: bottom clamp(2rem,5vh,3.25rem), 34px tall → centre +17px) */
.ngx-deco-br { position: absolute; right: calc(var(--ngx-gut) + 72px); bottom: calc(clamp(2rem, 5vh, 3.25rem) + 4.5px); width: 228px; height: 25px; }
.ngx-deco-arrow { position: absolute; right: var(--ngx-gut); bottom: calc(clamp(2rem, 5vh, 3.25rem) - 3px); width: 40px; height: 40px; }
@media (max-width: 860px) { .ngx-deco-vt, .ngx-deco-br, .ngx-deco-row { display: none; } }


/* ==========================================================================
   PORTFOLIO — data-flow diagram (portfolio.js draws the strands on the canvas)
   ========================================================================== */
.pf { position: relative; background: var(--c-black); color: var(--c-white); }
.pf-frame { position: relative; max-width: 1440px; margin: 0 auto; padding: 140px 40px 120px; }
.pf-marks { position: absolute; right: 40px; top: calc(-1 * min(26.9px, 1.868vw) - 12.5px); width: 126px; height: 25px; z-index: 2; }   /* vertically centred on the 53.8px tab band above (scales with the stage below 1440) */
.pf-marks img:nth-child(3) { display: none; }   /* only ~160px of flat band right of the tab slope: dot row + crosshair, clear of the slope */
@media (max-width: 1279px) { .pf-marks { display: none; } }   /* the tab scales with the stage below 1440; under ~1280 the flat band is too narrow */   /* 20px below the top of the black tab area (the Press band ends 64px above this section) */
.pf-head { display: grid; grid-template-columns: 518px 1fr; column-gap: 102px; align-items: baseline; }   /* lead column at x 660; headline + lead share a first baseline (Portfolio only) */
.pf-eyebrow { grid-column: 1 / -1; position: relative; display: flex; align-items: center; gap: 10px; margin-bottom: 40px; }
.pf-sq { position: absolute; left: -20px; top: 5.5px; display: block; width: 5px; height: 5px; background: var(--c-green); }   /* in the margin, like the 01 Thesis tag */
.pf-chip { position: relative; display: inline-flex; align-items: center; height: 16px; padding: 0 11px 0 6px; color: var(--c-green); font-family: var(--f-mono); font-size: 10px; line-height: 1.4; text-transform: uppercase;
  clip-path: polygon(0 0, calc(100% - 5px) 0, 100% 5px, 100% 100%, 5px 100%, 0 calc(100% - 5px)); background: var(--c-green); }
.pf-chip::before { content: ""; position: absolute; inset: 1px; background: var(--c-black); clip-path: polygon(0 0, calc(100% - 4.5px) 0, 100% 4.5px, 100% 100%, 4.5px 100%, 0 calc(100% - 4.5px)); }
.pf-chip > span { position: relative; }
.pf-h1 { margin: 0; font-weight: 700; font-size: var(--fs-h1); line-height: 54px; }
.pf-lead { margin: 0; max-width: 684px; font-size: var(--fs-lead); line-height: normal; color: var(--c-gray-100); }

.pf-diagram { position: relative; margin-top: 96px; }
.pf-canvas { position: absolute; inset: 0; z-index: 0; width: 100%; height: 100%; pointer-events: none; }
.pf-src, .pf-cards { position: relative; z-index: 1; }   /* HTML nodes paint above the canvas */
/* shared card bits */
.pf-img { position: relative; border-radius: 14px; background: #0c0c0c; border: 1px solid rgba(255,255,255,.12); overflow: hidden; display: flex; align-items: center; justify-content: center; transition: border-color .35s ease, box-shadow .35s ease; }
.pf-img img, .pf-img video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.pf-img-label { text-align: center; line-height: 1.6; }
.pf-img-label b { display: block; font-weight: 400; color: var(--c-gray-100); }
.pf-corner { position: absolute; width: 10px; height: 10px; border: 1px solid rgba(255,255,255,.35); transition: border-color .35s ease; }
.pf-corner.tl { left: 10px; top: 10px; border-right: 0; border-bottom: 0; }
.pf-corner.tr { right: 10px; top: 10px; border-left: 0; border-bottom: 0; }
.pf-corner.bl { left: 10px; bottom: 10px; border-right: 0; border-top: 0; }
.pf-corner.br { right: 10px; bottom: 10px; border-left: 0; border-top: 0; }
.pf-cat { margin: 0; line-height: 1.6; }
.pf-name { margin: 0; font-weight: 700; font-size: var(--fs-lead); line-height: 1.15; }
.pf-desc { margin: 12px 0 0; font-size: var(--fs-small); line-height: 1.5; color: var(--c-gray-100); }
.pf-meta { margin: 18px 0 0; padding-top: 12px; border-top: 1px solid rgba(255,255,255,.1); line-height: 1.6; }
.pf-note { position: relative; z-index: 1; margin: 24px 0 0; line-height: 1.6; white-space: normal; max-width: 70ch; }

/* source node: Colossal card, full frame width, capabilities along its bottom edge */
.pf-src { position: relative; padding: 0 0 40px; }
.pf-src-grid { display: grid; grid-template-columns: 300px 1fr; gap: 40px; align-items: center; }
.pf-src-img { aspect-ratio: 4 / 3; }
.pf-src-text .pf-desc { max-width: 720px; font-size: var(--fs-body); }
.pf-src-logo { display: block; width: 240px; height: auto; margin: 12px 0 0; }
/* connector ports: tech chips straddling the box edges; strands run port-to-port */
.pf-port { position: absolute; left: 50%; transform: translateX(-50%); z-index: 2; display: flex; align-items: center; gap: 8px; height: 26px; padding: 0 10px 0 9px;
  background: var(--c-black); border: 1px solid rgba(255,255,255,.35); color: var(--c-gray-100); white-space: nowrap; }
.pf-port::before, .pf-port::after { content: ""; position: absolute; top: -1px; bottom: -1px; width: 5px; border: 1px solid var(--c-green); }
.pf-port::before { left: -1px; border-right: 0; }
.pf-port::after { right: -1px; border-left: 0; }
.pf-port-dot { display: block; width: 6px; height: 6px; border-radius: 50%; background: var(--c-green); box-shadow: 0 0 8px rgba(0,255,111,.8); animation: pf-port-pulse 1.6s ease-in-out infinite; }
@keyframes pf-port-pulse { 50% { opacity: .35; box-shadow: 0 0 0 rgba(0,255,111,0); } }
.pf-port-out { bottom: -13px; }
.pf-port-in { top: -13px; }
.pf-card { position: relative; }
.pf-card .pf-port-in { transition: border-color .35s ease, color .35s ease; }
.pf-card.is-on .pf-port-in, .pf-card:hover .pf-port-in { border-color: var(--c-green); color: var(--c-green); }
.pf-future .pf-port-dot { animation-duration: 3.2s; opacity: .6; }


/* spin-outs: name only at rest; hover/focus enlarges the card and reveals the copy */
.pf-cards { list-style: none; margin: 320px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.pf-card { min-width: 0; }
.pf-card .pf-meta, .pf-card .pf-cat { white-space: normal; }   /* the nowrap OCR labels were forcing a min-width and overflowing the frame */
.pf-card { position: relative; cursor: default;
}
.pf-card[data-href]:not([data-href=""]) { cursor: pointer; }
.pf-card { outline: none; padding: 18px 18px 22px; border: 1px solid rgba(255,255,255,.14); border-radius: 16px; background: rgba(0,0,0,.6);
  transition: opacity .35s ease, transform .45s cubic-bezier(.16,1,.3,1), border-color .35s ease; transform-origin: 50% 0; }
.pf-card:hover, .pf-card.is-on { border-color: rgba(0,255,111,.45); }
.pf-card .pf-img { aspect-ratio: 4 / 3; background: #0c0c0c; border: 1px solid rgba(255,255,255,.1); border-radius: 12px; }
/* equal-height cards; the rule + meta line pin to the bottom so they align across the row */
.pf-card { display: flex; flex-direction: column; }
.pf-body { padding: 20px 2px 0; display: flex; flex-direction: column; flex: 1; }
.pf-details { display: flex; flex-direction: column; flex: 1; }
.pf-details .pf-meta { margin-top: auto; padding-top: 12px; min-height: calc(12px + 2 * 1.6em); }   /* reserve two lines so the rule sits at the same height on every card */
.pf-details .pf-desc { margin-bottom: 18px; }
.pf-details .pf-desc:has(+ .pf-desc) { margin-bottom: 0; }
.pf-details { }
.pf-details .pf-cat { margin-top: 10px; }
.pf-card:hover, .pf-card:focus-visible, .pf-card.is-on { transform: scale(1.03); }
.pf-card.is-dim { opacity: .3; }
.pf-card.is-on .pf-corner { border-color: var(--c-green); }

/* the future node reads as headroom: dashed, dormant */
.pf-redact { position: absolute; inset: 0; z-index: 0; width: 100%; height: 100%; display: block; }
.pf-future .pf-corner { z-index: 1; }


@media (max-width: 1100px) {
  .pf-head { grid-template-columns: 1fr; gap: 40px; }
  .pf-src-grid { grid-template-columns: 1fr; gap: 24px; }
    .pf-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 260px; }
}
@media (max-width: 720px) {
  .pf-frame { padding: 96px 24px 80px; }
  .pf-h1 { font-size: 36px; line-height: 42px; }
  .pf-src { padding: 18px; }
    .pf-cards { grid-template-columns: 1fr; margin-top: 200px; }
}

/* cursor-following tooltip (Future Companies) */
.pf-tip { position: fixed; z-index: 50; pointer-events: none; padding: 4px 8px; color: var(--c-green); background: var(--c-black);
  border: 1px solid rgba(0,255,111,.6); white-space: nowrap; opacity: 0; transform: translateY(4px); transition: opacity .18s ease, transform .18s ease; }
.pf-tip.is-on { opacity: 1; transform: none; }

/* experiment: Future Companies hover state in red (remove this block to revert to green) */
.pf-future:hover, .pf-future.is-on { border-color: rgba(255,42,42,.6); }
.pf-future.is-on .pf-port-in, .pf-future:hover .pf-port-in { border-color: #ff2a2a; color: #ff2a2a; }
.pf-future:hover .pf-port-in::before, .pf-future:hover .pf-port-in::after, .pf-future.is-on .pf-port-in::before, .pf-future.is-on .pf-port-in::after { border-color: #ff2a2a; }
.pf-future:hover .pf-port-dot, .pf-future.is-on .pf-port-dot { background: #ff2a2a; box-shadow: 0 0 8px rgba(255,42,42,.8); }
.pf-future.is-on .pf-corner, .pf-future:hover .pf-corner { border-color: #ff2a2a; }
.pf-future:hover .pf-cat, .pf-future.is-on .pf-cat { color: #ff2a2a; }
.pf-tip { color: #ff2a2a; border-color: rgba(255,42,42,.7); }
.pf-diagram.is-future .pf-port-out { border-color: #ff2a2a; color: #ff2a2a; }
.pf-diagram.is-future .pf-port-out::before, .pf-diagram.is-future .pf-port-out::after { border-color: #ff2a2a; }
.pf-diagram.is-future .pf-port-out .pf-port-dot { background: #ff2a2a; box-shadow: 0 0 8px rgba(255,42,42,.8); }


/* ==========================================================================
   LEADERSHIP — light band with a raised top step; dossier tiles scan open on hover
   ========================================================================== */
.ld { position: relative; padding-top: 54px; background: var(--c-black); color: var(--c-black); }   /* 54px = tab height */
.ld-band { position: relative; background: var(--c-gray-100); }
.ld-tab { position: absolute; left: calc(50% - 843px); top: -54px; width: 1686px; height: 140px; object-fit: cover; object-position: top; z-index: 0; pointer-events: none; }   /* Platform panel shape: only its top tab shows above the band */
.ld-tab-label { position: absolute; left: 50%; top: -37px; transform: translateX(-50%); margin: 0; z-index: 2; white-space: nowrap; }
.ld-frame { position: relative; z-index: 1; max-width: 1440px; margin: 0 auto; padding: 129px 40px 120px; }
.ld-cluster-tr { position: absolute; right: 40px; top: 40px; width: 158px; height: 40px; }
.ld-rule { position: absolute; left: 40px; top: 95px; width: 536px; height: 8px; display: block; }
.ld-cluster { display: block; width: 84.325px; height: 25px; margin: 64px 0 0 -14px; }

.ld-head { display: grid; grid-template-columns: 518px 1fr; column-gap: 102px; align-items: start; }   /* lead column at x 660, same as every section */
/* section eyebrow: same black notched chip + square as 01 Thesis / 02 Platform on the stage */
.ld-eyebrow { grid-column: 1 / -1; position: relative; display: flex; margin-bottom: 40px; }
.ld-sq { position: absolute; left: -20px; top: 5.5px; width: 5px; height: 5px; background: var(--c-black); }
.ld-tag { position: relative; display: inline-flex; align-items: center; height: 16px; padding: 0 13px 0 6px; font-family: var(--f-mono); font-size: var(--fs-micro); line-height: 1.4; text-transform: uppercase; white-space: nowrap; }
.ld-tag img { position: absolute; inset: 0; width: 100%; height: 100%; transform: scaleY(-1); }
.ld-tag span { position: relative; }
.ld-h1 { margin: 0; font-weight: 700; font-size: var(--fs-h1); line-height: 54px; }
.ld-lead-wrap { position: relative; }
.ld-dots { position: absolute; left: 0; top: -33px; width: 61.85px; height: 8.836px; }
.ld-lead { margin: 0; max-width: 684px; font-size: var(--fs-lead); line-height: normal; }

.ld-group { margin-top: 110px; }
.ld-group + .ld-group { margin-top: 56px; }
.ld-group-head { display: flex; align-items: center; justify-content: space-between; padding-bottom: 18px; border-bottom: 1px solid rgba(0,0,0,.18); margin-bottom: 28px; }
.ld-group-head p { margin: 0; }
.ld-marks { position: relative; width: 228px; height: 25px; }
.ld-hazard { display: block; width: 187px; height: 16px; filter: brightness(0); opacity: .8; }   /* green stripes → black */

.ld-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.ld-tile { position: relative; outline: none; cursor: default; }
.ld-portrait { position: relative; aspect-ratio: 1 / 1; overflow: hidden; border-radius: 14px; background: #c4c4c4;
  background-image: radial-gradient(rgba(0,0,0,.22) 1px, transparent 1.2px); background-size: 8px 8px; }
.ld-portrait img, .ld-portrait video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.05); transition: filter .6s ease, transform .8s cubic-bezier(.16,1,.3,1); }
.ld-tile:hover .ld-portrait img, .ld-tile:focus-visible .ld-portrait img { filter: none; transform: scale(1.03); }
.ld-portrait .pf-corner { border-color: rgba(0,0,0,.45); z-index: 3; }
.ld-tile:hover .pf-corner, .ld-tile:focus-visible .pf-corner { border-color: var(--c-green); }
.ld-slot-label { position: absolute; left: 50%; top: 42%; transform: translate(-50%, -50%); text-align: center; line-height: 1.6; color: rgba(0,0,0,.55); }
.ld-slot-label b { display: block; font-weight: 400; color: rgba(0,0,0,.8); }
/* scan line: sweeps the portrait once when the tile is entered */
.ld-scan { position: absolute; left: 0; right: 0; top: -4px; height: 2px; background: var(--c-green); box-shadow: 0 0 12px 2px rgba(0,255,111,.7); opacity: 0; z-index: 4; pointer-events: none; }
.ld-tile:hover .ld-scan, .ld-tile:focus-visible .ld-scan { animation: ld-scan .9s cubic-bezier(.4,0,.2,1) 1; }
@keyframes ld-scan { 0% { top: -4px; opacity: 1; } 90% { opacity: 1; } 100% { top: 100%; opacity: 0; } }
/* bio panel rises from the bottom of the portrait */
.ld-bio { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; padding: 22px 22px 24px; background: rgba(0,0,0,.92); color: var(--c-white);
  transform: translateY(100%); transition: transform .55s cubic-bezier(.16,1,.3,1) .15s; }
.ld-tile:hover .ld-bio, .ld-tile:focus-visible .ld-bio { transform: none; }
.ld-bio p { margin: 0; }
.ld-bio-tags { line-height: 1.6; margin-bottom: 10px !important; }
.ld-bio-text { font-size: 13px; line-height: 1.45; color: var(--c-gray-100); }
.ld-bio { max-height: 100%; overflow-y: auto; padding: 18px 20px 20px; }
.ld-tile.is-open .ld-bio { transform: none; }
.ld-portrait { cursor: pointer; }
.ld-cap { padding: 18px 2px 0; }
.ld-meta { margin: 0 0 8px; color: var(--c-gray-600); line-height: 1.6; }
.ld-tile:hover .ld-meta { color: #0a8a44; }
.ld-name { margin: 0; font-weight: 700; font-size: var(--fs-lead); line-height: 1.15; }
.ld-role { margin: 6px 0 0; font-size: var(--fs-small); line-height: 1.4; color: #4a4a4a; }

/* anchor note fills the third column beside the Colossal founders */
/* the disclosure box stops well short of the portraits (asymmetry), with the wireframe eye mark filling the gap beneath */
.ld-logo-col { list-style: none; }
.ld-logo { aspect-ratio: 1 / 1; display: flex; flex-direction: column; justify-content: center; gap: 6%; padding: 0 10%; }
.ld-logo img { display: block; width: 100%; height: auto; filter: brightness(0); }
.ld-logo img + img { width: 56%; }
.ld-note-col { position: relative; display: flex; flex-direction: column; align-self: start; aspect-ratio: 1 / 1; }   /* same height as the portraits, so the eye mark sits on their bottom edge */
.ld-note-under { display: flex; align-items: flex-end; justify-content: space-between; margin-top: auto; padding: 0 6px; }
.ld-cmark { display: block; width: 72px; height: auto; }
.ld-note { position: relative; display: flex; flex-direction: column; flex: 0 0 auto; min-height: 58%; padding: 26px 26px 24px; border-radius: 14px; background: var(--c-black); color: var(--c-white); }
.ld-eye { display: block; width: 96px; height: auto; margin: 0; filter: brightness(0); opacity: .85; }
.ld-note p { margin: 0; }
.ld-note-text { margin-top: 14px !important; font-size: var(--fs-body); line-height: 1.5; color: var(--c-gray-100); }
.ld-note-foot { margin-top: auto; padding-top: 22px; display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; }
.ld-note-badge { position: relative; width: 56px; height: 40px; flex: none; overflow: hidden; }

@media (max-width: 1100px) {
  .ld-head { grid-template-columns: 1fr; gap: 40px; }
  .ld-eyebrow { margin-bottom: 0; }   /* the stacked grid's row gap already spaces it */
  .ld-dots { display: none; }
  .ld-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  }
@media (max-width: 720px) {
  .ld-frame { padding: 96px 24px 80px; }
  .ld-h1 { font-size: 36px; line-height: 42px; }
  .ld-grid { grid-template-columns: 1fr; }
  .ld-bio { transform: none; }   /* no hover on touch: bios visible */
}


/* ==========================================================================
   FOOTER — ported from neogenesis-site, restyled to this system
   ========================================================================== */
.ft { position: relative; background: var(--c-black); color: var(--c-gray-100); border-top: 1px solid rgba(255,255,255,.12); }
.foot-wrap { max-width: 1440px; margin: 0 auto; padding: 96px 40px 48px; }
.foot-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 40px; }
.foot-word { display: block; }
.foot-marks { position: relative; width: 228px; height: 25px; margin-top: 8px; }
.foot-eye { position: absolute; right: 0; top: 52px; width: 56px; height: 40px; overflow: hidden; }   /* segmented-ring badge in the ring-row gray */
.foot-tag { position: absolute; left: 0; top: 72px; transform: translateY(-50%); margin: 0; width: 156px; white-space: normal; line-height: 1.6; color: var(--c-gray-600); }   /* left-aligned to the ring row, centred on the badge */
.foot-cols { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr 1.1fr; gap: 32px; margin-top: 72px; padding-top: 40px; border-top: 1px solid rgba(255,255,255,.12); }
.foot-col h3 { margin: 0 0 14px; font-family: var(--f-mono); font-weight: 400; font-size: var(--fs-micro); line-height: 1.6; text-transform: uppercase; color: var(--c-gray-600); }
.foot-col p { margin: 0; font-size: var(--fs-small); line-height: 1.6; max-width: 38ch; color: var(--c-gray-100); }
.foot-col ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.foot-col li { font-size: var(--fs-small); line-height: 1.5; }
.foot-col a { color: var(--c-gray-100); transition: color .3s ease; overflow-wrap: anywhere; }
.foot-col a:hover { color: var(--c-green); }
.foot-col a span { color: var(--c-gray-600); margin-left: 4px; }

.foot-legalpanel { margin-top: 56px; padding-top: 28px; border-top: 1px solid rgba(255,255,255,.12); }
.foot-legal-h { margin: 0 0 16px; font-family: var(--f-mono); font-weight: 400; font-size: var(--fs-caption); line-height: 1.6; text-transform: uppercase; color: var(--c-white); }
.legal-item { border-bottom: 1px solid rgba(255,255,255,.1); }
.legal-item:first-of-type { border-top: 1px solid rgba(255,255,255,.1); }
.legal-item summary { list-style: none; display: flex; align-items: center; gap: 16px; padding: 18px 0; cursor: pointer; }
.legal-item summary::-webkit-details-marker { display: none; }
.legal-title { font-size: var(--fs-body); font-weight: 500; color: var(--c-gray-100); transition: color .3s ease; }
.legal-meta { margin-left: auto; margin-right: 12px; font-family: var(--f-mono); font-size: var(--fs-micro); line-height: 1.6; text-transform: uppercase; color: var(--c-gray-600); }
.legal-mark { position: relative; width: 11px; height: 11px; flex: none; }
.legal-mark::before, .legal-mark::after { content: ""; position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); background: var(--c-green); transition: transform .3s ease; }
.legal-mark::before { width: 11px; height: 1px; }
.legal-mark::after { width: 1px; height: 11px; }
.legal-item[open] .legal-mark::after { transform: translate(-50%, -50%) scaleY(0); }
.legal-item[open] .legal-title, .legal-item summary:hover .legal-title { color: var(--c-white); }
.legal-body { padding: 0 0 22px; max-width: 78ch; }
.legal-body p { margin: 0; font-size: var(--fs-caption); line-height: 1.7; color: var(--c-gray-600); }
.legal-body p + p { margin-top: 10px; }
.legal-body b { font-weight: 500; color: var(--c-gray-100); }
.legal-body a { color: var(--c-gray-100); text-decoration: underline; text-underline-offset: 3px; }
@media (min-width: 900px) { .legal-body { max-width: none; columns: 2; column-gap: 48px; } .legal-body p { break-inside: avoid; } }

.foot-legal { margin-top: 40px; }   /* the last legal item already draws the rule */
.foot-disc { margin: 0; font-size: var(--fs-caption); line-height: 1.7; color: var(--c-gray-600); }
.foot-disc a { color: var(--c-gray-100); text-decoration: underline; text-underline-offset: 3px; }
@media (min-width: 820px) { .foot-disc { columns: 2; column-gap: 48px; } }
.foot-base { display: flex; flex-wrap: wrap; gap: 12px 24px; justify-content: space-between; margin-top: 28px; font-family: var(--f-mono); font-size: var(--fs-micro); line-height: 1.6; text-transform: uppercase; color: var(--c-gray-600); }

@media (max-width: 1100px) { .foot-cols { grid-template-columns: repeat(3, 1fr); } .foot-col:first-child { grid-column: 1 / -1; } }
@media (max-width: 720px) {
  .foot-wrap { padding: 64px 24px 40px; }
  .foot-top { flex-direction: column; }
  .foot-word img:first-child { width: 280px !important; } .foot-word img:last-child { width: 156px !important; }
  .foot-cols { grid-template-columns: repeat(2, 1fr); }
  .legal-meta { display: none; }
}


/* ==========================================================================
   AS SEEN IN — compact press strip above the footer (replaces the former Press block)
   ========================================================================== */
.seen { position: relative; background: var(--c-black); color: var(--c-white); }
.seen-frame { max-width: 1440px; margin: 0 auto; padding: 72px 40px 24px; }
.seen-label { margin: 0 0 28px; }
.seen-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 16px; align-items: center; }
.seen-grid li { display: flex; align-items: center; justify-content: center; height: 56px; }
.seen-grid img { display: block; width: auto; height: auto; max-width: 120px; max-height: 30px; object-fit: contain; filter: invert(1); opacity: .55; transition: opacity .3s ease; }
.seen-grid li:hover img { opacity: .9; }
.seen-grid li.seen-clone { display: none; }   /* ticker duplicates (script.js); only used on phones */
@keyframes seen-flow { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (max-width: 1100px) { .seen-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px 16px; } }
@media (max-width: 900px) { .seen-frame { padding: 56px 20px 8px; } .seen-grid img { max-width: 100px; max-height: 26px; } }


/* ---- Leadership, client round 2: centred tiers, personal links, platform architects + centred disclosure ---- */
.ld-tier { position: relative; }
.ld-grid-2 { grid-template-columns: repeat(2, 300px); justify-content: center; gap: 32px; }
.ld-grid-row2 { grid-template-columns: 300px; margin-top: 24px; }
.ld-side-label { position: absolute; right: 0; top: 0; width: 200px; }
.ld-side-label img { display: block; width: 100%; height: auto; filter: brightness(0); }
.ld-side-label img + img { width: 56%; margin-top: 8px; }
.ld[data-variant="nolabel"] .ld-side-label { display: none; }
.ld-links { margin-top: 14px; padding-top: 12px; border-top: 1px solid rgba(0,0,0,.14); display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.ld-site { color: var(--c-black); text-decoration: none; letter-spacing: .02em; }
.ld-site:hover { color: #0a8a44; }
.ld-social { display: flex; gap: 10px; }
.ld-social a { display: inline-flex; width: 28px; height: 28px; align-items: center; justify-content: center; border: 1px solid rgba(0,0,0,.2); color: var(--c-black); transition: border-color .25s ease, color .25s ease, background .25s ease; }
.ld-social a:hover { background: var(--c-black); border-color: var(--c-black); color: var(--c-green); }
.ld-social svg { width: 12px; height: 12px; fill: currentColor; }
.ld-disclosure { max-width: 720px; margin: 48px auto 0; text-align: center; }
.ld-disclosure p { margin: 0; }
.ld-nonaffil { max-width: 720px; margin: 40px auto 0; text-align: center; font-size: var(--fs-body); line-height: 1.5; color: var(--c-black); }
.ld-nonaffil + .ld-disclosure { margin-top: 28px; }
.ld-disc-text { margin-top: 12px !important; font-size: var(--fs-small); line-height: 1.6; color: #4a4a4a; }


/* ==========================================================================
   CONTACT — modal dialog with the first-party inquiry form
   ========================================================================== */
.ct-modal { position: fixed; inset: 0; z-index: 100; display: flex; align-items: center; justify-content: center; padding: 24px; }
.ct-modal[hidden] { display: none; }
.ct-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.78); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }
.ct-dialog { position: relative; width: min(1100px, 100%); max-height: calc(100vh - 48px); overflow: auto; padding: 56px 56px 48px; color: var(--c-white); background: transparent;
  --ct-cut: 28px; clip-path: polygon(0 0, calc(100% - var(--ct-cut)) 0, 100% var(--ct-cut), 100% 100%, var(--ct-cut) 100%, 0 calc(100% - var(--ct-cut)));
  display: grid; grid-template-columns: 380px 1fr; column-gap: 72px; align-items: start; }
/* 1px outline that follows the chamfer: a full-bleed stroke layer, then the black fill inset by 1px with a matching (1px smaller) cut */
.ct-dialog::before { content: ""; position: absolute; inset: 0; background: rgba(255,255,255,.22); z-index: -2; }
.ct-dialog::after { content: ""; position: absolute; inset: 1px; background: var(--c-black); z-index: -1;
  clip-path: polygon(0 0, calc(100% - var(--ct-cut) + 0.6px) 0, 100% calc(var(--ct-cut) - 0.6px), 100% 100%, calc(var(--ct-cut) - 0.6px) 100%, 0 calc(100% - var(--ct-cut) + 0.6px)); }
.ct-dialog > * { position: relative; z-index: 1; }
.ct-modal.is-open .ct-dialog { animation: ct-in .45s cubic-bezier(.16,1,.3,1) both; }
.ct-modal.is-open .ct-backdrop { animation: ct-fade .35s ease both; }
@keyframes ct-in { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@keyframes ct-fade { from { opacity: 0; } to { opacity: 1; } }
.ct-close { position: absolute; right: 22px; top: 22px; width: 36px; height: 36px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid rgba(255,255,255,.25); background: transparent; color: var(--c-white); cursor: pointer; transition: background .25s ease, color .25s ease, border-color .25s ease; }
.ct-close svg { width: 12px; height: 12px; stroke: currentColor; stroke-width: 1.2; fill: none; }
.ct-close:hover { background: var(--c-green); border-color: var(--c-green); color: var(--c-black); }
.ct-h1 { margin: 0; font-weight: 700; font-size: var(--fs-h1); line-height: 1.12; }
.ct-lead { margin: 18px 0 0; max-width: 34ch; font-size: var(--fs-lead); line-height: normal; color: var(--c-gray-100); }
.ct-mail { color: var(--c-gray-100); text-decoration: underline; text-underline-offset: 3px; }
.ct-mail:hover { color: var(--c-green); }
.ct-form { display: grid; grid-template-columns: 1fr 1fr; gap: 26px 24px; }
.ct-field { display: flex; flex-direction: column; gap: 10px; }
.ct-field-msg { grid-column: 1 / -1; }
.ct-field label { color: var(--c-gray-600); }
.ct-field input, .ct-field textarea { width: 100%; margin: 0; padding: 12px 0; border: 0; border-bottom: 1px solid rgba(255,255,255,.28); border-radius: 0; background: transparent; color: var(--c-white);
  font-family: var(--f-sans); font-size: var(--fs-body); line-height: 1.4; outline: none; transition: border-color .25s ease; }
.ct-field textarea { resize: vertical; min-height: 110px; }
.ct-field input:focus, .ct-field textarea:focus { border-bottom-color: var(--c-green); }
.ct-form.is-checked :invalid { border-bottom-color: #ff2a2a; }
.ct-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.ct-foot { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-top: 6px; }
.ct-note { margin: 0; max-width: 46ch; white-space: normal; }
.ct-submit { position: relative; display: inline-flex; align-items: center; gap: 12px; height: 44px; padding: 0 22px; border: 0; cursor: pointer; background: var(--c-green); color: var(--c-black);
  font-family: var(--f-sans); font-weight: 500; font-size: var(--fs-body); clip-path: polygon(0 0, calc(100% - 10px) 0, 100% 10px, 100% 100%, 10px 100%, 0 calc(100% - 10px)); transition: background .25s ease; }
.ct-submit svg { width: 11px; height: 8px; stroke: currentColor; fill: none; stroke-width: 1.2; }
.ct-submit:hover { background: var(--c-white); }
.ct-submit[disabled] { opacity: .55; cursor: progress; }
.ct-status { grid-column: 1 / -1; margin: 0; min-height: 1.6em; color: var(--c-gray-600); white-space: normal; }
.ct-status.is-ok { color: var(--c-green); }
.ct-status.is-err { color: #ff2a2a; }
body.ct-lock { overflow: hidden; }
@media (max-width: 1100px) { .ct-dialog { grid-template-columns: 1fr; gap: 36px; padding: 48px 40px 40px; } }
@media (max-width: 900px) { .ct-modal { padding: 0; align-items: stretch; } .ct-dialog { width: 100%; max-height: none; min-height: 100%; clip-path: none; padding: 72px 20px 40px; } .ct-dialog::before { display: none; } .ct-dialog::after { inset: 0; clip-path: none; }
  .ct-form { grid-template-columns: 1fr; gap: 20px; } .ct-foot { flex-direction: column; align-items: flex-start; gap: 18px; } .ct-lead { font-size: var(--fs-lead); line-height: 1.3; } }

/* Fund band: wordmark only, centred in the box (fund size removed, Oct 2026). Box keeps its previous width. */
.fd-fund { justify-content: center; min-width: 660px; }
@media (max-width: 1000px) { .fd-fund { align-items: center; min-width: 0; } }
/* Optical centre: "Capital" is shorter and left-aligned under "NeoGenesis", so the lockup's visual weight sits left of
   its box. Nudge the whole lockup right by 8% of its width (≈24px desktop, ≈18px phone) without altering the logo. */
.fd-fund-word { transform: translateX(8%); }
.hero-band[hidden] { display: none !important; }   /* announcement band parked until the press release is live */
/* Hero autoplay fallback: animated image shown when a browser blocks video autoplay (sits exactly where the video does) */
.hero-bg .hero-anim { position: absolute; left: 0; top: 50%; width: 1440px; height: auto; transform: translateY(-50%); display: block; pointer-events: none; }
/* never show the native play button over the hero video */
.hero-bg video::-webkit-media-controls-start-playback-button { display: none !important; -webkit-appearance: none; }
.hero-bg video::-webkit-media-controls { display: none !important; }
