/* ============================================================
   The Sovereign Kingdom — Reg CF Landing Page
   Design language: editorial luxury — generous whitespace,
   serif display, restrained palette (ivory / ink / gold / forest).
============================================================ */

:root{
  /* Brand colors (Brand Guidelines v1.0) */
  --ink:#181A1D;            /* Sovereign Black */
  --gold:#C4A935;           /* Kingdom Gold */
  --muted:#595959;          /* Accent Gray */

  /* Working tones derived from brand palette */
  --ink-soft:#2c2e31;
  --gold-soft:#d8c068;
  --gold-deep:#9c862a;
  --paper:#ffffff;
  --bone:#f5f3ee;
  --ivory:#fafaf7;
  --line:#e3e1db;

  /* Typography (Brand Guidelines: Open Sans primary, Helvetica Neue secondary) */
  --sans:"Open Sans", "Helvetica Neue", -apple-system, BlinkMacSystemFont, Arial, sans-serif;
  --serif:"Open Sans", "Helvetica Neue", -apple-system, BlinkMacSystemFont, Arial, sans-serif;

  --radius:2px;
  --pad-x: clamp(20px, 4vw, 56px);
  --container: 1240px;
  --section-y: clamp(80px, 10vw, 160px);
}

*{box-sizing:border-box;}
html,body{ margin:0; padding:0; overflow-x:hidden; }
html{scroll-behavior:smooth; -webkit-text-size-adjust:100%;}
body{
  font-family:var(--sans);
  color:var(--ink);
  background:var(--paper);
  font-weight:300;
  font-size:16px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
em, i{ font-style: italic; color: var(--gold); }

/* ============================================================
   Smooth motion system — reveal, hover, link transitions
============================================================ */
@media (prefers-reduced-motion: no-preference){
  /* Reveal-on-scroll baseline */
  .reveal{
    opacity: 0;
    transform: translateY(28px);
    transition:
      opacity .9s cubic-bezier(.2,.7,.2,1),
      transform .9s cubic-bezier(.2,.7,.2,1);
    will-change: opacity, transform;
  }
  .reveal.is-visible{ opacity: 1; transform: translateY(0); }

  /* Stagger children inside a grid that has .reveal-stagger */
  .reveal-stagger > *{
    opacity: 0;
    transform: translateY(22px);
    transition:
      opacity .8s cubic-bezier(.2,.7,.2,1),
      transform .8s cubic-bezier(.2,.7,.2,1);
  }
  .reveal-stagger.is-visible > *{ opacity: 1; transform: translateY(0); }
  .reveal-stagger.is-visible > *:nth-child(1){ transition-delay: 0ms; }
  .reveal-stagger.is-visible > *:nth-child(2){ transition-delay: 80ms; }
  .reveal-stagger.is-visible > *:nth-child(3){ transition-delay: 160ms; }
  .reveal-stagger.is-visible > *:nth-child(4){ transition-delay: 240ms; }
  .reveal-stagger.is-visible > *:nth-child(5){ transition-delay: 320ms; }
  .reveal-stagger.is-visible > *:nth-child(6){ transition-delay: 400ms; }
  .reveal-stagger.is-visible > *:nth-child(7){ transition-delay: 480ms; }
  .reveal-stagger.is-visible > *:nth-child(8){ transition-delay: 560ms; }

  /* Subtle parallax for hero/full-bleed images */
  .hero-media img,
  .final-bg img,
  .tb-bg img,
  .image-break img{
    transform: scale(1.04);
    animation: slowZoom 18s ease-out forwards;
  }
}
@keyframes slowZoom{
  from{ transform: scale(1.08); }
  to  { transform: scale(1.0); }
}

/* Smoother defaults for everything interactive */
a, button, .btn, .cta-pill, .util-nav a, .up-arrow,
.k-card img, .region, .reason, .proof-card, .mat-card, .up-card,
.t-card .t-img, .pillar, .tw, .tw::before, .tw-inner, .rd, .video-card,
.brand-mark, .play-overlay, .play-ring{
  transition: all .35s cubic-bezier(.2,.7,.2,1);
}
a:not(.btn):not(.cta-pill){ position: relative; }

/* Refined link underline animation in nav */
.util-nav a{ position: relative; padding-bottom: 4px; }
.util-nav a::after{
  content:"";
  position:absolute; left:0; right:0; bottom:0;
  height:1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: right center;
  transition: transform .4s cubic-bezier(.2,.7,.2,1), background .3s ease;
}
.util-nav a:hover::after{ transform: scaleX(1); transform-origin: left center; }

/* Section soft fade-in on first paint */
section{ animation: sectionFade .9s ease-out both; }
@keyframes sectionFade{ from{ opacity: .92; } to{ opacity: 1; } }


img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
a:hover{color:var(--gold);}

/* ---------- Typography ---------- */
.display, .display-2, .display-3, h1, h2, h3{
  font-family:var(--sans);
  font-weight:700;
  letter-spacing:-0.02em;
  line-height:1.05;
  color:var(--ink);
  margin:0 0 .5em;
  text-wrap: balance;
}
.display{ font-size:clamp(40px, 5vw, 72px); line-height:1.05; letter-spacing:-0.035em; font-weight:800;}
.display-2{ font-size:clamp(34px, 4.4vw, 60px); line-height:1.08; letter-spacing:-0.025em; font-weight:700;}
.display-3{ font-size:clamp(26px, 2.8vw, 38px); letter-spacing:-0.02em; font-weight:700;}
.display em, .display-2 em, .display-3 em{ font-style:italic; color:var(--gold); font-weight:300;}

.eyebrow{
  font-family:var(--sans);
  text-transform:uppercase;
  letter-spacing:.22em;
  font-size:11px;
  font-weight:500;
  color:var(--muted);
  margin:0 0 28px;
}
.eyebrow.gold{ color:var(--gold); }
.eyebrow.muted{ color:var(--muted); opacity:.8; }

.body-lg{ font-size:clamp(17px, 1.25vw, 19px); line-height:1.7; color:var(--ink-soft); margin:0 0 1.2em; }
.body-lg.accent{ font-family:var(--sans); font-style:italic; font-size:clamp(20px, 1.7vw, 26px); color:var(--ink); }

p{ color:var(--ink-soft); margin:0 0 1em; }
strong{ font-weight:500; color:var(--ink); }
em{ font-style:italic; }

/* ---------- Layout primitives ---------- */
.container{ max-width:var(--container); margin:0 auto; padding:0 var(--pad-x); }
.narrow{ max-width:880px; }
.center{ text-align:center; }
.section{ padding: var(--section-y) 0; }

/* ============================================================
   00 · Utility bar
============================================================ */
.utility-bar{
  position:fixed;
  top:0; left:0; right:0;
  z-index:100;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding: 18px var(--pad-x);
  background: transparent;
  transition: background .3s ease, padding .3s ease, box-shadow .3s ease, border-color .3s ease;
  border-bottom:1px solid transparent;
  color:#fff;
}
.utility-bar.scrolled{
  background:rgba(251,248,241,.96);
  backdrop-filter: blur(14px);
  border-bottom-color:var(--line);
  color:var(--ink);
  padding: 12px var(--pad-x);
}
.utility-bar.scrolled .util-nav a{ color:var(--ink); }

.brand{ display:flex; align-items:center; }
.brand-mark{
  height: 30px;
  width: auto;
  display: block;
}
/* Default (transparent bar over hero) → show white mark */
.brand-mark-gold{ display: none; }
.brand-mark-white{ display: block; }
/* Scrolled (light bar) → show gold mark */
.utility-bar.scrolled .brand-mark-gold{ display: block; }
.utility-bar.scrolled .brand-mark-white{ display: none; }
@media (max-width: 600px){
  .brand-mark{ height: 26px; }
}
.util-nav{ display:flex; gap:36px; }
.util-nav a{
  font-size:13px;
  letter-spacing:.06em;
  font-weight:400;
  color:#fff;
  position:relative;
}
.util-nav a:hover{ color:var(--gold); }

.cta-pill{
  display:inline-flex; align-items:center; gap:8px;
  background:var(--gold);
  color:#fff !important;
  padding:11px 22px;
  font-size:12px;
  letter-spacing:.18em;
  text-transform:uppercase;
  font-weight:500;
  border-radius:999px;
  transition: background .25s ease, transform .25s ease;
}
.cta-pill:hover{ background:#8e6e30; transform:translateY(-1px); }
.cta-pill-logo{ height:16px; width:auto; display:block; flex:0 0 auto; }
.cta-pill--logo{ padding-left:16px; }

.menu-toggle{ display:none; background:none; border:none; cursor:pointer; padding:6px; }
.menu-toggle span{ display:block; width:22px; height:1.5px; background:currentColor; margin:5px 0; transition:all .3s; }

/* ============================================================
   01 · Hero
============================================================ */
.hero{
  position:relative;
  min-height:100vh;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding: 140px var(--pad-x) 80px;
  color:#fff;
  overflow:hidden;
}
.hero-media{ position:absolute; inset:0; z-index:0; }
.hero-media img,
.hero-media .hero-video{ width:100%; height:100%; object-fit:cover; }
.hero-media img{ transform:scale(1.05); animation:slowZoom 18s ease-out forwards; }
.hero-media .hero-video{ position:absolute; inset:0; }
.hero-scrim{
  position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(8,8,8,.92) 0%, rgba(8,8,8,.75) 32%, rgba(8,8,8,.88) 75%, rgba(8,8,8,1) 100%),
    radial-gradient(85% 70% at 28% 45%, rgba(0,0,0,.65) 0%, rgba(0,0,0,0) 70%);
}
.hero-scrim-strong{
  background:
    linear-gradient(180deg, rgba(0,0,0,.72) 0%, rgba(0,0,0,.55) 45%, rgba(0,0,0,.8) 80%, rgba(0,0,0,.96) 100%),
    radial-gradient(120% 90% at 50% 50%, rgba(0,0,0,0) 35%, rgba(0,0,0,.45) 100%);
}
/* Subtle film vignette */
.hero-vignette{
  position: absolute; inset: 0; z-index: 1;
  pointer-events: none;
  background:
    radial-gradient(120% 80% at 50% 50%, transparent 50%, rgba(0,0,0,.55) 100%);
  mix-blend-mode: multiply;
}
/* Gold mark watermark behind the headline */
.hero-watermark{
  position: absolute;
  z-index: 1;
  width: 60vmin; height: 60vmin;
  top: 18%; right: -8vmin;
  background: url('assets/logo-gold.png') center/contain no-repeat;
  opacity: 0.06;
  filter: drop-shadow(0 0 1px rgba(196,169,53,.3));
  pointer-events: none;
}

/* Editorial top meta strip above the eyebrow */
.hero-meta-top{
  display: flex; align-items: center; gap: 16px;
  margin-bottom: 22px;
  font-size: 11px;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: rgba(255,255,255,.6);
}
.hero-meta-top .hl{ color: var(--gold-soft); letter-spacing: .04em; }
.hero-meta-top .ml{ font-weight: 600; }

/* Italic word inside the headline */
.hd-italic{
  font-style: italic;
  font-weight: 300;
  color: var(--gold-soft);
  letter-spacing: -0.02em;
}

/* Gold hairline rule between headline and lede */
.hero-rule{
  width: 80px; height: 1.5px;
  background: linear-gradient(90deg, var(--gold) 0%, var(--gold-soft) 60%, transparent 100%);
  margin: 4px 0 28px;
}

/* Editorial 4-cell stat band below the CTA */
.hero-foot{
  margin-top: 56px;
  padding-top: 28px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 28px;
  border-top: 1px solid rgba(255,255,255,.18);
  max-width: 640px;
}
.hf-cell{ display: flex; flex-direction: column; gap: 8px; }
.hf-num{
  font-size: clamp(20px, 1.6vw, 26px);
  font-weight: 700;
  letter-spacing: -0.01em;
  line-height: 1.05;
  color: #fff;
}
.hf-lbl{
  font-size: 10px;
  letter-spacing: .24em;
  text-transform: uppercase;
  color: rgba(255,255,255,.55);
  font-weight: 500;
}

/* Video card refinements: gold inner hairline + caption */
.video-card{
  border: 1px solid rgba(196,169,53,.35);
}
.video-caption{
  position: absolute;
  left: 0; right: 0; bottom: 0;
  z-index: 3;
  display: flex; justify-content: space-between; align-items: center;
  padding: 14px 18px;
  font-size: 10px; letter-spacing: .24em; text-transform: uppercase;
  color: rgba(255,255,255,.85);
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.7) 100%);
  pointer-events: none;
  font-weight: 600;
}
.video-caption span:last-child{ color: var(--gold-soft); }

/* Scroll cue refinements */
.scroll-cue-wrap{
  position: absolute;
  left: 50%; bottom: 32px;
  transform: translateX(-50%);
  z-index: 2;
  display: flex; flex-direction: column; align-items: center; gap: 14px;
}
.scroll-label{
  font-size: 10px; letter-spacing: .32em; text-transform: uppercase;
  color: rgba(255,255,255,.55);
  font-weight: 600;
}

@media (max-width: 760px){
  .hero-foot{ grid-template-columns: repeat(2, 1fr); gap: 20px; }
  .hero-watermark{ display: none; }
  .hero-meta-top{ font-size: 10px; letter-spacing: .2em; }
}
@keyframes slowZoom{ to{ transform:scale(1); } }

.hero-inner{
  position:relative;
  z-index:1;
  max-width:880px;
  margin: 0 auto 0 0;
}
.hero-inner .eyebrow{
  color: var(--gold-soft);
  font-size: 18px;
  letter-spacing: .26em;
  font-weight: 600;
  margin-bottom: 32px;
}
.hero .display{ color:#fff; }
@media (min-width: 720px){
  .hero--home .display{ white-space: nowrap; }
}
.hero .display em{ color:var(--gold-soft); }
.hero .lede{
  font-family:var(--sans);
  font-size:clamp(15px, 1.2vw, 18px);
  font-weight:300;
  line-height:1.55;
  color:rgba(255,255,255,.88);
  margin: 22px 0 42px;
  max-width:560px;
  letter-spacing: 0.005em;
}
.hero-cta{ display:flex; gap:14px; flex-wrap:wrap; }
.hero-meta{
  position:relative; z-index:1;
  margin-top:auto;
  padding-top:32px;
  border-top:1px solid rgba(255,255,255,.18);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}
.hero-meta-inner{
  display:flex; gap:24px; flex-wrap:wrap; align-items:center;
  font-size:11px; letter-spacing:.22em; text-transform:uppercase;
  color:rgba(255,255,255,.72);
  font-weight:500;
}
.hero-meta .dot{
  width:3px; height:3px; border-radius:50%;
  background:var(--gold-soft);
  display:inline-block;
}
.scroll-cue{
  width:1px; height:54px;
  background: linear-gradient(180deg, transparent, rgba(255,255,255,.5));
  position:relative;
}
.scroll-cue span{
  position:absolute; bottom:0; left:50%; transform:translateX(-50%);
  width:5px; height:5px; border-radius:50%;
  background:var(--gold-soft);
  animation: scrollDot 2.4s ease-in-out infinite;
}
@keyframes scrollDot{
  0%{ transform:translate(-50%, -54px); opacity:0; }
  20%{ opacity:1; }
  80%{ opacity:1; }
  100%{ transform:translate(-50%, 0); opacity:0; }
}

/* Marquee */
.marquee{
  background:var(--ink);
  color:var(--gold-soft);
  padding: 22px 0;
  overflow:hidden;
  border-top:1px solid rgba(255,255,255,.06);
  border-bottom:1px solid rgba(255,255,255,.06);
}
.marquee-track{
  display:inline-flex;
  gap:32px;
  white-space:nowrap;
  animation: marquee 60s linear infinite;
  font-family:var(--sans);
  font-size:18px;
  font-style:italic;
  letter-spacing:.04em;
}
.marquee-track span{ flex-shrink:0; }
.marquee-track span:nth-child(even){ color:rgba(194,163,104,.4); }
@keyframes marquee{
  from{ transform:translateX(0); }
  to{ transform:translateX(-50%); }
}

/* Cinematic image break */
.image-break{
  position:relative;
  height: clamp(420px, 60vh, 640px);
  overflow:hidden;
  display:flex; align-items:center; justify-content:center;
  text-align:center;
  color:#fff;
  padding: 0 var(--pad-x);
}
.image-break img{
  position:absolute; inset:0;
  width:100%; height:100%; object-fit:cover;
  z-index:0;
}
.image-break-scrim{
  position:absolute; inset:0; z-index:1;
  background: linear-gradient(180deg, rgba(24,26,29,.45) 0%, rgba(24,26,29,.65) 100%);
}
.image-break-text{ position:relative; z-index:2; max-width:900px; }
.image-break .eyebrow{ color:var(--gold-soft); }
.big-quote{
  font-family:var(--sans);
  font-style:italic;
  font-size:clamp(28px, 3.6vw, 52px);
  line-height:1.3;
  color:#fff;
  margin:0;
}

/* Tall card variant for Kingdoms grid */
.k-card.tall{ grid-row: span 2; }
.cap-eyebrow{
  display:block;
  font-family:var(--sans);
  text-transform:uppercase;
  font-size:10px;
  letter-spacing:.22em;
  font-weight:500;
  color:var(--gold-soft);
  margin-bottom:6px;
}

/* Destinations region grid */
.destinations-intro{
  text-align:center;
  margin: 80px auto 32px;
}
.region-grid{
  max-width: 1400px;
  margin: 0 auto;
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 6px;
  padding: 0 6px;
}
.region{
  position:relative;
  aspect-ratio: 4 / 5;
  background-image: var(--bg);
  background-size:cover;
  background-position:center;
  display:flex; flex-direction:column; justify-content:flex-end;
  padding:24px;
  color:#fff !important;
  overflow:hidden;
  border-radius:var(--radius);
  transition: transform .8s ease;
}
.region::before{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(0,0,0,.05) 30%, rgba(0,0,0,.7) 100%);
  transition: background .4s ease;
}
.region:hover::before{ background:linear-gradient(180deg, rgba(0,0,0,.2) 0%, rgba(0,0,0,.85) 100%); }
.region > *{ position:relative; z-index:1; }
.region-name{
  font-family:var(--sans);
  font-size:clamp(24px, 2vw, 32px);
  letter-spacing:.01em;
  margin-bottom:4px;
}
.region-count{
  font-size:11px; letter-spacing:.2em; text-transform:uppercase;
  color:var(--gold-soft);
  font-weight:500;
}

/* Experience designers collage */
.experience{
  background:var(--paper);
}
.exp-grid{
  display:grid;
  grid-template-columns: 1.1fr 1fr;
  gap:80px;
  align-items:center;
}
.exp-images{
  position:relative;
  height:560px;
}
.exp-img{
  position:absolute;
  border-radius:var(--radius);
  overflow:hidden;
  box-shadow: 0 30px 60px rgba(24,26,29,.18);
}
.exp-img img{ width:100%; height:100%; object-fit:cover; }
.exp-img-1{ width:62%; height:62%; left:0; top:0; }
.exp-img-2{ width:48%; height:48%; right:0; top:25%; z-index:2; }
.exp-img-3{ width:55%; height:42%; left:18%; bottom:0; z-index:1; }
.exp-text{ max-width:520px; }
.exp-text .btn-ghost{ margin-top:24px; }

/* Testimonial landscape break */
.testimonial-break{
  position:relative;
  min-height:520px;
  display:flex; align-items:center; justify-content:center;
  padding: 120px var(--pad-x);
  color:#fff;
  overflow:hidden;
  text-align:center;
}
.tb-bg{ position:absolute; inset:0; z-index:0; }
.tb-bg img{ width:100%; height:100%; object-fit:cover; }
.tb-scrim{
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(24,26,29,.5), rgba(24,26,29,.75));
}
.tb-inner{ position:relative; z-index:1; max-width:980px; }
.tb-quote{
  font-family:var(--sans);
  font-style:italic;
  font-size:clamp(28px, 3.4vw, 48px);
  line-height:1.35;
  color:#fff;
  margin: 18px 0 28px;
}
.tb-cite{
  font-size:11px; letter-spacing:.22em; text-transform:uppercase;
  color:var(--gold-soft);
}

/* Buttons — unified pill shape across the entire site */
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  font-size:12px; letter-spacing:.18em; text-transform:uppercase;
  font-weight:600;
  padding:14px 28px;
  border-radius:999px;
  border:1px solid transparent;
  transition: all .25s ease;
  cursor:pointer;
  white-space: nowrap;
}
.btn.lg{ padding:18px 36px; font-size:13px; }
.btn-primary{
  background:var(--gold);
  color:#fff !important;
  border-color:var(--gold);
}
.btn-primary:hover{ background:#8e6e30; border-color:#8e6e30; transform:translateY(-1px); }
.btn-ghost{
  background:transparent; color:#fff !important;
  border-color:rgba(255,255,255,.55);
}
.btn-ghost:hover{ background:rgba(255,255,255,.1); border-color:#fff; }
.section .btn-ghost{ color:var(--ink) !important; border-color:var(--ink); }
.section .btn-ghost:hover{ background:var(--ink); color:var(--paper) !important; }
.btn-ghost.light{ color:#fff !important; border-color:rgba(255,255,255,.55); }

/* ============================================================
   02 · Opportunity
============================================================ */
.opportunity{ background:var(--paper); }
.stat-row{
  margin-top:80px;
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap:0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.stat{
  padding:48px 36px;
  border-right:1px solid var(--line);
}
.stat:last-child{ border-right:none; }
.stat-num{
  font-family:var(--sans);
  font-size:clamp(34px, 3.4vw, 52px);
  line-height:1;
  letter-spacing:-0.01em;
  margin-bottom:16px;
  color:var(--ink);
}
.stat-num span{ color:var(--gold); }
.stat-label{ font-size:14px; line-height:1.6; color:var(--muted); }
.sources{ font-size:12px; color:var(--muted); margin-top:24px; letter-spacing:.04em; }

/* ============================================================
   03 · Origin (split)
============================================================ */
.split{
  display:grid;
  grid-template-columns: 1.05fr 1fr;
  gap: clamp(40px, 6vw, 100px);
  max-width: 1400px;
  margin: 0 auto;
  padding: var(--section-y) var(--pad-x);
  align-items:center;
}
.split-image img{
  width:100%;
  height:clamp(420px, 70vh, 720px);
  object-fit:cover;
  border-radius:var(--radius);
}
.split-text{ max-width:560px; }
.pull{
  margin: 36px 0 0;
  padding: 28px 0 0;
  border-top:1px solid var(--line);
}
.pull p{
  font-family:var(--sans);
  font-style:italic;
  font-size:clamp(22px, 2.2vw, 30px);
  line-height:1.35;
  color:var(--ink);
  margin:0 0 14px;
}
.pull cite{
  font-style:normal;
  font-size:12px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--muted);
}

/* ============================================================
   04 · Market
============================================================ */
.market{ background:var(--ivory); }
.tailwinds{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  margin-top: 72px;
}
.tw{
  position: relative;
  aspect-ratio: 4 / 5;
  background-size: cover;
  background-position: center;
  overflow: hidden;
  border-radius: 4px;
  cursor: default;
  transition: transform .8s cubic-bezier(.2,.7,.2,1);
}
.tw::before{
  content: "";
  position: absolute; inset: 0;
  background:
    linear-gradient(180deg, rgba(0,0,0,.35) 0%, rgba(0,0,0,.75) 55%, rgba(0,0,0,.95) 100%);
  transition: background .6s ease;
}
.tw--highlight{
  outline: 2px solid var(--gold);
  outline-offset: -2px;
  box-shadow: 0 0 0 1px rgba(196,169,53,0.35);
}
.tw:hover{ transform: translateY(-4px); }
.tw:hover::before{
  background:
    linear-gradient(180deg, rgba(24,26,29,.55) 0%, rgba(24,26,29,.85) 100%);
}
.tw-inner{
  position: absolute;
  left: 0; right: 0; bottom: 0;
  padding: 28px 28px 32px;
  z-index: 2;
  color: #fff;
  transform: translateY(64px);
  transition: transform .6s cubic-bezier(.2,.7,.2,1);
}
.tw:hover .tw-inner{ transform: translateY(0); }
.tw .num{
  display: block;
  font-family: var(--sans);
  font-style: italic;
  font-size: 14px;
  letter-spacing: .14em;
  color: var(--gold-soft);
  margin-bottom: 14px;
}
.tw h3{
  font-family: var(--sans);
  font-weight: 400;
  font-size: clamp(22px, 1.7vw, 28px);
  line-height: 1.2;
  letter-spacing: -0.005em;
  margin: 0;
  color: #fff;
  /* hairline gold underline that grows on hover */
  padding-bottom: 18px;
  position: relative;
}
.tw h3::after{
  content: "";
  position: absolute;
  left: 0; bottom: 8px;
  width: 36px; height: 1px;
  background: var(--gold-soft);
  transition: width .6s cubic-bezier(.2,.7,.2,1);
}
.tw:hover h3::after{ width: 100%; }
.tw p{
  font-size: 14px;
  line-height: 1.6;
  color: rgba(246,241,231,.88);
  margin: 18px 0 0;
  max-width: 95%;
  opacity: 0;
  transition: opacity .5s ease .15s;
}
.tw:hover p{ opacity: 1; }
.tw em{
  font-style: italic;
  color: var(--gold-soft);
  font-size: 12px;
  letter-spacing: .08em;
}
@media (max-width: 1100px){
  .tailwinds{ grid-template-columns: 1fr 1fr; }
  .tw{ aspect-ratio: 3 / 4; }
  .tw-inner{ transform: translateY(0); }
  .tw p{ opacity: 1; }
}
@media (max-width: 600px){
  .tailwinds{ grid-template-columns: 1fr; }
  .tw{ aspect-ratio: 16 / 11; }
}
.closing{
  margin-top:64px;
  font-family:var(--sans);
  font-size:clamp(20px, 1.8vw, 28px);
  line-height:1.4;
  color:var(--ink);
}

/* ============================================================
   05 · Brand
============================================================ */
.brand-section{ background:var(--paper); }
.kingdoms-grid{
  margin: 80px 0;
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  grid-auto-rows: 240px;
  gap:6px;
  padding: 0 6px;
}
.k-card{
  position:relative;
  margin:0;
  overflow:hidden;
  border-radius:var(--radius);
}
.k-card.large{ grid-column: span 2; grid-row: span 2; }
.k-card img{ width:100%; height:100%; object-fit:cover; transition:transform 1.2s ease; }
.k-card:hover img{ transform:none; }
.k-card::after{
  content:""; position:absolute; inset:0;
  background: linear-gradient(180deg, transparent 50%, rgba(0,0,0,.7) 100%);
  pointer-events:none;
}
.k-card figcaption{
  position:absolute; left:24px; bottom:20px; z-index:2;
  color:#fff;
  font-family:var(--sans);
  font-size:22px;
  letter-spacing:.01em;
}

.three-pillars{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap:48px;
  margin-top:24px;
}
.pillar{ padding:0; border-top:1px solid var(--gold); padding-top:28px; }
.pillar h3{ font-size:28px; margin:0 0 12px; }
.pillar p{ color:var(--muted); margin:0; }

/* ============================================================
   06 · Wedge
============================================================ */
.wedge{
  position: relative;
  overflow: hidden;
  color: var(--ivory);
  background: var(--ink);
}
.wedge-bg{
  position: absolute;
  inset: 0;
  z-index: 0;
}
.wedge-bg img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.04);
  animation: slowZoom 20s ease-out forwards;
}
.wedge-scrim{
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(24,26,29,.94) 0%, rgba(24,26,29,.82) 50%, rgba(24,26,29,1) 100%);
}
.wedge > .container,
.wedge > .moat,
.wedge > .econ,
.wedge .wedge-head{ position: relative; z-index: 1; }

/* Regions section (extracted from Brand) */
.regions-section{ background: var(--ivory); padding: var(--section-y) 0; }
.regions-section .destinations-intro{ text-align: center; margin: 0 auto 48px; }
.wedge .display-2{ color:var(--ivory); }
.wedge .display-2 em{ color:var(--gold-soft); }
.wedge .body-lg{ color:rgba(246,241,231,.82); }
.wedge .eyebrow{ color:var(--gold-soft); }
.wedge p{ color:rgba(246,241,231,.78); }
.wedge strong{ color:#fff; }

.moat{
  display:grid;
  grid-template-columns: repeat(5, 1fr);
  gap:0;
  margin-top:80px;
  border-top:1px solid rgba(255,255,255,.18);
}
.moat-item{
  padding:36px 24px;
  border-right:1px solid rgba(255,255,255,.18);
}
.moat-item:last-child{ border-right:none; }
.moat-item h4{
  font-family:var(--sans);
  font-size:24px;
  font-weight:400;
  color:var(--gold-soft);
  margin:0 0 14px;
}
.moat-item p{ font-size:14px; line-height:1.6; }

.econ{
  margin-top:80px;
  text-align:center;
  border-top:1px solid rgba(255,255,255,.18);
  padding-top:60px;
}
.econ p{
  font-family:var(--sans);
  font-size:clamp(24px, 2.4vw, 36px);
  line-height:1.4;
  color:var(--ivory);
}
.econ strong{ color:var(--gold-soft); font-weight:400; }

/* ============================================================
   07 · Traction
============================================================ */
.traction{ background:var(--ivory); }
.traction-grid{
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap:0;
  margin-top:72px;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.t-stat{
  padding:48px 28px;
  border-right:1px solid var(--line);
}
.t-stat:last-child{ border-right:none; }
.t-num{
  font-family:var(--sans);
  font-size:clamp(40px, 4vw, 64px);
  line-height:1;
  color:var(--gold);
  margin-bottom:18px;
}
.t-label{ font-size:13px; line-height:1.6; color:var(--muted); }
.proof-list{
  margin: 60px auto 0;
  max-width:900px;
  list-style:none;
  padding:0;
}
.proof-list li{
  padding:24px 0;
  border-bottom:1px solid var(--line);
  font-size:16px;
  color:var(--ink-soft);
}
.proof-list li:last-child{ border-bottom:none; }

/* Proof grid (2×2 cards with gold check mark) */
.proof-grid{
  margin: 64px auto 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}
.proof-card{
  position: relative;
  padding: 36px 36px 32px;
  background: var(--paper);
  border: 1px solid var(--line);
  border-left: 3px solid var(--gold);
  transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}
.proof-card:hover{
  transform: translateY(-4px);
  box-shadow: 0 30px 60px rgba(24,26,29,.08);
  border-color: var(--line);
  border-left-color: var(--gold);
}
.proof-mark{
  position: absolute;
  top: 28px; right: 28px;
  width: 32px; height: 32px;
  border-radius: 50%;
  background: rgba(168,132,62,.12);
  color: var(--gold);
  display: flex; align-items: center; justify-content: center;
  font-size: 14px;
  font-weight: 600;
  line-height: 1;
}
.proof-eyebrow{
  font-size: 11px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--gold);
  font-weight: 500;
  margin: 0 0 12px;
}
.proof-head{
  font-family: var(--sans);
  font-size: clamp(22px, 1.9vw, 28px);
  font-weight: 700;
  color: var(--ink);
  margin: 0 0 12px;
  line-height: 1.2;
  letter-spacing: -0.015em;
}
.proof-body{
  font-size: 15px;
  line-height: 1.6;
  color: var(--muted);
  margin: 0;
  max-width: 90%;
}
@media (max-width: 760px){
  .proof-grid{ grid-template-columns: 1fr; }
  .proof-card{ padding: 28px 24px; }
}

/* ============================================================
   08 · Team
============================================================ */
.team{ background:var(--paper); }
.team-grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap:48px;
  margin-top:72px;
}
.t-card .t-img{
  width:100%;
  height:380px;
  background-size:cover;
  background-position:center;
  filter:grayscale(100%);
  transition:filter .6s ease;
  margin-bottom:24px;
}
.t-card:hover .t-img{ filter:grayscale(0); }
.t-card.lead .t-img{ height:460px; }
.t-card.lead{
  position: relative;
  padding-top: 18px;
  border-top: 1px solid var(--gold);
}
.t-card.lead h3{ color: var(--ink); }
.t-card.lead::before{
  content: "";
  position: absolute;
  left: 0; top: -1px;
  width: 48px; height: 2px;
  background: var(--gold);
}
.role-aside{
  font-style: italic;
  font-weight: 400;
  font-size: 10px;
  letter-spacing: .12em;
  color: var(--gold-soft);
  text-transform: none;
}

.rd-subhead{
  font-family: var(--sans);
  font-size: 11px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--gold);
  margin: 0 0 12px;
  font-weight: 600;
}

.uof-tag{
  display: inline-block;
  margin-left: 8px;
  padding: 3px 8px;
  font-size: 10px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--gold);
  border: 1px solid var(--gold);
  border-radius: 2px;
  font-weight: 600;
  vertical-align: middle;
}
.t-card h3{ font-size:26px; margin:0 0 6px; }
.t-card .role{
  font-size:11px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--gold); margin:0 0 16px;
}
.t-card p{ font-size:14px; color:var(--muted); }

/* Headshot photos on team cards (img-based) */
.t-photo{
  width:100%; aspect-ratio: 4/5; overflow:hidden;
  margin-bottom:24px; background:#1a1612;
}
.t-photo img{
  width:100%; height:100%; object-fit:cover; display:block;
  filter: grayscale(100%) contrast(1.02);
  transition: filter .6s ease, transform .6s cubic-bezier(.2,.7,.2,1);
}
.t-card:hover .t-photo img{ filter: grayscale(0); }
.t-photo--placeholder{
  background:
    linear-gradient(135deg, rgba(212,175,55,.08) 0%, rgba(26,22,18,.6) 100%),
    repeating-linear-gradient(45deg, rgba(255,255,255,.02) 0 6px, transparent 6px 12px);
  position:relative;
}
.t-photo--placeholder::after{
  content:"Portrait forthcoming";
  position:absolute; inset:auto 0 12px; text-align:center;
  font-size:10px; letter-spacing:.22em; text-transform:uppercase;
  color: var(--gold-soft);
}

/* Founder block — large portrait + bio side by side */
.founder-block{
  display:grid; grid-template-columns: minmax(0, 380px) 1fr;
  gap:56px; align-items:start;
  max-width: 1100px;
}
.founder-photo{ margin:0; aspect-ratio: 4/5; overflow:hidden; }
.founder-photo img{
  width:100%; height:100%; object-fit:cover; display:block;
  filter: grayscale(100%) contrast(1.02);
}
.founder-copy p:last-child{ margin-bottom:0; }
@media (max-width: 820px){
  .founder-block{ grid-template-columns: 1fr; gap:32px; }
  .founder-photo{ max-width: 320px; }
}

/* Board of Directors photo grid */
.board-grid{
  display:grid; grid-template-columns: repeat(4, 1fr);
  gap:32px;
}
.b-card{ text-align:left; }
.b-photo{
  width:100%; aspect-ratio: 4/5; overflow:hidden;
  margin-bottom:18px; background:#1a1612;
}
.b-photo img{
  width:100%; height:100%; object-fit:cover; display:block;
  filter: grayscale(100%) contrast(1.02);
  transition: filter .6s ease, transform .6s cubic-bezier(.2,.7,.2,1);
}
.b-card:hover .b-photo img{ filter: grayscale(0); }
.b-card h3{ font-size:20px; margin:0 0 4px; font-weight:600; }
.b-card .role{
  font-size:10px; letter-spacing:.2em; text-transform:uppercase;
  color: var(--gold); margin:0;
}
@media (max-width: 1100px){ .board-grid{ grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px){ .board-grid{ grid-template-columns: 1fr; } }

.board{ margin-top:96px; text-align:center; padding-top:60px; border-top:1px solid var(--line); }
.board-list{
  list-style:none; padding:0;
  display:flex; justify-content:center; gap:48px; flex-wrap:wrap;
  font-family:var(--sans);
  font-size:22px;
}

/* ============================================================
   09 · Round
============================================================ */
.round{ background:var(--bone); }
.terms-grid{ margin-top:80px; }
.terms{
  display:grid;
  grid-template-columns: 1fr 2fr;
  gap:0;
  margin:0;
  border-top:1px solid var(--line);
}
.terms > div{
  display:contents;
}
.terms dt, .terms dd{
  padding:22px 0;
  border-bottom:1px solid var(--line);
  margin:0;
}
.terms dt{
  font-size:11px;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--muted);
  font-weight:500;
  padding-right:32px;
}
.terms dd{
  font-family:var(--sans);
  font-size:20px;
  color:var(--ink);
}
.why-cf{ margin-top:96px; }
.why-cf .display-3{ text-align:center; margin-bottom:48px; }
.why-grid{
  display:grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 48px 64px;
}
.why-grid h4{
  font-family:var(--sans);
  font-size:24px;
  font-weight:400;
  color:var(--ink);
  margin:0 0 10px;
}
.why-grid p{ color:var(--muted); margin:0; }

.use-of-funds{ margin-top:96px; }
.use-of-funds .display-3{ text-align:center; margin-bottom:32px; }
.bar{ display:flex; height:14px; border-radius:999px; overflow:hidden; margin-bottom:32px; }
.bar span{
  background:var(--gold);
  position:relative;
}
.bar span:nth-child(1){ background:#a8843e; }
.bar span:nth-child(2){ background:#bf9851; }
.bar span:nth-child(3){ background:#d2b072; }
.bar span:nth-child(4){ background:#e0c694; }
.bar span:nth-child(5){ background:#ebd9b6; }
.uof{ counter-reset:item; list-style:none; padding:0; max-width:860px; margin:0 auto; }
.uof li{
  counter-increment:item;
  padding:20px 0 20px 60px;
  border-bottom:1px solid var(--line);
  position:relative;
  font-size:15px;
  color:var(--ink-soft);
}
.uof li::before{
  content: counter(item, decimal-leading-zero);
  position:absolute; left:0; top:20px;
  font-family:var(--sans);
  color:var(--gold);
  font-size:18px;
}
.footnote{ font-size:12px; color:var(--muted); margin-top:24px; text-align:center; }
.round-cta{ margin-top:80px; display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }

/* ============================================================
   10 · Press
============================================================ */
.press{ background:var(--paper); text-align:center; }
.press-logos{
  margin-top:48px;
  display:flex; flex-wrap:wrap; justify-content:center;
  gap: 56px;
  padding:40px 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.press-logos span{
  font-family:var(--sans);
  font-size:22px;
  color:var(--muted);
  letter-spacing:.05em;
}
.press-quote{
  margin: 64px auto 0;
  max-width:780px;
  padding:0;
  border:none;
}
.press-quote p{
  font-family:var(--sans);
  font-style:italic;
  font-size:clamp(24px, 2.3vw, 34px);
  line-height:1.4;
  color:var(--ink);
  margin:0 0 18px;
}
.press-quote cite{
  font-style:normal;
  font-size:12px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--muted);
}

/* ============================================================
   11 · FAQ
============================================================ */
.faq{ background:var(--ivory); }
.faq-list{ max-width:900px; margin: 60px auto 0; }
.faq-list details{
  border-top:1px solid var(--line);
  padding: 24px 0;
}
.faq-list details:last-child{ border-bottom:1px solid var(--line); }
.faq-list summary{
  font-family:var(--sans);
  font-size:clamp(20px, 1.6vw, 26px);
  cursor:pointer;
  list-style:none;
  position:relative;
  padding-right:40px;
  color:var(--ink);
}
.faq-list summary::-webkit-details-marker{ display:none; }
.faq-list summary::after{
  content:"+";
  position:absolute; right:0; top:50%; transform:translateY(-50%);
  font-family:var(--sans);
  font-size:28px; color:var(--gold);
  transition:transform .3s ease;
}
.faq-list details[open] summary::after{ content:"–"; }
.faq-list details p{
  margin: 16px 0 0;
  color:var(--muted);
  font-size:15px;
  line-height:1.7;
  max-width:80ch;
}

/* ============================================================
   12 · Risk
============================================================ */
.risk{ background:var(--bone); padding: 80px 0; }
.risk .eyebrow{ font-family:var(--sans); text-transform:none; letter-spacing:0; font-size:24px; color:var(--ink); margin-bottom:24px; }
.risk-body{ max-width:900px; }
.risk-body p{ font-size:13px; line-height:1.7; color:var(--muted); margin:0 0 12px; }

/* ============================================================
   13 · Final CTA
============================================================ */
.final-cta{
  position:relative;
  min-height:78vh;
  display:flex; align-items:center;
  padding: 120px var(--pad-x);
  color:#fff;
  overflow:hidden;
}
.final-bg{ position:absolute; inset:0; z-index:0; }
.final-bg img{ width:100%; height:100%; object-fit:cover; }
.final-scrim{
  position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(24,26,29,.55) 0%, rgba(24,26,29,.8) 100%);
}
.final-inner{ position:relative; z-index:1; max-width:880px; margin:0 auto 0 0; }
.final-cta .display{ color:#fff; }
.final-cta .display em{ color:var(--gold-soft); }
.final-cta .lede{
  font-family:var(--sans);
  font-size:clamp(18px, 1.5vw, 22px);
  color:rgba(255,255,255,.88);
  margin: 18px 0 36px;
}

/* ============================================================
   14 · Footer
============================================================ */
.footer{
  background:#0d0e10;
  color:rgba(246,241,231,.78);
  padding: 80px 0 32px;
}
.footer-grid{
  display:grid;
  grid-template-columns: 1.4fr repeat(4, 1fr);
  gap:48px;
}
.brand-col .f-logo{ height:56px; width:auto; margin-bottom:24px; }
.tagline{
  font-family:var(--sans);
  font-style:italic;
  font-size:18px;
  line-height:1.5;
  color:rgba(246,241,231,.88);
  margin:0 0 24px;
}
.socials{ display:flex; gap:18px; }
.socials a{
  font-size:11px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--gold-soft);
}
.f-col h5{
  font-family:var(--sans);
  font-size:11px; letter-spacing:.22em; text-transform:uppercase;
  color:var(--gold-soft);
  margin:0 0 18px;
  font-weight:500;
}
.f-col ul{ list-style:none; padding:0; margin:0; }
.f-col ul li{ margin: 0 0 10px; font-size:14px; }
.f-col ul a{ color:rgba(246,241,231,.78); }
.f-col ul a:hover{ color:#fff; }

.footer-bottom{
  margin-top:64px;
  padding-top:24px;
  border-top:1px solid rgba(255,255,255,.1);
  font-size:12px;
  color:rgba(246,241,231,.55);
  line-height:1.7;
}
.footer-bottom p{ color:inherit; margin: 0 0 8px; }

/* ============================================================
   Ghost mark watermarks — for custom-feel sections
============================================================ */
.ghost-mark{
  position: absolute;
  pointer-events: none;
  z-index: 0;
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  opacity: .07;
  filter: drop-shadow(0 0 1px rgba(196,169,53,.2));
}
.ghost-mark.gold{
  background-image: url('assets/logo-gold.png');
}
.ghost-mark.white{
  background-image: url('assets/logo-white.png');
  opacity: .05;
}
.ghost-mark.huge{
  width: 80vmin;
  height: 80vmin;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
}
.ghost-mark.corner-br{
  width: 380px; height: 380px;
  bottom: -120px; right: -120px;
  opacity: .06;
}
.ghost-mark.corner-tl{
  width: 280px; height: 280px;
  top: -80px; left: -80px;
  opacity: .05;
}
.ghost-mark.behind-hero{
  width: 65vmin; height: 65vmin;
  top: 15%; right: -10vmin;
  opacity: .08;
}
/* Make sure parent containers can host an absolute child */
.hero, .unit-econ-section, .image-break, .final-cta,
.testimonial-break, .wedge, .chart-card{ position: relative; }
/* Keep content above the watermark */
.hero-grid, .hero-meta, .scroll-cue-wrap,
.image-break-text, .final-inner, .tb-inner,
.econ.standalone, .chart-head, .growth-chart, .chart-stats, .chart-source{
  position: relative;
  z-index: 1;
}

/* ============================================================
   Subpage hero (corporate site pages)
============================================================ */
.subpage-hero{
  position: relative;
  min-height: 62vh;
  padding: 200px var(--pad-x) 100px;
  display: flex; align-items: center;
  color: #fff;
  overflow: hidden;
}
.subpage-hero .sh-bg{ position: absolute; inset: 0; z-index: 0; }
.subpage-hero .sh-bg img{ width: 100%; height: 100%; object-fit: cover; }
.subpage-hero .sh-scrim{
  position: absolute; inset: 0;
  background:
    linear-gradient(180deg, rgba(8,8,8,.85) 0%, rgba(8,8,8,.65) 50%, rgba(8,8,8,.95) 100%),
    radial-gradient(80% 60% at 30% 50%, rgba(0,0,0,.5) 0%, rgba(0,0,0,0) 70%);
}
.subpage-hero .sh-inner{
  position: relative; z-index: 1;
  max-width: 880px;
  margin: 0 auto 0 0;
  width: 100%;
}
.subpage-hero .eyebrow{ color: var(--gold-soft); font-size: 12px; letter-spacing: .26em; }
.subpage-hero .display-2,
.subpage-hero .display{ color: #fff; }
.subpage-hero .display-2 em,
.subpage-hero .display em{ color: var(--gold-soft); font-style: italic; font-weight: 300; }
.subpage-hero .lede{
  font-size: clamp(18px, 1.6vw, 24px);
  line-height: 1.5;
  color: rgba(255,255,255,.88);
  margin: 22px 0 0;
  max-width: 640px;
  font-weight: 300;
}
.subpage-hero .sh-rule{
  width: 80px; height: 1.5px;
  background: linear-gradient(90deg, var(--gold) 0%, transparent 100%);
  margin: 0 0 28px;
}

/* Compact 2-column page layout */
.page-section{ padding: var(--section-y) 0; }
.page-section.alt{ background: var(--ivory); }
.split-page{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(40px, 6vw, 80px);
  align-items: center;
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 var(--pad-x);
}
.split-page.reverse > div:first-child{ order: 2; }
.split-page.reverse > div:last-child{ order: 1; }
.split-page-img{ position: relative; aspect-ratio: 4 / 5; overflow: hidden; border-radius: 6px; }
.split-page-img img{ width: 100%; height: 100%; object-fit: cover; transition: transform 1.4s ease; }
.split-page-img:hover img{ transform: none; }
.split-page-text{ max-width: 540px; }
.split-page-text .display-3{ margin-bottom: 24px; }
@media (max-width: 1100px){
  .split-page{ grid-template-columns: 1fr; }
  .split-page.reverse > div:first-child{ order: 1; }
  .split-page.reverse > div:last-child{ order: 2; }
  .split-page-img{ aspect-ratio: 16 / 11; }
}

/* Audience / serve cards */
.serve-grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 var(--pad-x);
}
.serve-card{
  background: var(--paper);
  border: 1px solid var(--line);
  border-top: 3px solid var(--gold);
  padding: 0;
  overflow: hidden;
  transition: transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s ease;
}
.serve-img{ aspect-ratio: 4/3; overflow: hidden; background: #f4f1ea; }
.serve-img img{ width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s cubic-bezier(.2,.7,.2,1); }
.serve-card:hover .serve-img img{ transform: none; }
.serve-card-body{ padding: 32px 32px 36px; }
.serve-card:hover{ transform: translateY(-4px); box-shadow: 0 30px 60px rgba(24,26,29,.08); }
.serve-card h3{ font-size: clamp(22px, 1.8vw, 28px); margin: 0 0 12px; font-weight: 700; }
.serve-card .serve-eyebrow{
  font-size: 11px; letter-spacing: .22em; text-transform: uppercase;
  color: var(--gold); font-weight: 600; margin: 0 0 16px;
}
.serve-card p{ color: var(--muted); font-size: 14px; line-height: 1.65; margin: 0 0 20px; }
.serve-card ul{ list-style: none; padding: 0; margin: 0; border-top: 1px solid var(--line); }
.serve-card ul li{
  padding: 12px 0; font-size: 13px; color: var(--ink-soft);
  border-bottom: 1px solid var(--line);
  display: flex; gap: 10px; align-items: flex-start;
}
.serve-card ul li:last-child{ border-bottom: none; }
.serve-card ul li::before{ content: "·"; color: var(--gold); font-weight: 700; }
@media (max-width: 1100px){ .serve-grid{ grid-template-columns: 1fr; } }

/* Partners logo grid (typographic wordmarks) */
.partners-grid{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
  max-width: 1240px;
  margin: 0 auto;
}
.partner-cell{
  background: var(--paper);
  padding: 48px 24px;
  display: flex; align-items: center; justify-content: center;
  font-size: 18px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ink-soft);
  font-weight: 600;
  text-align: center;
  transition: background .3s ease, color .3s ease;
}
.partner-cell:hover{ background: var(--ink); color: var(--gold-soft); }
@media (max-width: 1100px){ .partners-grid{ grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px){ .partners-grid{ grid-template-columns: 1fr; } }

/* Contact form */
.contact-grid{
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: clamp(40px, 6vw, 80px);
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 var(--pad-x);
}
.contact-info h4{
  font-family: var(--sans);
  font-size: 11px; letter-spacing: .22em; text-transform: uppercase;
  color: var(--gold); font-weight: 600;
  margin: 0 0 8px;
}
.contact-info p{ font-size: 16px; color: var(--ink); margin: 0 0 32px; line-height: 1.5; }
.contact-info p a{ color: var(--ink); border-bottom: 1px solid var(--gold); }
.contact-form{ display: grid; gap: 14px; }
.contact-form label{
  font-size: 11px; letter-spacing: .2em; text-transform: uppercase;
  color: var(--muted); font-weight: 600;
  display: block; margin-bottom: 6px;
}
.contact-form input, .contact-form textarea, .contact-form select{
  width: 100%; background: var(--paper);
  border: 1px solid var(--line); border-radius: 0;
  padding: 14px 16px;
  font-family: var(--sans); font-size: 15px; color: var(--ink);
  transition: border-color .25s ease;
}
.contact-form input:focus, .contact-form textarea:focus, .contact-form select:focus{
  outline: none; border-color: var(--gold);
}
.contact-form textarea{ min-height: 140px; resize: vertical; }
@media (max-width: 1100px){ .contact-grid{ grid-template-columns: 1fr; } }

/* News card grid (reuse existing .updates-grid styles) */
.news-page-grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 var(--pad-x);
}
@media (max-width: 1100px){ .news-page-grid{ grid-template-columns: 1fr 1fr; } }
@media (max-width: 700px){ .news-page-grid{ grid-template-columns: 1fr; } }

/* Page-level CTA band */
.cta-band{
  background: var(--ink);
  color: #fff;
  padding: clamp(60px, 8vw, 100px) var(--pad-x);
  text-align: center;
}
.cta-band .display-2{ color: #fff; max-width: 800px; margin: 0 auto 16px; }
.cta-band .display-2 em{ color: var(--gold-soft); font-style: italic; }
.cta-band p{ color: rgba(255,255,255,.78); max-width: 640px; margin: 0 auto 32px; }
.cta-band .hero-cta{ justify-content: center; display: flex; gap: 14px; flex-wrap: wrap; }

/* ============================================================
   Compliance banner
============================================================ */
.compliance-banner{
  position:fixed; top:0; left:0; right:0; z-index:101;
  background:var(--ink);
  color:var(--ivory);
  font-size:11px;
  letter-spacing:.14em;
  text-transform:uppercase;
  padding:9px var(--pad-x);
  border-bottom:1px solid rgba(168,132,62,.3);
}
.cb-inner{ display:flex; align-items:center; justify-content:center; gap:12px; flex-wrap:wrap; }
.cb-dot{
  width:7px; height:7px; border-radius:50%;
  background:var(--gold); display:inline-block;
  box-shadow:0 0 0 0 rgba(168,132,62,.55);
  animation: pulse 2s infinite;
}
@keyframes pulse{
  0%{ box-shadow:0 0 0 0 rgba(168,132,62,.55); }
  70%{ box-shadow:0 0 0 10px rgba(168,132,62,0); }
  100%{ box-shadow:0 0 0 0 rgba(168,132,62,0); }
}
.cb-inner a{ color:var(--gold-soft); border-bottom:1px solid rgba(194,163,104,.4); padding-bottom:1px; }
.utility-bar{ top:0; }

/* ============================================================
   Hero — 2-column with video + metrics rail
============================================================ */
.hero{ padding-top: 200px; }
.hero-grid{
  position:relative; z-index:1;
  display:grid;
  grid-template-columns: 1.15fr 1fr;
  gap:64px;
  align-items:center;
  width:100%;
  max-width:1480px;
  margin:0 auto;
}
.hero-bullets{
  list-style:none;
  padding:0;
  margin: 0 0 36px;
  max-width:560px;
}
.hero-bullets li{
  position:relative;
  padding:10px 0 10px 28px;
  font-size:14px;
  color:rgba(255,255,255,.85);
  border-bottom:1px solid rgba(255,255,255,.12);
  line-height:1.55;
}
.hero-bullets li:last-child{ border-bottom:none; }
.hero-bullets li::before{
  content:"";
  position:absolute; left:0; top:18px;
  width:14px; height:1px;
  background:var(--gold-soft);
}

.hero-aside{
  display:flex; flex-direction:column; gap:18px;
  width:100%;
}
.video-card{
  position:relative; margin:0;
  border-radius: 18px;
  overflow:hidden;
  background:#000;
  box-shadow:
    0 40px 90px rgba(0,0,0,.55),
    0 0 0 1px rgba(255,255,255,.06),
    inset 0 0 0 1px rgba(255,255,255,.04);
  aspect-ratio: 16 / 10;
}
.video-card video{
  width:100%; height:100%; object-fit:cover; display:block;
}
.video-card figcaption{
  position:absolute; left:0; right:0; bottom:0;
  padding: 36px 18px 14px;
  background: linear-gradient(180deg, transparent, rgba(0,0,0,.7));
  font-size:11px; letter-spacing:.18em; text-transform:uppercase;
  color:rgba(255,255,255,.85);
  pointer-events:none;
}
.play-overlay{
  position:absolute; inset:0;
  display:flex; align-items:center; justify-content:center;
  background:rgba(24,26,29,.25);
  border:none; cursor:pointer;
  transition: background .3s ease, opacity .3s ease;
}
.play-overlay.hidden{ opacity:0; pointer-events:none; }
.play-overlay:hover{ background:rgba(24,26,29,.05); }
.play-ring{
  width:74px; height:74px; border-radius:50%;
  border:1px solid rgba(255,255,255,.7);
  display:flex; align-items:center; justify-content:center;
  background:rgba(255,255,255,.1);
  backdrop-filter:blur(6px);
  transition: transform .3s ease, background .3s ease;
}
.play-overlay:hover .play-ring{ transform:scale(1.08); background:rgba(168,132,62,.35); }
.play-tri{
  width:0; height:0;
  border-left:16px solid #fff;
  border-top:10px solid transparent;
  border-bottom:10px solid transparent;
  margin-left:5px;
}

.metrics-card{
  background:rgba(251,248,241,.97);
  color:var(--ink);
  padding: 22px 24px;
  border-radius:var(--radius);
  box-shadow: 0 30px 70px rgba(0,0,0,.35);
  border:1px solid rgba(168,132,62,.2);
}
.m-row{
  display:grid; grid-template-columns: 1fr 1fr;
  gap:12px;
  border-bottom:1px solid var(--line);
  padding-bottom:14px;
  margin-bottom:14px;
}
.m-row:nth-of-type(2){ border-bottom:none; padding-bottom:0; margin-bottom:18px; }
.m-cell{ }
.m-label{
  font-size:10px; letter-spacing:.2em; text-transform:uppercase;
  color:var(--muted); font-weight:500;
  margin-bottom:4px;
}
.m-value{
  font-family:var(--sans);
  font-size:26px;
  line-height:1;
  color:var(--ink);
  letter-spacing:-0.01em;
}
.m-progress{ margin-bottom:14px; }
.m-bar{
  height:6px; background:var(--bone); border-radius:999px; overflow:hidden;
  margin-bottom:8px;
}
.m-bar span{
  display:block; height:100%;
  background:linear-gradient(90deg, var(--gold) 0%, var(--gold-soft) 100%);
  border-radius:999px;
  animation: barFill 1.4s ease-out;
}
@keyframes barFill{ from{ width:0; } }
.m-progress-meta{
  display:flex; justify-content:space-between;
  font-size:11px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--muted);
}
.m-status{ color:#1d7a4f; font-weight:600; }
.btn.block{ width:100%; display:flex; }
.m-foot{
  font-size:10px; color:var(--muted);
  margin: 12px 0 0; line-height:1.5;
  letter-spacing:.02em;
}

/* ============================================================
   Reasons to Invest
============================================================ */
.reasons{ background:var(--paper); }
.reasons-grid{
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap:0;
  margin-top:72px;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.reason{
  padding:48px 32px;
  border-right:1px solid var(--line);
}
.reason:last-child{ border-right:none; }
.reason .r-num{
  font-family:var(--sans);
  font-style:italic;
  font-size:42px;
  color:var(--gold);
  letter-spacing:.02em;
  display:block;
  margin-bottom:28px;
  line-height:1;
}
.reason h3{
  font-size:28px;
  line-height:1.2;
  margin:0 0 16px;
  font-weight:400;
}
.reason p{
  font-size:16px;
  color:var(--ink-soft);
  margin:0;
  line-height:1.65;
}

/* ============================================================
   Backed By
============================================================ */
.backed{ background:var(--ivory); }
.backed-grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap:1px;
  margin-top:64px;
  background:var(--line);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.backer{
  background:var(--paper);
  padding:36px 32px;
}
.b-name{
  font-family:var(--sans);
  font-size:30px;
  line-height:1.1;
  margin:0 0 4px;
  color:var(--ink);
}
.b-role{
  font-size:11px; letter-spacing:.2em; text-transform:uppercase;
  color:var(--gold);
  margin:0 0 16px;
  font-weight:500;
}
.backer p:last-child{
  font-size:14px;
  color:var(--muted);
  margin:0;
  line-height:1.6;
}

/* ============================================================
   Roadmap
============================================================ */
.roadmap{ background:var(--paper); }
.road-track{
  margin-top:80px;
  display:grid;
  grid-template-columns: repeat(6, 1fr);
  gap:32px;
  position:relative;
}
.rd-line{
  position:absolute;
  top: 18px; left:5%; right:5%;
  height:1px;
  background:linear-gradient(90deg, var(--gold) 0%, var(--gold) 50%, var(--line) 50%, var(--line) 100%);
}
.rd{
  position:relative;
  padding-top:48px;
}
.rd::before{
  content:"";
  position:absolute; top:14px; left:0;
  width:9px; height:9px; border-radius:50%;
  background:var(--line);
  border:2px solid var(--paper);
  box-shadow:0 0 0 1px var(--line);
}
.rd.done::before{ background:var(--gold); box-shadow:0 0 0 1px var(--gold); }
.rd.active::before{
  background:var(--gold);
  box-shadow:0 0 0 1px var(--gold), 0 0 0 6px rgba(168,132,62,.2);
  animation: pulseDot 2s infinite;
}
@keyframes pulseDot{
  0%,100%{ box-shadow:0 0 0 1px var(--gold), 0 0 0 6px rgba(168,132,62,.2); }
  50%{ box-shadow:0 0 0 1px var(--gold), 0 0 0 12px rgba(168,132,62,0); }
}
.rd-year{
  display:block;
  font-size:11px; letter-spacing:.2em; text-transform:uppercase;
  color:var(--gold); font-weight:500;
  margin-bottom:10px;
}
.rd h4{
  font-family:var(--sans);
  font-size:21px;
  font-weight:400;
  margin:0 0 8px;
  line-height:1.25;
}
.rd p{
  font-size:13px; line-height:1.6;
  color:var(--muted);
  margin:0;
}

/* ============================================================
   Materials & Study form
============================================================ */
.materials{ margin-top:120px; padding-top:80px; border-top:1px solid var(--line); }
.materials .display-3{ margin-bottom:48px; }
.mat-grid{
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap:16px;
  margin-bottom:48px;
}
.mat-card{
  background:var(--paper);
  border:1px solid var(--line);
  padding:28px 24px;
  display:flex; flex-direction:column;
  transition: transform .3s ease, border-color .3s ease, box-shadow .3s ease;
  color:var(--ink) !important;
}
.mat-card:hover{
  transform:translateY(-4px);
  border-color:var(--gold);
  box-shadow: 0 30px 60px rgba(24,26,29,.08);
}
.mat-icon{
  font-family:var(--sans);
  font-size:32px;
  color:var(--gold);
  margin-bottom:18px;
  line-height:1;
}
.mat-card h4{
  font-family:var(--sans);
  font-size:22px;
  font-weight:400;
  margin:0 0 8px;
}
.mat-card p{
  font-size:13px;
  color:var(--muted);
  flex:1;
  margin:0 0 16px;
}
.mat-cta{
  font-size:11px; letter-spacing:.2em; text-transform:uppercase;
  color:var(--gold);
  font-weight:500;
}

.study-form{
  background:var(--paper);
  border:1px solid var(--line);
  padding:36px;
  text-align:center;
}
.study-form .eyebrow{ margin-bottom:18px; }
.sf-row{
  display:grid;
  grid-template-columns: 1fr 1fr auto;
  gap:12px;
  max-width:780px;
  margin:0 auto;
}
.sf-row input{
  background:#fff;
  border:1px solid var(--line);
  padding:14px 16px;
  font-family:var(--sans);
  font-size:14px;
  color:var(--ink);
  border-radius:0;
}
.sf-row input:focus{ outline:none; border-color:var(--gold); }
.sf-foot{
  margin: 16px 0 0;
  font-size:11px; color:var(--muted);
  letter-spacing:.04em;
}
.sf-foot a{ color:var(--gold); border-bottom:1px solid rgba(168,132,62,.3); }

/* ============================================================
   Updates / News cards
============================================================ */
.updates{ background:var(--ivory); }
.updates-head{
  display:flex; justify-content:space-between; align-items:flex-end;
  margin-bottom:48px;
}
.updates-head .display-2{ margin:0; }
.up-nav{ display:flex; gap:8px; }
.up-arrow{
  width:44px; height:44px;
  border:1px solid var(--line);
  background:var(--paper);
  font-family:var(--sans); font-size:18px;
  cursor:pointer; color:var(--ink);
  transition: all .25s ease;
}
.up-arrow:hover{ background:var(--ink); color:var(--paper); border-color:var(--ink); }

.updates-grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap:32px;
}
.up-card{
  background:var(--paper);
  border:1px solid var(--line);
  cursor:pointer;
  transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}
.up-card:hover{
  transform:translateY(-4px);
  border-color:var(--gold);
  box-shadow: 0 40px 80px rgba(24,26,29,.1);
}
.up-img{
  width:100%; height:240px;
  background-size:cover;
  background-position:center;
}
.up-card .up-meta{
  padding:24px 28px 0;
  font-size:11px; letter-spacing:.2em; text-transform:uppercase;
  color:var(--muted);
  display:flex; gap:8px;
  margin:0 0 12px;
}
.up-card h3{
  padding: 0 28px;
  font-size:24px;
  margin:0 0 12px;
  line-height:1.25;
}
.up-card p{
  padding: 0 28px;
  font-size:14px; color:var(--muted);
  margin: 0 0 24px;
}
.up-card .up-cta{
  display:block;
  padding: 16px 28px 24px;
  font-size:11px; letter-spacing:.2em; text-transform:uppercase;
  color:var(--gold);
  border-top:1px solid var(--line);
}

/* ============================================================
   Problem / Solution sections
============================================================ */
.problem-solution{ position:relative; }
.problem{ background: var(--paper); }
.solution{ background: var(--ivory); }
.ps-grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(40px, 6vw, 96px);
  align-items:center;
}
.ps-grid.reverse .ps-text{ order: 2; }
.ps-grid.reverse .ps-image{ order: 1; }
.ps-text{ max-width: 560px; }
.ps-text .display-2{ margin-bottom: 28px; }
.ps-image{
  position:relative;
  aspect-ratio: 4 / 5;
  overflow:hidden;
  border-radius: 6px;
  box-shadow: 0 40px 80px rgba(24,26,29,.16);
}
.ps-image img{
  width:100%; height:100%; object-fit:cover;
  transition: transform 1.4s ease;
}
.ps-image:hover img{ transform: scale(1.04); }

.ps-list{
  list-style:none;
  padding: 0;
  margin: 36px 0 0;
  border-top: 1px solid var(--line);
}
.ps-list li{
  display:flex;
  align-items:center;
  gap: 22px;
  padding: 24px 0;
  border-bottom: 1px solid var(--line);
  font-size: 19px;
  color: var(--ink);
  line-height: 1.45;
  font-weight: 400;
}
.ps-x{
  flex-shrink: 0;
  width: 44px; height: 44px;
  border-radius: 50%;
  background: rgba(196, 169, 53, 0.08);
  color: var(--gold);
  display:flex; align-items:center; justify-content:center;
  font-family: var(--sans);
  font-size: 24px;
  font-weight: 300;
  line-height: 1;
  border: 1px solid rgba(196, 169, 53, 0.4);
}

.problem-megastat{
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin: 0 0 28px;
  padding: 20px 0 28px;
  border-bottom: 1px solid var(--line);
}
.problem-megastat-num{
  font-family: var(--serif, var(--sans));
  font-size: clamp(48px, 7vw, 88px);
  line-height: 1;
  color: var(--gold);
  letter-spacing: -0.01em;
}
.problem-megastat-label{
  font-size: 16px;
  color: var(--ink);
  line-height: 1.4;
  max-width: 540px;
}
.problem-subhead{
  font-size: 20px;
  font-weight: 600;
  color: var(--ink);
  margin: 18px 0 22px;
  line-height: 1.35;
}

.solution-superhead{
  font-size: 14px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--gold);
  margin: 0 0 14px;
  font-weight: 600;
}

.reasons-h{
  font-size: clamp(38px, 5vw, 60px);
}

.ps-pillars{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  margin: 36px 0 0;
  border-top: 1.5px solid var(--gold);
  border-bottom: 1.5px solid var(--gold);
}
.ps-pillars > div{
  padding: 26px 18px;
  border-right: 1px solid rgba(168,132,62,.35);
  text-align: center;
}
.ps-pillars > div:last-child{ border-right: none; }
.ps-pillars strong{
  display:block;
  font-family: var(--sans);
  font-size: 32px;
  font-weight: 600;
  color: var(--ink);
  margin-bottom: 8px;
  letter-spacing: -0.01em;
  line-height: 1;
}
.ps-pillars span{
  display: block;
  font-size: 12px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--gold);
  font-weight: 600;
  white-space: nowrap;
}

.img-cap.gold{
  background: var(--gold);
  color: #181A1D;
  border-left: 2px solid #181A1D;
}

/* ============================================================
   Press marquee — styled wordmarks (publication typography)
============================================================ */
.pm-track .logo{
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  height: 38px;
  color: rgba(246,241,231,.92);
  letter-spacing: 0;
  margin: 0 18px;
}
/* Forbes — bold serif italic */
.logo-forbes{
  font-family: var(--sans);
  font-style: italic;
  font-weight: 600;
  font-size: 30px;
  letter-spacing: -0.02em;
}
/* Bloomberg — geometric sans, condensed feel */
.logo-bloomberg{
  font-family: var(--sans);
  font-weight: 600;
  font-size: 22px;
  letter-spacing: -0.01em;
}
/* Financial Times — white serif on the dark marquee background */
.logo-ft{
  font-family: var(--sans);
  font-weight: 500;
  font-size: 18px;
  letter-spacing: .12em;
  font-style: italic;
  color: #fff !important;
}
/* WSJ — narrow serif all caps */
.logo-wsj{
  font-family: var(--sans);
  font-weight: 500;
  font-size: 14px;
  letter-spacing: .14em;
}
/* Vogue — thin serif all caps wide */
.logo-vogue{
  font-family: var(--sans);
  font-weight: 400;
  font-size: 32px;
  letter-spacing: .18em;
}
/* AD - Architectural Digest — bold serif */
.logo-ad{
  font-family: var(--sans);
  font-weight: 700;
  font-size: 32px;
  letter-spacing: -0.04em;
}
/* Condé Nast Traveler — italic serif */
.logo-cnt{
  font-family: var(--sans);
  font-style: italic;
  font-weight: 400;
  font-size: 22px;
  letter-spacing: .01em;
}
/* Robb Report — refined serif */
.logo-robb{
  font-family: var(--sans);
  font-weight: 400;
  font-size: 18px;
  letter-spacing: .24em;
}
/* Crunchbase — friendly sans */
.logo-crunchbase{
  font-family: var(--sans);
  font-weight: 600;
  font-size: 20px;
  letter-spacing: -0.01em;
}
/* Social Life Magazine — italic serif */
.logo-social{
  font-family: var(--sans);
  font-style: italic;
  font-weight: 400;
  font-size: 20px;
  letter-spacing: .02em;
}

/* ============================================================
   Hero — single-column centered (simplified version)
============================================================ */
.hero--home .hero-grid{ grid-template-columns: 1fr; justify-items: center; text-align: center; }
.hero--home .hero-inner{ max-width: 980px; margin: 0 auto; text-align: center; }
.hero--home .hero-inner .hero-meta-top{ justify-content: center; }
.hero--home .hero-inner .hero-rule{ margin-left: auto; margin-right: auto; }
.hero--home .hero-inner .lede{ max-width: 720px; margin-left: auto; margin-right: auto; }
.hero--home .hero-inner .hero-cta{ justify-content: center; }
.hero-membership-note{
  font-family: var(--sans);
  font-size: 13px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--gold-soft);
  margin: 8px auto 24px;
  text-align: center;
}

/* Hero destination search (Tripwix-style) */
.hero-search{
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr auto;
  align-items: stretch;
  gap: 0;
  width: 100%;
  max-width: 880px;
  margin: 18px auto 32px;
  background: rgba(255,255,255,0.96);
  border: 1px solid rgba(194,163,104,0.35);
  border-radius: 999px;
  padding: 8px 8px 8px 14px;
  box-shadow: 0 18px 60px rgba(0,0,0,0.35);
  text-align: left;
}
.hero-search .hs-field{
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 8px 22px;
  border-right: 1px solid rgba(0,0,0,0.08);
  min-width: 0;
}
.hero-search .hs-field:last-of-type{ border-right: none; }
.hero-search label{
  font-family: var(--sans);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 600;
  color: #1a1a1a;
  margin-bottom: 4px;
}
.hero-search input{
  border: none;
  background: transparent;
  font-family: var(--sans);
  font-size: 15px;
  color: #1a1a1a;
  width: 100%;
  outline: none;
  padding: 0;
}
.hero-search input::placeholder{ color: #888; font-weight: 400; }
.hero-search input[readonly]{ cursor: pointer; }

.hs-destination{ position: relative; }
.hs-dropdown{
  position: absolute;
  top: calc(100% + 12px);
  left: 0;
  width: max(320px, 100%);
  max-height: 320px;
  overflow-y: auto;
  background: #fff;
  border: 1px solid rgba(0,0,0,0.08);
  border-radius: 14px;
  box-shadow: 0 24px 60px rgba(0,0,0,0.25);
  padding: 8px;
  display: none;
  z-index: 30;
  text-align: left;
}
.hs-destination.is-open .hs-dropdown{ display: block; }
.hs-dropdown button{
  display: block;
  width: 100%;
  text-align: left;
  background: transparent;
  border: none;
  padding: 10px 14px;
  font-family: var(--sans);
  font-size: 15px;
  color: #1a1a1a;
  border-radius: 8px;
  cursor: pointer;
}
.hs-dropdown button:hover,
.hs-dropdown button:focus{ background: rgba(194,163,104,0.12); outline: none; }
.hero-search .hs-submit{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  border: none;
  background: var(--gold, #c2a368);
  color: #fff;
  cursor: pointer;
  align-self: center;
  margin-left: 8px;
  transition: background .2s ease, transform .2s ease;
}
.hero-search .hs-submit:hover{ background: #a98b54; transform: scale(1.04); }

@media (max-width: 860px){
  .hero-search{
    grid-template-columns: 1fr 1fr;
    border-radius: 24px;
    padding: 12px;
    gap: 4px;
  }
  .hero-search .hs-field{
    border-right: none;
    border-bottom: 1px solid rgba(0,0,0,0.08);
    padding: 10px 14px;
  }
  .hero-search .hs-destination{ grid-column: 1 / -1; }
  .hero-search .hs-guests{ border-bottom: none; }
  .hero-search .hs-submit{
    grid-column: 1 / -1;
    width: 100%;
    height: 52px;
    border-radius: 999px;
    margin: 8px 0 0;
  }
}

/* ============================================================
   Opportunity collage
============================================================ */
.opp-grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items:center;
}
.opp-text{ max-width:560px; }
.opp-collage{
  position:relative;
  height: 620px;
}
.oc{
  position:absolute;
  border-radius:var(--radius);
  overflow:hidden;
  box-shadow: 0 30px 70px rgba(24,26,29,.18);
  transition: transform .8s ease;
}
.oc img{ width:100%; height:100%; object-fit:cover; }
.oc-1{ width:62%; height:64%; left:0; top:0; z-index:1; }
.oc-2{ width:48%; height:48%; right:0; top:18%; z-index:2; }
.oc-3{ width:54%; height:42%; left:14%; bottom:0; z-index:3; }
.oc:hover{ transform:translateY(-4px); }

/* Stat row updates — animated counter + key label */
.stat-row .stat-num{
  font-family:var(--sans);
  font-size:clamp(48px, 5vw, 76px);
  line-height:1;
  letter-spacing:-0.03em;
  margin-bottom:18px;
  color:var(--ink);
  font-weight:700;
}
.stat-row .stat{
  padding: 56px 40px;
}
.stat-key{
  font-size:11px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--gold);
  font-weight:500;
  margin-bottom:14px;
}

/* Image caption ribbon (origin doorway) */
.split-image{ position:relative; }
.img-cap{
  position:absolute;
  left:24px; bottom:24px;
  font-size:10px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:#fff;
  background:rgba(24,26,29,.7);
  padding:8px 14px;
  font-weight:500;
  border-left:2px solid var(--gold);
}

/* Floating image break (small, centered, like Adams & Butler elephants) */
.float-break{
  display:block;
  margin: -40px auto 0;
  width: min(680px, 80%);
  position:relative;
  z-index:2;
}
.float-break img{
  width:100%;
  border-radius:var(--radius);
  box-shadow: 0 40px 80px rgba(24,26,29,.2);
  aspect-ratio: 16/9;
  object-fit:cover;
}

/* ============================================================
   As Seen In press marquee
============================================================ */
.press-marquee{
  background:var(--ink);
  color:var(--ivory);
  padding: 56px 0 64px;
  text-align:center;
  overflow: hidden;
  position: relative;
  width: 100%;
  max-width: 100vw;
  border-top:1px solid rgba(255,255,255,.06);
  border-bottom:1px solid rgba(255,255,255,.06);
}
.press-marquee .pm-track{
  will-change: transform;
}
.press-eyebrow{
  font-size:11px;
  letter-spacing:.3em;
  text-transform:uppercase;
  color:var(--gold-soft);
  margin: 0 0 32px;
  font-weight:500;
}
.pm-track{
  display:inline-flex;
  gap: 36px;
  white-space:nowrap;
  animation: marquee 80s linear infinite;
  font-family:var(--sans);
  font-size: clamp(20px, 1.8vw, 28px);
  letter-spacing:.04em;
  color:rgba(246,241,231,.78);
}
.pm-track .sep{ color:var(--gold); }
.pm-track span{ flex-shrink:0; }

/* ============================================================
   Wedge kicker line + dark image break
============================================================ */
.wedge-head .display-2{ margin-bottom:8px; }
.kicker{
  font-family:var(--sans);
  font-style:italic;
  font-size:clamp(28px, 2.6vw, 40px);
  color:var(--gold-soft);
  margin: 0 0 28px;
  line-height:1.2;
}
.image-break.dark .image-break-scrim{
  background: linear-gradient(180deg, rgba(24,26,29,.6) 0%, rgba(24,26,29,.85) 100%);
}

/* ============================================================
   Unit economics tiles
============================================================ */
.econ{
  margin-top: 96px;
  padding-top: 64px;
  border-top:1px solid rgba(255,255,255,.18);
  text-align:center;
}
.econ-eyebrow{
  font-size:11px;
  letter-spacing:.3em;
  text-transform:uppercase;
  color:var(--gold-soft);
  margin: 0 0 36px;
  font-weight:500;
}
.econ-tiles{
  display:flex;
  align-items:stretch;
  justify-content:center;
  gap: 18px;
  margin-bottom: 32px;
  flex-wrap:wrap;
}
.econ-tile{
  flex: 0 1 280px;
  padding: 36px 28px;
  border:1px solid rgba(255,255,255,.18);
  background: rgba(255,255,255,.03);
  border-radius:var(--radius);
  transition: border-color .4s ease, background .4s ease;
}
.econ-tile:hover{ border-color: var(--gold-soft); background:rgba(168,132,62,.08); }
.econ-sublabel{
  font-size: 12px;
  letter-spacing: .08em;
  color: rgba(255,255,255,.6);
  margin-top: 10px;
  line-height: 1.4;
}
.econ-tile.compound{
  border-color: var(--gold);
  background: linear-gradient(180deg, rgba(168,132,62,.18) 0%, rgba(168,132,62,.04) 100%);
}
.econ-num{
  font-family:var(--sans);
  font-size: clamp(44px, 4.8vw, 72px);
  line-height:1;
  letter-spacing:-0.02em;
  color: #fff;
  margin-bottom: 12px;
}
.econ-tile.compound .econ-num{ color: var(--gold-soft); }
.econ-num span{
  font-size: 0.55em;
  color: var(--gold-soft);
  vertical-align: top;
  margin-left: 2px;
}
.econ-label{
  font-size: 11px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(246,241,231,.7);
  font-weight: 500;
}
.econ-divider{
  font-family: var(--sans);
  font-size: 36px;
  color: var(--gold-soft);
  display:flex; align-items:center;
  padding: 0 6px;
  font-weight: 300;
}
.econ-line{
  font-family: var(--sans);
  font-size: clamp(20px, 2vw, 28px);
  color: var(--ivory);
  margin: 0;
}

/* ============================================================
   Standalone Unit Economics section (forest variant)
============================================================ */
.unit-econ-section{
  background:
    radial-gradient(ellipse at 20% 0%, rgba(196,169,53,0.05) 0%, transparent 55%),
    radial-gradient(ellipse at 80% 100%, rgba(196,169,53,0.04) 0%, transparent 60%),
    var(--ink);
  color: var(--ivory);
  text-align: center;
}
.econ.standalone{
  margin-top: 0;
  padding-top: 0;
  border-top: none;
  max-width: 1100px;
  margin: 0 auto;
}
.econ.standalone .econ-eyebrow{
  color: var(--gold-soft);
  margin-bottom: 24px;
}
.econ-headline{
  color: var(--ivory);
  margin-bottom: 56px;
}
.econ-headline em{
  color: var(--gold-soft);
  font-style: italic;
}

/* Use-of-funds: first-block variant (no top divider) */
.use-of-funds.first{
  margin-top: 0;
  padding-top: 0;
  border-top: none;
}

/* ============================================================
   Market growth chart
============================================================ */
.chart-block{
  margin-top: 96px;
  padding-top: 80px;
  border-top: 1px solid var(--line);
}
.chart-head{
  text-align:center;
  margin-bottom: 56px;
}
.chart-head .display-3{ margin: 0 0 8px; }
.chart-sub{
  font-size: 13px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--muted);
  margin: 0;
  font-weight: 500;
}
.chart-card{
  background: var(--paper);
  border: 1px solid var(--line);
  padding: 48px 40px 32px;
  border-radius: var(--radius);
  box-shadow: 0 30px 60px rgba(24,26,29,.06);
}
.growth-chart{
  width: 100%;
  height: auto;
  display: block;
  margin-bottom: 40px;
}
.growth-chart .grid line{
  stroke: var(--line);
  stroke-width: 1;
  stroke-dasharray: 2 4;
}
.growth-chart .ylabels text,
.growth-chart .xlabels text{
  font-family: var(--sans);
  font-size: 11px;
  letter-spacing: .14em;
  text-transform: uppercase;
  fill: var(--muted);
  font-weight: 500;
}
.growth-chart .line{
  fill: none;
  stroke: url(#lineGrad);
  stroke-width: 3;
  stroke-linecap: round;
  stroke-linejoin: round;
  filter: drop-shadow(0 6px 14px rgba(168,132,62,.3));
  stroke-dasharray: 1200;
  stroke-dashoffset: 1200;
  animation: drawLine 2s ease-out forwards;
}
@keyframes drawLine{ to{ stroke-dashoffset: 0; } }
.growth-chart .area{
  opacity: 0;
  animation: fadeArea 1.6s ease-out 1s forwards;
}
@keyframes fadeArea{ to{ opacity: 1; } }
.growth-chart .markers circle{
  fill: var(--gold);
  stroke: var(--paper);
  stroke-width: 3;
}
.growth-chart .markers circle.end{
  fill: var(--gold);
  filter: drop-shadow(0 0 0 4px rgba(168,132,62,.25));
}
.growth-chart .endpoints text{
  font-family: var(--sans);
  font-weight: 400;
}
.growth-chart .ep-val{
  font-size: 22px;
  fill: var(--ink);
}
.growth-chart .ep-val.end{
  font-size: 28px;
  fill: var(--gold);
}
.growth-chart .ep-year{
  font-size: 11px;
  letter-spacing: .22em;
  text-transform: uppercase;
  fill: var(--muted);
  font-weight: 500;
}
.chart-stats{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  border-top: 1px solid var(--line);
}
.chart-stats > div{
  padding: 28px 16px 8px;
  border-right: 1px solid var(--line);
  text-align: center;
}
.chart-stats > div:last-child{ border-right: none; }
.cs-num{
  font-family: var(--sans);
  font-size: clamp(32px, 3vw, 44px);
  line-height: 1;
  color: var(--gold);
  letter-spacing: -0.01em;
  margin-bottom: 10px;
}
.cs-num span{ font-size: 0.6em; color: var(--ink); }
.cs-lbl{
  font-size: 11px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 500;
}
.chart-source{
  margin: 24px 0 0;
  font-size: 11px;
  color: var(--muted);
  letter-spacing: .04em;
  text-align: center;
}

/* ============================================================
   Crunchbase Heat Score chart
============================================================ */
.heat-block{
  margin: 64px auto 64px;
  padding: 56px 48px;
  background: linear-gradient(180deg, var(--paper) 0%, var(--ivory) 100%);
  border: 1px solid var(--line);
  border-radius: 6px;
  box-shadow: 0 30px 80px rgba(24,26,29,.06);
}
.heat-head{
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-bottom: 32px;
  gap: 24px;
  flex-wrap: wrap;
}
.heat-meta .eyebrow{ margin-bottom: 12px; }
.heat-title{
  display: flex;
  align-items: baseline;
  gap: 18px;
  margin: 0 0 10px;
  font-size: clamp(28px, 3vw, 44px);
}
.heat-title em{
  font-family: var(--sans);
  font-style: normal;
  font-weight: 800;
  font-size: clamp(40px, 4.6vw, 72px);
  letter-spacing: -0.04em;
  line-height: 1;
  color: var(--gold);
  position: relative;
  padding-left: 6px;
}
.heat-title em::after{
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: -6px;
  height: 3px;
  background: linear-gradient(90deg, var(--gold) 0%, transparent 100%);
  opacity: .5;
}
.heat-delta{
  font-size: 14px;
  letter-spacing: .04em;
  color: var(--muted);
  margin: 0;
  font-weight: 500;
}
.heat-delta .up-arrow{
  display: inline-block;
  color: var(--gold);
  font-weight: 700;
  margin-right: 4px;
}
.heat-ranges{
  display: flex;
  gap: 4px;
  background: rgba(24,26,29,.04);
  padding: 4px;
  border-radius: 999px;
}
.heat-ranges span{
  font-size: 11px;
  letter-spacing: .14em;
  font-weight: 600;
  color: var(--muted);
  padding: 8px 14px;
  border-radius: 999px;
  text-transform: uppercase;
}
.heat-ranges span.active{
  background: var(--ink);
  color: #fff;
}

.heat-card{
  position: relative;
}
.heat-chart{
  width: 100%;
  height: auto;
  display: block;
  margin-bottom: 32px;
}
.heat-chart .hgrid line{
  stroke: var(--line);
  stroke-width: 1;
  stroke-dasharray: 2 5;
}
.heat-chart .hgrid .axis-line{
  stroke-dasharray: none;
  stroke: var(--ink);
  stroke-opacity: .15;
}
.heat-chart .hylabels text,
.heat-chart .hxlabels text{
  font-family: var(--sans);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  fill: var(--muted);
}
.heat-chart .heat-area{
  fill: url(#heatArea);
  opacity: 0;
  animation: heatFade 1.6s ease-out 0.6s forwards;
}
.heat-chart .heat-line{
  fill: none;
  stroke: url(#heatLine);
  stroke-width: 3.5;
  stroke-linecap: round;
  stroke-linejoin: round;
  filter: drop-shadow(0 8px 18px rgba(196,169,53,.35));
  stroke-dasharray: 1400;
  stroke-dashoffset: 1400;
  animation: heatDraw 2.4s cubic-bezier(.6,.2,.2,1) forwards;
}
@keyframes heatDraw{ to{ stroke-dashoffset: 0; } }
@keyframes heatFade{ to{ opacity: 1; } }
.heat-chart .heat-end{
  fill: var(--gold);
  stroke: #fff;
  stroke-width: 3;
  opacity: 0;
  animation: heatFade 0.4s ease-out 2.2s forwards;
}
.heat-chart .heat-pulse{
  transform-origin: 960px 63px;
  animation: heatPulse 2.4s ease-out 2.4s infinite;
  opacity: 0;
}
@keyframes heatPulse{
  0%   { transform: scale(0.6); opacity: 0.9; }
  100% { transform: scale(2.6); opacity: 0; }
}
.heat-chart .heat-end-label{
  font-family: var(--sans);
  font-weight: 800;
  font-size: 28px;
  fill: var(--ink);
  letter-spacing: -0.02em;
  opacity: 0;
  animation: heatFade 0.4s ease-out 2.4s forwards;
}
.heat-chart .heat-end-annot{
  font-family: var(--sans);
  font-weight: 600;
  font-size: 13px;
  fill: var(--gold);
  letter-spacing: .06em;
  text-transform: uppercase;
  opacity: 0;
  animation: heatFade 0.4s ease-out 2.6s forwards;
}
.hs-highlight{
  background: rgba(196,169,53,0.06);
  outline: 1px solid var(--gold);
  outline-offset: -1px;
}
.hs-highlight .hs-num{ color: var(--gold); }

.origin-monogram{
  margin-top: 36px;
  font-family: var(--serif, var(--sans));
  font-style: italic;
  font-weight: 300;
  font-size: 56px;
  color: var(--gold);
  letter-spacing: -0.04em;
  line-height: 1;
  text-align: left;
  background: linear-gradient(135deg, var(--gold-deep) 0%, var(--gold) 45%, #f0d97a 70%, var(--gold) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.heat-stats{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.heat-stats > div{
  padding: 28px 24px;
  border-right: 1px solid var(--line);
  text-align: center;
}
.heat-stats > div:last-child{ border-right: none; }
.hs-num{
  font-family: var(--sans);
  font-weight: 800;
  font-size: clamp(28px, 2.8vw, 38px);
  line-height: 1;
  color: var(--gold);
  letter-spacing: -0.02em;
  margin-bottom: 10px;
}
.hs-num span{
  font-size: 0.55em;
  font-weight: 600;
  color: var(--ink);
  letter-spacing: 0;
}
.hs-lbl{
  font-size: 11px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 600;
}
.heat-source{
  margin: 18px 0 0;
  font-size: 11px;
  color: var(--muted);
  letter-spacing: .04em;
  text-align: center;
}

@media (max-width: 760px){
  .heat-block{ padding: 36px 24px; }
  .heat-head{ flex-direction: column; align-items: flex-start; }
  .heat-stats{ grid-template-columns: 1fr; }
  .heat-stats > div{ border-right: none; border-bottom: 1px solid var(--line); }
  .heat-stats > div:last-child{ border-bottom: none; }
}

/* ============================================================
   Use-of-funds donut chart
============================================================ */
.use-of-funds{ margin-top: 120px; padding-top:80px; border-top:1px solid var(--line); }
.uof-sub{
  text-align:center;
  font-size: 13px;
  color: var(--muted);
  letter-spacing: .04em;
  max-width: 640px;
  margin: -8px auto 56px;
}
.uof-grid{
  display: grid;
  grid-template-columns: 1fr 1.3fr;
  gap: 80px;
  align-items: center;
  max-width: 1100px;
  margin: 0 auto;
}
.donut-wrap{
  display: flex;
  align-items: center;
  justify-content: center;
}
.donut{
  width: 100%;
  max-width: min(380px, 80vw);
  height: auto;
  transform: rotate(-90deg);
}
.donut .d-track{
  fill: none;
  stroke: var(--line);
  stroke-width: 32;
  opacity: .5;
}
.donut .d-seg{
  fill: none;
  stroke-width: 32;
  stroke-linecap: butt;
  transition: stroke-width .3s ease;
}
.donut .d-seg.s1{ stroke: #6b4f1c; }
.donut .d-seg.s2{ stroke: #a8843e; }
.donut .d-seg.s3{ stroke: #c2a368; }
.donut .d-seg.s4{ stroke: #d8be8c; }
.donut .d-seg.s5{ stroke: #ebd9b6; }
.donut .d-center-num{
  transform: rotate(90deg);
  transform-origin: center;
  font-family: var(--sans);
  font-size: 38px;
  fill: var(--ink);
  font-weight: 400;
  letter-spacing: -0.01em;
}
.donut .d-center-lbl{
  transform: rotate(90deg);
  transform-origin: center;
  font-family: var(--sans);
  font-size: 9px;
  letter-spacing: .28em;
  fill: var(--muted);
  font-weight: 500;
}
.uof-legend{
  list-style: none;
  padding: 0;
  margin: 0;
}
.uof-legend li{
  display: flex;
  align-items: flex-start;
  gap: 18px;
  padding: 18px 0;
  border-bottom: 1px solid var(--line);
}
.uof-legend li:first-child{ padding-top: 0; }
.uof-legend li:last-child{ border-bottom: none; }
.uof-legend .sw{
  flex-shrink: 0;
  width: 14px;
  height: 14px;
  margin-top: 6px;
  border-radius: 2px;
}
.uof-legend .sw1{ background: #6b4f1c; }
.uof-legend .sw2{ background: #a8843e; }
.uof-legend .sw3{ background: #c2a368; }
.uof-legend .sw4{ background: #d8be8c; }
.uof-legend .sw5{ background: #ebd9b6; }
.uof-legend .ll{ flex: 1; }
.uof-legend .lh{
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin-bottom: 4px;
  gap: 12px;
}
.uof-legend .lh strong{
  font-family: var(--sans);
  font-size: 19px;
  font-weight: 400;
  color: var(--ink);
}
.uof-legend .pct{
  font-family: var(--sans);
  font-size: 22px;
  color: var(--gold);
  font-weight: 400;
}
.uof-legend p{
  font-size: 13px;
  color: var(--muted);
  margin: 0;
  line-height: 1.6;
}

/* ============================================================
   Roadmap — 3 col grid + images
============================================================ */
.road-track{
  margin-top: 80px;
  display: grid !important;
  grid-template-columns: repeat(3, 1fr);
  gap: 56px 40px;
  position: relative;
}
.rd-line{ display: none; }
.rd{
  position: relative;
  padding-top: 0;
  background: var(--paper);
  border: 1px solid var(--line);
  transition: transform .35s ease, border-color .35s ease, box-shadow .35s ease;
}
.rd:hover{
  transform: translateY(-4px);
  border-color: var(--gold);
  box-shadow: 0 30px 60px rgba(24,26,29,.1);
}
.rd::before{ display: none; }
.rd-img{
  width: 100%;
  height: 220px;
  background-size: cover;
  background-position: center;
  position: relative;
}
.rd-img::after{
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 60%, rgba(0,0,0,.45) 100%);
}
.rd .rd-year{
  position: absolute;
  top: 18px; left: 18px;
  z-index: 2;
  background: rgba(24,26,29,.92);
  color: var(--gold-soft);
  padding: 8px 14px;
  font-size: 11px;
  letter-spacing: .2em;
  text-transform: uppercase;
  font-weight: 500;
  margin: 0;
}
.rd.active .rd-year{
  background: var(--gold);
  color: #fff;
  animation: pulseTag 2s infinite;
}
@keyframes pulseTag{
  0%,100%{ box-shadow: 0 0 0 0 rgba(168,132,62,.5); }
  50%{ box-shadow: 0 0 0 10px rgba(168,132,62,0); }
}
.rd h4{
  padding: 24px 28px 0;
  font-family: var(--sans);
  font-size: 24px;
  font-weight: 400;
  margin: 0 0 12px;
  line-height: 1.25;
}
.rd p{
  padding: 0 28px 28px;
  font-size: 14px;
  color: var(--muted);
  margin: 0;
  line-height: 1.6;
}

/* ============================================================
   Responsive
============================================================ */
@media (max-width: 1100px){
  .hero-grid{ grid-template-columns: 1fr; gap:48px; }
  .reasons-grid{ grid-template-columns: repeat(2, 1fr); }
  .reason{ border-bottom:1px solid var(--line); border-right:none; }
  .reason:nth-child(odd){ border-right:1px solid var(--line); }
  .opp-grid{ grid-template-columns: 1fr; gap: 48px; }
  .opp-collage{ height: 480px; }
  .ps-grid{ grid-template-columns: 1fr; gap: 48px; }
  .ps-grid.reverse .ps-text{ order: 1; }
  .ps-grid.reverse .ps-image{ order: 2; }
  .ps-image{ aspect-ratio: 16 / 11; }
  .uof-grid{ grid-template-columns: 1fr; gap: 48px; }
  .donut{ max-width: 320px; }
  .chart-stats{ grid-template-columns: 1fr 1fr; }
  .chart-stats > div:nth-child(odd){ border-right: 1px solid var(--line); }
  .chart-stats > div:nth-child(even){ border-right: none; }
  .chart-stats > div:nth-child(-n+2){ border-bottom: 1px solid var(--line); }
  .road-track{ grid-template-columns: 1fr 1fr; }
  .road-track{ grid-template-columns: repeat(3, 1fr); }
  .rd-line{ display:none; }
  .mat-grid{ grid-template-columns: repeat(2, 1fr); }
  .updates-grid{ grid-template-columns: 1fr 1fr; }
  .updates-grid .up-card:last-child{ grid-column: span 2; }
  .backed-grid{ grid-template-columns: repeat(2, 1fr); }
  .exp-grid{ grid-template-columns: 1fr; gap:48px; }
  .exp-images{ height:480px; }
  .region-grid{ grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 960px){
  .util-nav{ display:none; }
  .menu-toggle{ display:block; color:inherit; }
  .brand-word{ display:none; }
  .compliance-banner{ font-size:10px; letter-spacing:.06em; }

  .stat-row, .tailwinds, .moat, .traction-grid{ grid-template-columns: 1fr 1fr; }
  .moat-item, .stat, .tw, .t-stat{ border-right:none; border-bottom:1px solid var(--line); }
  .wedge .moat-item{ border-bottom-color:rgba(255,255,255,.18); }
  .moat-item:nth-child(odd), .stat:nth-child(odd), .tw:nth-child(odd), .t-stat:nth-child(odd){ border-right:1px solid var(--line); }
  .wedge .moat-item:nth-child(odd){ border-right:1px solid rgba(255,255,255,.18); }

  .split{ grid-template-columns: 1fr; }
  .split-image img{ height:60vh; }

  .kingdoms-grid{ grid-template-columns: repeat(2, 1fr); grid-auto-rows:200px; }
  .k-card.large{ grid-column: span 2; grid-row: span 2; }

  .three-pillars{ grid-template-columns:1fr; gap:32px; }
  .team-grid{ grid-template-columns: 1fr 1fr; gap:32px; }
  .why-grid{ grid-template-columns:1fr; }
  .terms{ grid-template-columns: 1fr; }
  .terms dt{ padding-bottom:6px; border-bottom:none; }
  .terms dd{ padding-top:0; }

  .footer-grid{ grid-template-columns: 1fr 1fr; }
}

@media (max-width: 600px){
  /* Tighten Problem/Solution × bullets on small screens */
  .ps-list li{ font-size: 16px; gap: 14px; padding: 18px 0; }
  .ps-x{ width: 36px; height: 36px; font-size: 20px; }
  /* Donut: keep readable at narrow widths */
  .donut .d-center-num{ font-size: 30px; }
  .donut .d-center-lbl{ font-size: 8px; }
  /* Marquee: ensure no horizontal scroll bleed */
  .marquee, .press-marquee, .pm-track, .marquee-track{ max-width: 100vw; }
  /* Hero video aspect handling */
  .video-card{ aspect-ratio: 16 / 11; }

  .hero{ min-height: 92vh; padding-top: 160px; }
  .hero-meta{ gap:20px; font-size:10px; flex-direction:column; align-items:flex-start; }
  .scroll-cue{ display:none; }
  .reasons-grid, .road-track, .mat-grid, .updates-grid, .backed-grid, .region-grid, .chart-stats{ grid-template-columns: 1fr; }
  .opp-collage{ height: 360px; }
  .econ-divider{ display: none; }
  .econ-tile{ flex: 1 1 100%; }
  .chart-stats > div{ border-right: none; border-bottom: 1px solid var(--line); }
  .updates-grid .up-card:last-child{ grid-column: span 1; }
  .reason, .backer{ border-right:none !important; }
  .sf-row{ grid-template-columns: 1fr; }
  .updates-head{ flex-direction:column; align-items:flex-start; gap:24px; }
  .stat-row, .tailwinds, .moat, .traction-grid, .team-grid, .footer-grid{ grid-template-columns: 1fr; }
  .moat-item:nth-child(odd), .stat:nth-child(odd), .tw:nth-child(odd), .t-stat:nth-child(odd){ border-right:none; }
  .kingdoms-grid{ grid-template-columns:1fr; }
  .k-card, .k-card.large{ grid-column: span 1; grid-row: span 1; height:280px; }
  .cta-pill{ padding:10px 16px; font-size:11px; }
  .board-list{ gap:20px; font-size:18px; }
}

/* ============================================================
   Auth (login / create account) — split layout
============================================================ */
.auth-body{ background: var(--ink, #0b0b0b); }
.utility-bar--auth{ background: rgba(8,8,8,.78); backdrop-filter: blur(10px); }

.auth{
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  min-height: 100vh;
  background: var(--ink, #0b0b0b);
  color: #fff;
}
.auth-aside{ position: relative; overflow: hidden; }
.auth-aside-bg{ position:absolute; inset:0; z-index:0; }
.auth-aside-bg img{ width:100%; height:100%; object-fit:cover; transform:scale(1.04); }
.auth-aside-scrim{
  position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(8,8,8,.78) 0%, rgba(8,8,8,.55) 40%, rgba(8,8,8,.92) 100%);
}
.auth-aside-inner{
  position: relative; z-index:1;
  height: 100%;
  display: flex; flex-direction: column; justify-content: center;
  padding: 140px 80px 80px;
  max-width: 640px;
}
.auth-aside-inner .hero-meta-top{
  display:flex; align-items:center; gap: 14px;
  font-size: 11px; letter-spacing: .28em; text-transform: uppercase;
  color: rgba(255,255,255,.6);
  margin-bottom: 32px;
}
.auth-aside-inner .hero-meta-top .hl{ color: var(--gold-soft); }
.auth-aside-inner .display{
  color: #fff;
  font-size: clamp(38px, 4.4vw, 60px);
  line-height: 1.05;
  letter-spacing: -0.025em;
  font-weight: 800;
  margin: 0 0 28px;
}
.auth-aside-inner .hd-italic{ font-style: italic; font-weight: 300; color: var(--gold-soft); }
.auth-aside-lede{
  font-size: 17px; line-height: 1.55;
  color: rgba(255,255,255,.85);
  max-width: 480px;
  margin: 0 0 48px;
  font-weight: 300;
}
.auth-aside-foot{
  margin-top: auto;
  font-size: 11px; letter-spacing: .28em; text-transform: uppercase;
  color: rgba(255,255,255,.45);
}

.auth-panel{
  display: flex; align-items: center; justify-content: center;
  background: var(--ivory, #f6f2ea);
  color: #1a1a1a;
  padding: 140px 56px 80px;
}
.auth-panel-inner{ width: 100%; max-width: 460px; }
.auth-panel-inner .eyebrow{
  font-size: 11px; letter-spacing: .26em; text-transform: uppercase;
  font-weight: 600; color: var(--gold, #c2a368);
  margin-bottom: 16px;
}
.auth-title{
  font-family: var(--serif, 'Open Sans', serif);
  font-size: clamp(30px, 3vw, 40px);
  letter-spacing: -0.02em;
  line-height: 1.1;
  margin: 0 0 8px;
  font-weight: 700;
}
.auth-sub{ color: rgba(0,0,0,.65); margin: 0 0 28px; font-size: 15px; }

.auth-tabs{
  display: grid; grid-template-columns: 1fr 1fr;
  border: 1px solid rgba(0,0,0,.12);
  border-radius: 999px;
  padding: 4px;
  margin-bottom: 28px;
  background: #fff;
}
.auth-tab{
  border: none; background: transparent;
  font-family: var(--sans);
  font-size: 13px; font-weight: 600;
  letter-spacing: .12em; text-transform: uppercase;
  color: rgba(0,0,0,.55);
  padding: 12px 0;
  border-radius: 999px;
  cursor: pointer;
  transition: background .2s ease, color .2s ease;
}
.auth-tab.is-active{ background: var(--ink, #0b0b0b); color: #fff; }

.auth-form{ display: none; }
.auth-form.is-active{ display: block; }

.auth-field{ display: block; margin-bottom: 16px; }
.auth-field > span{
  display: block;
  font-size: 11px; letter-spacing: .18em; text-transform: uppercase;
  font-weight: 600; color: rgba(0,0,0,.7);
  margin-bottom: 8px;
}
.auth-field .auth-optional{
  font-style: normal; letter-spacing: .04em; text-transform: none;
  font-weight: 400; color: rgba(0,0,0,.45);
}
.auth-field input{
  width: 100%;
  background: #fff;
  border: 1px solid rgba(0,0,0,.14);
  border-radius: 10px;
  padding: 14px 16px;
  font-family: var(--sans);
  font-size: 15px;
  color: #1a1a1a;
  outline: none;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.auth-field input:focus{
  border-color: var(--gold, #c2a368);
  box-shadow: 0 0 0 3px rgba(194,163,104,.18);
}

.auth-grid-2{ display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }

.auth-row{
  display: flex; align-items: center; justify-content: space-between;
  margin: 4px 0 20px;
  font-size: 13px;
}
.auth-check{ display: inline-flex; align-items: center; gap: 8px; color: rgba(0,0,0,.7); }
.auth-check input{ accent-color: var(--gold, #c2a368); }
.auth-link{ color: var(--gold, #c2a368); text-decoration: none; font-weight: 600; }
.auth-link:hover{ text-decoration: underline; }

.auth-submit{ width: 100%; justify-content: center; display: inline-flex; }

.auth-aux{
  text-align: center; margin: 18px 0 0;
  font-size: 14px; color: rgba(0,0,0,.65);
}
.auth-aux a{ color: var(--gold, #c2a368); font-weight: 600; text-decoration: none; }
.auth-aux a:hover{ text-decoration: underline; }

.auth-fineprint{
  margin-top: 28px;
  font-size: 12px; line-height: 1.5;
  color: rgba(0,0,0,.5);
  text-align: center;
}

@media (max-width: 960px){
  .auth{ grid-template-columns: 1fr; }
  .auth-aside{ min-height: 380px; }
  .auth-aside-inner{ padding: 120px 32px 48px; }
  .auth-panel{ padding: 56px 24px 80px; }
  .auth-grid-2{ grid-template-columns: 1fr; }
}

/* ============================================================
   Site password gate
============================================================ */
html.tsk-locked body{ overflow: hidden; }
html.tsk-locked body > *:not(.tsk-gate){ visibility: hidden; }
.tsk-gate{
  position: fixed; inset: 0; z-index: 99999;
  background:
    radial-gradient(120% 90% at 50% 50%, #141414 0%, #050505 100%);
  display: flex; align-items: center; justify-content: center;
  padding: 24px;
  font-family: var(--sans, 'Open Sans', sans-serif);
}
.tsk-gate-card{ width: 100%; max-width: 360px; text-align: center; color: #fff; }
.tsk-gate-logo{
  display: block;
  width: 72px; height: auto;
  margin: 0 auto 40px;
  opacity: 0.95;
}
.tsk-gate form{ display: flex; flex-direction: column; gap: 14px; }
.tsk-gate input{
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,.18);
  padding: 16px 20px;
  border-radius: 999px;
  color: #fff;
  text-align: center;
  font-size: 15px;
  letter-spacing: 0.05em;
  outline: none;
  font-family: var(--sans, 'Open Sans', sans-serif);
  transition: border-color .2s ease, box-shadow .2s ease;
}
.tsk-gate input::placeholder{ color: rgba(255,255,255,.4); letter-spacing: .14em; text-transform: uppercase; font-size: 12px; }
.tsk-gate input:focus{
  border-color: var(--gold-soft, #d4b87a);
  box-shadow: 0 0 0 3px rgba(212,184,122,.18);
}
.tsk-gate button{
  background: var(--gold, #c2a368);
  color: #fff;
  border: none;
  padding: 15px;
  border-radius: 999px;
  font-weight: 600;
  letter-spacing: .18em;
  text-transform: uppercase;
  font-size: 12px;
  cursor: pointer;
  font-family: var(--sans, 'Open Sans', sans-serif);
  transition: background .2s ease;
}
.tsk-gate button:hover{ background: #a98b54; }
.tsk-gate-err{
  color: #e57373;
  font-size: 13px;
  margin: 14px 0 0;
  letter-spacing: 0.01em;
}

/* ============================================================
   DARK SOVEREIGN THEME — Global override (v2)
   Deep navy + gold + thin white frames, ultra-luxury direction.
   Appended last to override editorial light theme above.
============================================================ */
:root{
  --navy:        #17243b;
  --navy-deep:   #131d2d;
  --navy-soft:   #1e2d4b;
  --frame:       rgba(255,255,255,.18);
  --frame-soft:  rgba(255,255,255,.10);
  --text:        #f1eee6;
  --text-soft:   rgba(241,238,230,.72);
  --gold-bright: #d4b755;
}

body{
  background: var(--navy-deep);
  color: var(--text);
}

/* Section backgrounds → unified deep navy */
.section,
.opportunity,
.experience,
.market,
.partners-section,
.team-section,
.news-section,
.contact-section,
.who-we-serve-section,
.about-section,
.invest-section,
.cta-section,
.k-cards,
.kingdoms,
.materials,
.pillars,
.proof,
.video-section,
.founder,
.timeline,
.editorial,
.final-cta,
section{
  background: var(--navy-deep);
  color: var(--text);
}
.market, .ivory, .bg-ivory, .bg-bone, .bg-paper{ background: var(--navy) !important; }

/* Typography on dark */
h1, h2, h3, h4, h5,
.display, .display-2, .display-3{
  color: var(--text);
}
p{ color: var(--text-soft); }
strong{ color: var(--text); }
.body-lg{ color: var(--text-soft); }
.body-lg.accent{ color: var(--text); }

/* Wider-tracked, lighter display feel */
.display, .display-2{
  font-weight: 300;
  letter-spacing: .02em;
}
.display em, .display-2 em, .hd-italic{
  color: var(--gold-bright);
  font-weight: 300;
}

/* Eyebrows + small caps shift */
.eyebrow{
  color: rgba(241,238,230,.55);
  letter-spacing: .32em;
}
.eyebrow.gold,
.cap-eyebrow,
.region-count{ color: var(--gold-bright); }

/* Lines, dividers, scrolled bar */
hr, .pull, .stat-row, .stat,
.hero-meta, .hero-foot{
  border-color: var(--frame) !important;
}
.utility-bar{ color: #fff; }
.utility-bar.scrolled{
  background: rgba(10,17,38,.92);
  border-bottom-color: var(--frame);
  color: var(--text);
}
.utility-bar.scrolled .util-nav a{ color: var(--text); }
/* Always show white logo on dark bar */
.utility-bar .brand-mark-gold{ display:none !important; }
.utility-bar .brand-mark-white{ display:block !important; }
.utility-bar.scrolled .brand-mark-white{ display:block !important; }
.utility-bar.scrolled .brand-mark-gold{ display:none !important; }

/* Buttons — ghost on dark */
.btn-ghost,
.section .btn-ghost{
  color: var(--text) !important;
  border-color: var(--frame) !important;
  background: transparent;
}
.btn-ghost:hover,
.section .btn-ghost:hover{
  background: rgba(255,255,255,.06);
  border-color: #fff !important;
  color: #fff !important;
}
.btn-primary{
  background: var(--gold-bright);
  border-color: var(--gold-bright);
  color: var(--navy-deep) !important;
}
.btn-primary:hover{
  background: #b89a3f;
  border-color: #b89a3f;
  color: var(--navy-deep) !important;
}

/* Stat row on dark */
.stat-num{ color: var(--text); }
.stat-num span{ color: var(--gold-bright); }
.stat-label, .sources{ color: var(--text-soft); }

/* Cards / tiles — thin framed box treatment */
.k-card, .tw, .reason, .proof-card, .mat-card, .up-card,
.t-card, .pillar, .rd, .video-card, .region, .stage{
  background: var(--navy);
  border: 1px solid var(--frame-soft);
  color: var(--text);
}
.k-card *, .tw *, .reason *, .proof-card *, .mat-card *, .up-card *,
.t-card *, .pillar *, .rd *{
  color: inherit;
}

/* Pull quotes / testimonials */
.pull p, .tb-quote, .big-quote{ color: var(--text); }
.tb-cite, .pull cite{ color: var(--gold-bright); }

/* Footer */
footer, .site-footer{
  background: var(--navy-deep);
  color: var(--text-soft);
  border-top: 1px solid var(--frame);
}
footer a{ color: var(--text); }
footer a:hover{ color: var(--gold-bright); }

/* Marquee already dark — just refine hue */
.marquee{
  background: var(--navy-deep);
  border-color: var(--frame-soft);
}

/* Italic/em accent */
em, i{ color: var(--gold-bright); }

/* ---------- Framed box primitive (used for webinar / login style) ---------- */
.frame{
  border: 1px solid var(--frame);
  padding: clamp(28px, 4vw, 56px);
  background: rgba(255,255,255,.035);
  position: relative;
}
.frame::before,
.frame::after{
  content: "";
  position: absolute;
  width: 18px;
  height: 18px;
  border-color: var(--gold-bright);
  border-style: solid;
  border-width: 0;
  pointer-events: none;
}
.frame::before{
  top: -1px; left: -1px;
  border-top-width: 1px;
  border-left-width: 1px;
}
.frame::after{
  bottom: -1px; right: -1px;
  border-bottom-width: 1px;
  border-right-width: 1px;
}
.frame.center{ text-align: center; }
.frame-title{
  font-size: clamp(20px, 2.4vw, 30px);
  font-weight: 300;
  letter-spacing: .26em;
  text-transform: uppercase;
  color: var(--text);
  margin: 0 0 28px;
}
.frame-eyebrow{
  font-size: 10px;
  letter-spacing: .36em;
  text-transform: uppercase;
  color: var(--gold-bright);
  margin: 0 0 18px;
}
.frame-title-sm{
  font-size: 22px;
  letter-spacing: .18em;
  margin: 0 0 28px;
}

/* ============================================================
   WEBINAR — Registration / Confirmation / Replay
============================================================ */
.webinar{
  min-height: 100vh;
  background:
    linear-gradient(180deg, rgba(6,10,24,.55), rgba(6,10,24,.92)),
    radial-gradient(120% 80% at 50% 0%, rgba(212,183,85,.08), transparent 60%),
    var(--navy-deep);
  color: var(--text);
  padding: 120px var(--pad-x) 96px;
  display: flex; flex-direction: column; align-items: center;
  position: relative;
  overflow: hidden;
}
.webinar-mark{
  display: block;
  width: 88px;
  margin: 0 auto 32px;
  opacity: .92;
}
.webinar-inner{
  position: relative;
  width: 100%;
  max-width: 1080px;
  margin: 0 auto;
}
.webinar-eyebrow{
  text-align: center;
  font-size: 11px;
  letter-spacing: .42em;
  text-transform: uppercase;
  color: var(--gold-bright);
  margin: 0 0 18px;
}
.webinar-title{
  text-align: center;
  font-size: clamp(28px, 4vw, 52px);
  font-weight: 300;
  letter-spacing: .14em;
  text-transform: uppercase;
  margin: 0 0 22px;
  color: var(--text);
}
.webinar-title em{ font-style: italic; color: var(--gold-bright); }
.webinar-sub{
  text-align: center;
  max-width: 620px;
  margin: 0 auto 40px;
  color: var(--text-soft);
  font-size: 15px;
  line-height: 1.7;
}

/* Date line — explicit human-readable briefing time */
.webinar-date{
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  margin: 0 auto 28px;
  max-width: 720px;
}
.webinar-date .wd-rule{
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--frame) 50%, transparent);
  max-width: 120px;
}
.webinar-date .wd-line{
  font-size: 12px;
  letter-spacing: .32em;
  text-transform: uppercase;
  color: var(--text);
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  gap: 12px;
}
.webinar-date .wd-day{ color: var(--text); }
.webinar-date .wd-time{ color: var(--gold-bright); }
.webinar-date .wd-sep{ color: var(--frame); }
@media (max-width: 540px){
  .webinar-date .wd-rule{ display: none; }
  .webinar-date .wd-line{
    flex-direction: column;
    gap: 4px;
    white-space: normal;
    font-size: 11px;
    text-align: center;
  }
  .webinar-date .wd-sep{ display: none; }
}

/* Countdown */
.webinar-countdown{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
  max-width: 540px;
  margin: 0 auto 56px;
}
.cd-cell{
  border: 1px solid var(--frame);
  padding: 18px 8px;
  text-align: center;
  background: rgba(255,255,255,.03);
  position: relative;
}
.cd-cell::before{
  content: "";
  position: absolute;
  top: 0; left: 0;
  width: 14px; height: 1px;
  background: var(--gold-bright);
}
.cd-num{
  font-size: clamp(26px, 3.4vw, 40px);
  font-weight: 300;
  letter-spacing: .04em;
  color: var(--text);
  display: block;
}
.cd-lbl{
  display: block;
  margin-top: 6px;
  font-size: 9px;
  letter-spacing: .32em;
  text-transform: uppercase;
  color: var(--gold-bright);
}

/* Two-column layout: form + agenda */
.webinar-grid{
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  gap: 40px;
  align-items: start;
}
@media (max-width: 860px){
  .webinar-grid{ grid-template-columns: 1fr; gap: 28px; }
  .webinar-countdown{ grid-template-columns: repeat(4, 1fr); gap: 8px; }
}

/* Form box */
.webinar-form{
  display: flex; flex-direction: column; gap: 16px;
}
.webinar-form label{
  font-size: 10px;
  letter-spacing: .32em;
  text-transform: uppercase;
  color: var(--text-soft);
  margin-bottom: 6px;
  display: block;
}
.webinar-form input,
.webinar-form select{
  width: 100%;
  background: rgba(255,255,255,.04);
  border: 1px solid var(--frame);
  color: var(--text);
  padding: 16px 20px;
  font-size: 14px;
  letter-spacing: .04em;
  font-family: var(--sans);
  outline: none;
  transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.webinar-form input::placeholder{
  color: rgba(241,238,230,.4);
  letter-spacing: .14em;
  text-transform: uppercase;
  font-size: 12px;
}
.webinar-form input:focus,
.webinar-form select:focus{
  border-color: var(--gold-bright);
  background: rgba(255,255,255,.06);
  box-shadow: 0 0 0 3px rgba(212,183,85,.16);
}
.webinar-form .field{ margin: 0; }
.webinar-form .row-2{
  display: grid; grid-template-columns: 1fr 1fr; gap: 14px;
}
@media (max-width: 540px){
  .webinar-form .row-2{ grid-template-columns: 1fr; }
}
.webinar-form button{
  margin-top: 12px;
  background: var(--gold-bright);
  color: var(--navy-deep);
  border: none;
  padding: 17px 24px;
  font-weight: 600;
  letter-spacing: .26em;
  text-transform: uppercase;
  font-size: 12px;
  cursor: pointer;
  font-family: var(--sans);
  transition: background .25s ease, transform .25s ease;
}
.webinar-form button:hover{ background: #b89a3f; transform: translateY(-1px); }
.webinar-consent{
  font-size: 11px;
  color: var(--text-soft);
  letter-spacing: .04em;
  margin: 6px 0 0;
}
.webinar-consent a{ color: var(--gold-bright); border-bottom: 1px solid var(--frame); }

/* Agenda */
.webinar-agenda h3{
  font-size: 11px;
  letter-spacing: .36em;
  text-transform: uppercase;
  color: var(--gold-bright);
  margin: 0 0 22px;
  font-weight: 500;
}
.agenda-list{ list-style: none; padding: 0; margin: 0 0 8px; }
.agenda-list li{
  padding: 18px 0;
  border-top: 1px solid var(--frame-soft);
  display: grid;
  grid-template-columns: 64px 1fr;
  gap: 18px;
  align-items: baseline;
}
.agenda-list li:last-child{ border-bottom: 1px solid var(--frame-soft); }
.agenda-list .num{
  font-size: 11px;
  letter-spacing: .28em;
  color: var(--gold-bright);
}
.agenda-list .body{ color: var(--text); font-size: 15px; line-height: 1.55; letter-spacing: .02em; }
.agenda-list .body small{
  display: block; margin-top: 4px;
  color: var(--text-soft); font-size: 12px; letter-spacing: .04em;
}

.webinar-host{
  margin-top: 32px;
  padding-top: 26px;
  border-top: 1px solid var(--frame-soft);
  display: flex; align-items: center; gap: 18px;
}
.webinar-host-monogram{
  flex-shrink: 0;
  width: 56px; height: 56px;
  border-radius: 50%;
  border: 1px solid var(--gold-bright);
  background: rgba(212,183,85,.08);
  color: var(--gold-bright);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--sans);
  font-size: 11px;
  letter-spacing: .18em;
  font-weight: 500;
}
.webinar-host .role{
  font-size: 10px; letter-spacing: .3em; text-transform: uppercase;
  color: var(--gold-bright);
}
.webinar-host .name{
  font-size: 14px; letter-spacing: .12em; text-transform: uppercase;
  color: var(--text); margin-top: 4px;
}
.webinar-host .host-note{
  font-size: 12px;
  letter-spacing: .04em;
  color: var(--text-soft);
  margin-top: 4px;
  font-style: italic;
}

/* Confirmation page */
.confirm-icon{
  width: 64px; height: 64px;
  margin: 0 auto 28px;
  border: 1px solid var(--gold-bright);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  color: var(--gold-bright);
  font-size: 22px;
  position: relative; z-index: 2;
}
.confirm-details{
  max-width: 580px; margin: 36px auto 0;
  border: 1px solid var(--frame);
  padding: 36px;
}
.confirm-details dl{ margin: 0; display: grid; grid-template-columns: 130px 1fr; row-gap: 16px; }
.confirm-details dt{
  font-size: 10px; letter-spacing: .32em; text-transform: uppercase;
  color: var(--gold-bright);
}
.confirm-details dd{ margin: 0; color: var(--text); font-size: 14px; letter-spacing: .04em; }
.confirm-actions{
  display: flex; gap: 14px; justify-content: center; flex-wrap: wrap;
  margin-top: 36px;
}

/* Replay page */
.replay-stage{
  max-width: 1100px; margin: 0 auto;
  border: 1px solid var(--frame);
  background: #000;
  aspect-ratio: 16 / 9;
  position: relative; overflow: hidden;
}
.replay-stage iframe,
.replay-stage video{
  width: 100%; height: 100%; border: 0; display: block;
}
.replay-meta{
  max-width: 1100px; margin: 28px auto 0;
  display: flex; justify-content: space-between; align-items: center;
  flex-wrap: wrap; gap: 16px;
  padding: 22px 0;
  border-top: 1px solid var(--frame-soft);
  border-bottom: 1px solid var(--frame-soft);
}
.replay-meta .lbl{
  font-size: 10px; letter-spacing: .32em; text-transform: uppercase;
  color: var(--gold-bright); margin-right: 10px;
}
.replay-meta .val{ color: var(--text); font-size: 13px; letter-spacing: .08em; }
.replay-resources{
  max-width: 1100px; margin: 56px auto 0;
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px;
}
@media (max-width: 760px){
  .replay-resources{ grid-template-columns: 1fr; }
}
.replay-card{
  border: 1px solid var(--frame);
  padding: 32px 28px;
  background: rgba(255,255,255,.02);
  transition: border-color .3s ease, transform .3s ease, background .3s ease;
}
.replay-card:hover{
  border-color: var(--gold-bright);
  transform: translateY(-2px);
  background: rgba(212,183,85,.04);
}
.replay-card .lbl{
  font-size: 10px; letter-spacing: .32em; text-transform: uppercase;
  color: var(--gold-bright); margin: 0 0 10px;
}
.replay-card h4{
  font-size: 15px; letter-spacing: .12em; text-transform: uppercase;
  color: var(--text); margin: 0 0 10px; font-weight: 400;
}
.replay-card p{ font-size: 13px; color: var(--text-soft); margin: 0 0 18px; }
.replay-card a{
  font-size: 11px; letter-spacing: .26em; text-transform: uppercase;
  color: var(--gold-bright);
  border-bottom: 1px solid var(--frame);
  padding-bottom: 4px;
}

/* ============================================================
   Image bottom-fade — blend cards into the navy field
============================================================ */
.k-card, .tw, .reason, .proof-card, .mat-card, .up-card,
.t-card, .pillar, .rd, .video-card, .region, .stage,
.exp-img, .replay-card, .split-image{
  position: relative;
}
.k-card::after, .tw::after, .reason::after, .proof-card::after,
.mat-card::after, .up-card::after, .t-card::after, .pillar::after,
.rd::after, .video-card::after, .region::after, .stage::after,
.exp-img::after, .split-image::after{
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 60%;
  background: linear-gradient(180deg,
    rgba(6,10,24,0) 0%,
    rgba(6,10,24,.55) 55%,
    rgba(6,10,24,.95) 100%);
  pointer-events: none;
  z-index: 1;
}
.k-card > *, .tw > *, .reason > *, .proof-card > *, .mat-card > *,
.up-card > *, .t-card > *, .pillar > *, .rd > *, .video-card > *,
.region > *, .stage > *{
  position: relative;
  z-index: 2;
}
.image-break::after,
.testimonial-break::after{
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(180deg,
    rgba(6,10,24,.15) 0%,
    rgba(6,10,24,.55) 60%,
    rgba(6,10,24,.92) 100%);
  pointer-events: none;
  z-index: 1;
}
.image-break > *,
.testimonial-break > *{ position: relative; z-index: 2; }

/* Thin vertical hairline beneath card titles (EXECUTIVE / PREMIUM look) */
.k-card h3, .reason h3, .mat-card h3, .up-card h3, .t-card h3,
.pillar h3, .rd h3, .proof-card h3, .replay-card h4{
  position: relative;
  padding-left: 18px;
  letter-spacing: .22em;
  text-transform: uppercase;
  font-weight: 400;
}
.k-card h3::before, .reason h3::before, .mat-card h3::before,
.up-card h3::before, .t-card h3::before, .pillar h3::before,
.rd h3::before, .proof-card h3::before, .replay-card h4::before{
  content: "";
  position: absolute;
  left: 0; top: -6px;
  width: 1px;
  height: calc(100% + 90px);
  background: rgba(255,255,255,.35);
}

/* ============================================================
   DARK THEME — Token flip + dark-on-dark fixes
   Redefines ink/paper tokens so existing color:var(--ink) rules
   become light text on navy. Pins remaining background:var(--ink)
   uses back to deep navy so they don't turn light.
============================================================ */
:root{
  --ink:        #f1eee6;          /* was dark — now off-white text */
  --ink-soft:   rgba(241,238,230,.78);
  --muted:      rgba(241,238,230,.55);
  --paper:      #131d2d;          /* was white — now base navy */
  --bone:       #17243b;
  --ivory:      #17243b;
  --line:       rgba(255,255,255,.14);
}

/* Anywhere that intentionally used --ink as a *dark* background
   needs to stay dark — pin to navy. */
.marquee,
.partner-cell:hover,
.up-arrow:hover,
.section .btn-ghost:hover{
  background: var(--navy-deep) !important;
  color: var(--ink) !important;
}
.up-arrow:hover{ border-color: var(--frame) !important; }

/* Hard-coded white/near-white backgrounds → navy */
[style*="background:#fff"],
[style*="background: #fff"]{ background: var(--navy) !important; }

/* Generic safety net: anything that was using paper as bg keeps reading
   from token (already flipped above). Plus form controls. */
input, select, textarea{
  background: rgba(255,255,255,.04);
  color: var(--ink);
  border-color: var(--frame);
}
input::placeholder, textarea::placeholder{ color: rgba(241,238,230,.4); }

/* Status pill colors that were tuned for white bg */
.m-status{ color: #6fdca0 !important; }

/* Hard-coded near-black text (#1a1a1a) → light */
[style*="color:#1a1a1a"],
[style*="color: #1a1a1a"]{ color: var(--ink) !important; }

/* Hero search component (was white pill on dark) — keep dark ink-on-pearl for legibility,
   but soften background to a subtle frosted panel so it sits on navy. */
.hero-search,
.hs-dropdown,
.auth-tabs,
.auth-field input,
.auth-form input,
.auth-form select,
.auth-form textarea{
  background: rgba(255,255,255,.06) !important;
  color: var(--ink) !important;
  border-color: var(--frame) !important;
}
.hero-search input,
.hs-dropdown button,
.hero-search .hs-label{
  color: var(--ink) !important;
  background: transparent !important;
}
.hero-search input::placeholder{ color: rgba(241,238,230,.4) !important; }
.hs-dropdown button:hover,
.hs-dropdown button:focus{ background: rgba(212,183,85,.12) !important; }
.auth-tab{ color: rgba(241,238,230,.55) !important; }
.auth-tab.is-active{ background: var(--gold-bright) !important; color: var(--navy-deep) !important; }
.auth-field > span,
.auth-field .auth-optional{ color: rgba(241,238,230,.7) !important; }

/* Catch-all: any element whose CSS sets color:#1a1a1a / #181A1D / #0b0b0b becomes light */
.contact-info p,
.contact-info p a,
.partner-cell,
.t-card p,
.serve-card p,
.up-card p,
.faq dt,
.faq dd{
  color: var(--ink) !important;
}

/* ============================================================
   Final pins — components that used --ink as background
   need to stay navy-deep, not flip to the new light --ink.
   Also retints hero/section scrims from pure black → navy.
============================================================ */
.press-marquee,
.cta-band,
.cta-section,
.testimonial-break,
.image-break,
.brand-section.dark,
.dark-band{
  background: var(--navy-deep) !important;
  color: var(--ink) !important;
}
.press-marquee .pm-track,
.press-marquee .pm-track .logo,
.press-marquee .pm-track span{
  color: rgba(241,238,230,.85) !important;
}
.press-marquee .pm-track .sep{ color: var(--gold-bright) !important; }
.cta-band .display-2,
.cta-band p,
.testimonial-break .tb-quote,
.image-break .big-quote{
  color: var(--ink) !important;
}
.cta-band p{ color: rgba(241,238,230,.78) !important; }

/* Hero scrims: replace near-black overlays with navy tint
   so the hero feels navy-toned (not pure black). */
.hero-scrim{
  background:
    linear-gradient(180deg,
      rgba(10,17,38,.78) 0%,
      rgba(10,17,38,.55) 32%,
      rgba(6,10,24,.88) 75%,
      rgba(6,10,24,1) 100%),
    radial-gradient(85% 70% at 28% 45%, rgba(10,17,38,.55) 0%, rgba(10,17,38,0) 70%) !important;
}
.hero-scrim-strong{
  background:
    linear-gradient(180deg,
      rgba(10,17,38,.6) 0%,
      rgba(10,17,38,.45) 45%,
      rgba(6,10,24,.78) 80%,
      rgba(6,10,24,.96) 100%),
    radial-gradient(120% 90% at 50% 50%, rgba(10,17,38,0) 35%, rgba(10,17,38,.45) 100%) !important;
}
.hero-vignette{
  background: radial-gradient(120% 80% at 50% 50%, transparent 50%, rgba(10,17,38,.55) 100%) !important;
}
.image-break-scrim,
.tb-scrim{
  background: linear-gradient(180deg, rgba(10,17,38,.55) 0%, rgba(6,10,24,.85) 100%) !important;
}

/* Region card scrims — keep them readable but navy-tinted */
.region::before{
  background: linear-gradient(180deg, rgba(10,17,38,.05) 30%, rgba(6,10,24,.78) 100%) !important;
}
.region:hover::before{
  background: linear-gradient(180deg, rgba(10,17,38,.2) 0%, rgba(6,10,24,.9) 100%) !important;
}

/* The vertical hairline added earlier extended past the title and
   bled into body copy — contain it to the title height only. */
.k-card h3::before, .reason h3::before, .mat-card h3::before,
.up-card h3::before, .t-card h3::before, .pillar h3::before,
.rd h3::before, .proof-card h3::before, .replay-card h4::before{
  height: 1em !important;
  top: 0.1em !important;
}

/* Cards with background-images already have their own scrim — remove the
   extra bottom-fade ::after I added (was double-layering on .tw / .region /
   .video-card / .exp-img / .split-image) and drop the white outline that
   crept onto image-only tiles. */
.tw::after,
.region::after,
.video-card::after,
.exp-img::after,
.split-image::after,
.t-card::after{
  content: none !important;
  display: none !important;
}
.tw, .region, .video-card, .exp-img, .split-image, .t-card{
  border: none !important;
}

/* Experience-designers collage was getting an extra absolute-positioned
   ::after that stacked over the layered photos. Force the photos back
   to their intended placement and let the original scrim do its job. */
.exp-images{ position: relative; }
.exp-img{ overflow: hidden; }
.exp-img > img{ position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }

/* The dark-theme card rule used shorthand `background:` which wiped out
   the inline background-image on regions / image-tiled cards. Restore
   image visibility by only setting background-color where appropriate. */
.region,
.tw,
.video-card{
  background-color: transparent !important;
  background-image: var(--bg, none);
  background-size: cover;
  background-position: center;
}

/* --ivory was originally an off-white; after the token flip it is now navy.
   Anywhere it was used as a *foreground* color the text becomes invisible.
   Force those to light. */
.wedge,
.wedge .display-2,
.wedge .display-3,
.wedge h1, .wedge h2, .wedge h3,
.wedge p,
.press-marquee,
.cta-band,
.dark-band{
  color: var(--ink) !important;
}
.wedge .display-2 em,
.cta-band .display-2 em{ color: var(--gold-bright) !important; }

/* ============================================================
   COMPREHENSIVE PASS — final dark-theme reconciliation.
   Catches all hard-coded light backgrounds, rgba(0,0,0) text,
   and section-specific quirks that the token flip didn't reach.
============================================================ */

/* 1) Every component that hard-coded color:#1a1a1a / dark hex — now light */
.hero-search,
.hero-search input,
.hero-search .hs-label,
.hs-dropdown,
.hs-dropdown button,
.auth-tabs,
.auth-tab,
.auth-field input,
.auth-field > span,
.auth-field .auth-optional,
.auth-sub,
.auth-check,
.auth-form,
.auth-form input,
.auth-form select,
.auth-form textarea,
.auth-form label{
  color: var(--ink) !important;
}

/* 2) Every white-pill / white-card background → navy frosted */
.hero-search,
.hs-dropdown,
.auth-tabs,
.auth-field input,
.auth-form input,
.auth-form select,
.auth-form textarea{
  background: rgba(255,255,255,.06) !important;
  border-color: var(--frame) !important;
}
.hs-dropdown button{ background: transparent !important; }
.hs-dropdown button:hover,
.hs-dropdown button:focus{
  background: rgba(212,183,85,.14) !important;
  color: var(--ink) !important;
}

/* 3) Auth tab pill: gold-on-navy when active */
.auth-tab{ color: rgba(241,238,230,.55) !important; }
.auth-tab.is-active{
  background: var(--gold-bright) !important;
  color: var(--navy-deep) !important;
}

/* 4) Form labels / hints / placeholders — light secondary */
.auth-field > span,
.auth-field .auth-optional,
.auth-sub,
.auth-check{
  color: rgba(241,238,230,.7) !important;
}
input::placeholder, textarea::placeholder, select::placeholder{
  color: rgba(241,238,230,.4) !important;
}

/* 5) Team grid — grayscale-on-dark looks washed; brighten and add a soft frame */
.t-card .t-img{
  filter: grayscale(70%) brightness(.95) !important;
  border: 1px solid var(--frame-soft);
}
.t-card:hover .t-img{ filter: grayscale(0) brightness(1) !important; }
.t-card h3{ color: var(--ink) !important; }
.t-card .role{ color: var(--gold-bright) !important; }
.t-card p{ color: rgba(241,238,230,.72) !important; }

/* Board list (under team) */
.board{ border-top-color: var(--frame) !important; }
.board-list, .board-list li{ color: var(--ink) !important; }

/* 6) Round terms (Round section) */
.terms,
.terms dt,
.terms dd{ border-color: var(--frame) !important; }
.terms dt{ color: rgba(241,238,230,.6) !important; }
.terms dd{ color: var(--ink) !important; }

/* 7) FAQ details */
.faq-list details,
.faq-list details:last-child{ border-color: var(--frame) !important; }
.faq-list summary{ color: var(--ink) !important; }
.faq-list details p{ color: rgba(241,238,230,.78) !important; }

/* 8) Why-grid / risk / press-quote — readable on navy */
.why-grid h4{ color: var(--ink) !important; }
.why-grid p{ color: rgba(241,238,230,.72) !important; }
.risk .eyebrow{ color: var(--ink) !important; }
.risk-body p{ color: rgba(241,238,230,.72) !important; }
.press-quote p{ color: var(--ink) !important; }
.press-quote cite{ color: var(--gold-bright) !important; }
.press-logos span{ color: rgba(241,238,230,.65) !important; }

/* 9) Footnote / footnote-like */
.footnote, .closing, .chart-sub, .sources{
  color: rgba(241,238,230,.6) !important;
}

/* 10) Stat row borders (opportunity section) */
.stat-row, .stat{ border-color: var(--frame) !important; }
.stat-num{ color: var(--ink) !important; }
.stat-num span{ color: var(--gold-bright) !important; }
.stat-label{ color: rgba(241,238,230,.7) !important; }

/* 11) Pull / split typography */
.pull{ border-top-color: var(--frame) !important; }
.pull p{ color: var(--ink) !important; }
.pull cite{ color: var(--gold-bright) !important; }

/* 12) Up-card / arrow / m-status / round arrow */
.up-card{ background: rgba(255,255,255,.02) !important; }
.up-card h4{ color: var(--ink) !important; }
.up-card p{ color: rgba(241,238,230,.72) !important; }
.up-arrow{ color: var(--ink) !important; border-color: var(--frame) !important; }

/* 13) Reasons / Reason cards */
.reasons{ background: var(--navy-deep) !important; }
.reason{ background: rgba(255,255,255,.02) !important; }
.reason h3{ color: var(--ink) !important; }
.reason p{ color: rgba(241,238,230,.72) !important; }

/* 14) Backed / partners-strip */
.backed{ background: var(--navy) !important; }

/* 15) Roadmap / Updates */
.roadmap{ background: var(--navy-deep) !important; }
.updates{ background: var(--navy) !important; }
.up-card{ border: 1px solid var(--frame-soft) !important; }

/* 16) Problem / solution sections (invest) */
.problem{ background: var(--navy-deep) !important; }
.solution{ background: var(--navy) !important; }

/* 17) Brand / experience / market sections */
.brand-section{ background: var(--navy-deep) !important; }
.experience{ background: var(--navy-deep) !important; }
.market{ background: var(--navy) !important; }

/* 18) Page-section.alt swap */
.page-section.alt{ background: var(--navy) !important; }

/* 19) Modal / gallery overlays — keep dark navy frosted */
[class*="modal"][class*="bg"],
.gallery-modal,
.modal-bg,
.overlay-bg{
  background: rgba(6,10,24,.92) !important;
}

/* 20) Final shadow tone — replace dark drop-shadows with deeper navy */
.k-card, .reason, .proof-card, .mat-card, .up-card,
.t-card, .pillar, .rd, .video-card, .region, .stage,
.serve-card{
  box-shadow: 0 20px 50px rgba(0,0,0,.35) !important;
}

/* 21) Login-page splash bg should pull from gold */
.tsk-gate{
  background: linear-gradient(180deg, rgba(6,10,24,.6), rgba(6,10,24,.94)),
              radial-gradient(120% 80% at 50% 0%, rgba(212,183,85,.1), transparent 60%),
              var(--navy-deep) !important;
}

/* ============================================================
   OLD-WORLD TREATMENT
   Warm sepia tone on imagery + parchment-warmed scrims to lean
   into the "old world" aesthetic the client asked for.
============================================================ */
:root{
  --warm-deep:  #1c1610;          /* burnt umber, replaces hard black scrim */
  --warm-rich:  #2a1f15;          /* aged parchment shadow */
  --gold-warm:  #c2933b;          /* aged gold leaf */
}

/* Photographic treatment — slight warmth + lifted contrast */
.hero-media img,
.hero-media video,
.image-break img,
.tb-bg img,
.split-image img,
.split-page-img img,
.exp-img img,
.up-img,
.region,
.tw,
.video-card img,
.video-card video,
.k-card img,
.proof-card img,
.t-card .t-img,
.sh-bg img{
  filter: sepia(.18) saturate(.92) contrast(1.02) brightness(.98);
}
.t-card:hover .t-img{
  filter: sepia(.05) saturate(1) contrast(1.02) brightness(1) !important;
}

/* Re-tint the dark scrims toward warm umber instead of cool navy/black
   so the photography feels candle-lit rather than digital. */
.hero-scrim{
  background:
    linear-gradient(180deg,
      rgba(28,22,16,.72) 0%,
      rgba(28,22,16,.5) 32%,
      rgba(10,12,18,.85) 75%,
      rgba(6,10,24,1) 100%),
    radial-gradient(85% 70% at 28% 45%, rgba(28,22,16,.55) 0%, rgba(28,22,16,0) 70%) !important;
}
.hero-scrim-strong{
  background:
    linear-gradient(180deg,
      rgba(28,22,16,.55) 0%,
      rgba(28,22,16,.42) 45%,
      rgba(10,14,28,.78) 80%,
      rgba(6,10,24,.96) 100%),
    radial-gradient(120% 90% at 50% 50%, rgba(28,22,16,0) 35%, rgba(28,22,16,.45) 100%) !important;
}
.image-break-scrim,
.tb-scrim{
  background: linear-gradient(180deg, rgba(28,22,16,.55) 0%, rgba(6,10,24,.85) 100%) !important;
}
.tw::before{
  background:
    linear-gradient(180deg, rgba(28,22,16,.05) 0%, rgba(28,22,16,.55) 55%, rgba(6,10,24,.95) 100%) !important;
}
.tw:hover::before{
  background:
    linear-gradient(180deg, rgba(28,22,16,.45) 0%, rgba(6,10,24,.92) 100%) !important;
}
.region::before{
  background: linear-gradient(180deg, rgba(28,22,16,.05) 30%, rgba(6,10,24,.78) 100%) !important;
}
.region:hover::before{
  background: linear-gradient(180deg, rgba(28,22,16,.2) 0%, rgba(6,10,24,.9) 100%) !important;
}

/* Subtle film vignette on every full-bleed photo container */
.hero,
.image-break,
.testimonial-break,
.split-image,
.video-card{
  position: relative;
}
.hero::after,
.image-break::before,
.testimonial-break::before{
  content: "";
  position: absolute; inset: 0;
  pointer-events: none;
  background: radial-gradient(120% 90% at 50% 50%, transparent 55%, rgba(28,22,16,.45) 100%);
  z-index: 1;
  mix-blend-mode: multiply;
}
.hero > .hero-grid,
.hero > .scroll-cue-wrap{ position: relative; z-index: 2; }
.hero > .hero-media{ position: absolute !important; inset: 0 !important; z-index: 0 !important; }

/* Warm gold accent — shift slightly toward aged-leaf for typography
   that previously used the cleaner gold-bright. */
.eyebrow.gold,
.cap-eyebrow,
.region-count,
.tb-cite,
.pull cite,
.t-card .role,
.frame-eyebrow,
.webinar-eyebrow,
.cd-lbl{
  color: var(--gold-warm) !important;
}

/* ============================================================
   Team grid (invest page + team page) — text-only cards.
   The hairline + uppercase treatment we added for image cards
   makes the bare-text team blocks look messy. Reset it and give
   each card a clean top rule + breathing room.
============================================================ */
.team-grid{
  gap: 0 !important;
  border-top: 1px solid var(--frame);
  margin-top: 56px;
}
.team-grid .t-card{
  padding: 36px 32px 36px 0;
  border-right: 1px solid var(--frame-soft);
  border-bottom: 1px solid var(--frame-soft);
  background: transparent !important;
  box-shadow: none !important;
  position: relative;
}
.team-grid .t-card:nth-child(3n){ border-right: none; }
.team-grid .t-card.lead{ grid-row: span 1; padding-right: 40px; }
.team-grid .t-card h3{
  font-size: 22px !important;
  font-weight: 400 !important;
  letter-spacing: .02em !important;
  text-transform: none !important;
  padding-left: 0 !important;
  margin: 0 0 6px !important;
  color: var(--ink) !important;
}
.team-grid .t-card h3::before{ display: none !important; }
.team-grid .t-card .role{
  font-size: 11px !important;
  letter-spacing: .24em;
  text-transform: uppercase;
  color: var(--gold-warm) !important;
  margin: 0 0 16px !important;
}
.team-grid .t-card p{
  font-size: 14px;
  line-height: 1.65;
  color: rgba(241,238,230,.72) !important;
  margin: 0;
}
@media (max-width: 760px){
  .team-grid{ grid-template-columns: 1fr !important; }
  .team-grid .t-card{ border-right: none !important; padding-right: 0; }
}

/* When a t-card has its own portrait (.t-img inside), restore image card layout */
.team-grid .t-card:has(.t-img){
  padding: 0;
  border: none !important;
}
.team-grid .t-card:has(.t-img) h3{ padding: 0 0 0 0 !important; }

/* ============================================================
   Experience-Designers collage — replace stacked-absolute layout
   with a clean three-image vertical strip beside the copy.
============================================================ */
.exp-grid{
  grid-template-columns: 1fr 1fr !important;
  gap: 64px !important;
  align-items: stretch !important;
}
.exp-images{
  position: relative !important;
  height: auto !important;
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  grid-template-rows: 280px 220px !important;
  gap: 12px !important;
}
.exp-img{
  position: relative !important;
  width: auto !important; height: auto !important;
  inset: auto !important;
  left: auto !important; top: auto !important;
  right: auto !important; bottom: auto !important;
  z-index: auto !important;
  border-radius: 2px !important;
  overflow: hidden !important;
  box-shadow: none !important;
}
.exp-img-1{ grid-column: 1 / span 2; grid-row: 1; }
.exp-img-2{ grid-column: 1; grid-row: 2; }
.exp-img-3{ grid-column: 2; grid-row: 2; }
.exp-img > img{
  position: relative !important;
  inset: auto !important;
  width: 100% !important; height: 100% !important;
  object-fit: cover !important;
  display: block;
}
@media (max-width: 760px){
  .exp-images{ grid-template-rows: 220px 160px !important; gap: 8px !important; }
}

/* ============================================================
   Mission pillars (Property / Service / Sovereignty)
   These are text-only columns. Strip the framed-box treatment
   and orphaned hairline tick — use a clean editorial layout
   with a long vertical line down the left of each pillar.
============================================================ */
.pillar{
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 8px 28px 8px 24px;
  border-left: 1px solid var(--frame);
  position: relative;
}
.pillar h3{
  font-size: 18px !important;
  font-weight: 400 !important;
  letter-spacing: .26em !important;
  text-transform: uppercase !important;
  color: var(--ink) !important;
  margin: 0 0 18px !important;
  padding: 0 !important;
}
.pillar h3::before{ display: none !important; }
.pillar p{
  font-size: 14px !important;
  line-height: 1.7 !important;
  color: rgba(241,238,230,.72) !important;
  margin: 0 !important;
}

/* Testimonial break — quote was overflowing the right edge.
   Tighten max-width, add comfortable inner padding, ease the type. */
.testimonial-break{
  padding: clamp(80px, 9vw, 140px) clamp(40px, 8vw, 120px) !important;
}
.tb-inner{
  max-width: 820px !important;
  padding: 0 clamp(8px, 2vw, 24px) !important;
  text-align: center;
}
.tb-quote{
  font-size: clamp(22px, 2.6vw, 36px) !important;
  line-height: 1.45 !important;
  text-wrap: balance;
}
.tb-cite{ margin-top: 24px; }

/* ============================================================
   STRATEGIC PARTNER CARDS — named, valued partners
   Logo + category + the relationship blurb, always visible.
   A refined hover lift with a gold accent so each partner
   reads as a deliberate alliance, not an afterthought.
============================================================ */
.partner-tiles{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  max-width: 1240px;
  margin: 0 auto;
}
.partner-tile{
  position: relative;
  display: flex;
  flex-direction: column;
  background: var(--navy-soft);
  border: 1px solid var(--frame-soft);
  border-radius: 6px;
  overflow: hidden;
  transition: border-color .4s ease, transform .4s ease, box-shadow .4s ease;
}
.partner-tile::before{
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--gold), var(--gold-soft));
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .45s ease;
  z-index: 2;
}
.partner-tile:hover,
.partner-tile:focus-within{
  border-color: var(--gold);
  transform: translateY(-6px);
  box-shadow: 0 28px 64px rgba(0,0,0,.45);
}
.partner-tile:hover::before,
.partner-tile:focus-within::before{ transform: scaleX(1); }
.partner-tile-logo-wrap{
  display: flex;
  align-items: center;
  justify-content: center;
  height: 136px;
  padding: 28px 32px;
  background: rgba(255,255,255,.04);
  border-bottom: 1px solid var(--frame-soft);
}
.partner-tile-logo{
  max-width: 78%;
  max-height: 80px;
  width: auto; height: auto;
  object-fit: contain;
  opacity: .95;
  transition: opacity .4s ease, transform .5s ease;
}
.partner-tile:hover .partner-tile-logo{ opacity: 1; transform: scale(1.03); }
.partner-tile-wordmark{
  font-size: 30px;
  letter-spacing: .04em;
  font-weight: 700;
  color: var(--gold-soft);
}
.partner-tile-body{
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 26px 28px 30px;
}
.partner-tile-tag{
  font-size: 10.5px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--gold);
  font-weight: 700;
}
.partner-tile-name{
  font-size: 18px;
  letter-spacing: .02em;
  color: var(--gold-soft);
  font-weight: 700;
  line-height: 1.25;
}
.partner-tile-desc{
  font-size: 13.5px;
  line-height: 1.62;
  color: rgba(241,238,230,.82);
}
@media (max-width: 980px){ .partner-tiles{ grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px){ .partner-tiles{ grid-template-columns: 1fr; } }

/* ============================================================
   Who We Serve — "Three Audiences" cards (refined layout)
   Scoped via .serve-grid--audiences so the Partners page
   serve-cards (which carry images) are left untouched.
============================================================ */
.serve-grid--audiences{ gap: 24px; align-items: stretch; }
.serve-grid--audiences .serve-card{
  display: flex;
  flex-direction: column;
  height: 100%;
  background: linear-gradient(180deg, var(--navy-soft) 0%, var(--navy-deep) 100%);
  border: 1px solid var(--frame-soft);
  border-top: 2px solid var(--gold);
  padding: 44px 38px 38px;
  box-shadow: 0 18px 40px rgba(0,0,0,.28) !important;
  transition: transform .4s cubic-bezier(.2,.7,.2,1), box-shadow .4s ease, border-color .4s ease;
}
.serve-grid--audiences .serve-card:hover{
  transform: translateY(-6px);
  border-top-color: var(--gold-bright);
  box-shadow: 0 34px 64px rgba(0,0,0,.42) !important;
}
.serve-grid--audiences .serve-eyebrow{
  display: inline-flex; align-items: center; gap: 12px;
  margin: 0 0 18px;
}
.serve-grid--audiences .serve-eyebrow::after{
  content: ""; width: 26px; height: 1px;
  background: var(--gold); opacity: .55;
}
.serve-grid--audiences .serve-card h3{
  font-size: clamp(22px, 1.65vw, 27px);
  line-height: 1.22;
  margin: 0 0 16px;
  min-height: 2.44em;            /* reserves two lines so paragraphs start level */
  color: var(--ink);
}
.serve-grid--audiences .serve-card > p{
  color: var(--ink-soft);
  font-size: 14.5px;
  line-height: 1.7;
  margin: 0 0 28px;
}
.serve-grid--audiences .serve-card ul{
  margin-top: auto;              /* pin lists to the bottom so baselines align */
  border-top: 1px solid var(--frame-soft);
}
.serve-grid--audiences .serve-card ul li{
  padding: 14px 0;
  font-size: 13.5px;
  color: var(--ink-soft);
  border-bottom: 1px solid var(--frame-soft);
  align-items: center;
  gap: 13px;
}
.serve-grid--audiences .serve-card ul li:last-child{ padding-bottom: 0; border-bottom: none; }
.serve-grid--audiences .serve-card ul li::before{
  content: "";
  flex: 0 0 auto;
  width: 5px; height: 5px;
  border-radius: 50%;
  background: var(--gold);
}
@media (max-width: 1100px){
  .serve-grid--audiences{ gap: 18px; }
  .serve-grid--audiences .serve-card h3{ min-height: 0; }
}

/* ============================================================
   Partner tiles — acquisition highlight + distinct hover accent.
   Gold is reserved for the "potential acquisition" box; standard
   tiles hover in a cool platinum so the gold stays meaningful.
============================================================ */
.partner-tile:hover,
.partner-tile:focus-within{ border-color: #aeb9c9; }
.partner-tile::before{ background: linear-gradient(90deg, #aeb9c9, #e6eaf1); }

.partner-tile--acquisition{
  border-color: var(--gold);
  box-shadow: 0 0 0 1px rgba(196,169,53,.55), 0 18px 46px rgba(196,169,53,.14);
}
.partner-tile--acquisition::before{
  background: linear-gradient(90deg, var(--gold), var(--gold-soft));
  transform: scaleX(1);
}
.partner-tile--acquisition:hover,
.partner-tile--acquisition:focus-within{
  border-color: var(--gold);
  transform: none;
  box-shadow: 0 0 0 1px rgba(196,169,53,.7), 0 22px 54px rgba(196,169,53,.2);
}
.partner-tile--acquisition:hover::before,
.partner-tile--acquisition:focus-within::before{ transform: scaleX(1); }

.partner-note{
  max-width: 1240px;
  margin: 26px auto 0;
  padding: 0 var(--pad-x);
  font-size: 12.5px;
  letter-spacing: .02em;
  color: var(--muted);
  text-align: right;
}
.partner-note .gold{ color: var(--gold); font-weight: 700; }

/* Invest — use-of-funds acquisitions/development footnote */
.uof-note{
  max-width: 1100px;
  margin: 30px auto 0;
  font-size: 12.5px;
  letter-spacing: .02em;
  color: var(--muted);
  text-align: center;
}
.uof-note .gold{ color: var(--gold); font-weight: 700; }

/* Invest — single CTA directly under the FAQ list */
.faq-cta{ margin-top: 56px; }

/* Content Hub — non-clickable "coming soon" episode labels */
.up-cta--muted{ opacity:.55; cursor:default; pointer-events:none; }
/* Invest — unit-economics compliance footnote */
.econ-foot{ margin-top:14px; font-size:.8rem; line-height:1.5; opacity:.6; max-width:640px; }
.gtm-path{ max-width:900px; }
