:root {
  --orange: #ee9736;
  --orange-text: #8a5400;  /* Darker orange for text use — ~7.5:1 on white, WCAG AA */
  --red: var(--orange);    /* Semantic alias — brand red retired in favour of orange */
  --peach: #f4c59f;
  --soft: #f2eae7;
  --yellow: #f2d768;
  --blue: #5294ff;
  --lime: #b8d63a;
  --violet: #7f3ed7;
  --mint: #9ce8df;
  --green: #4bbfa9;
  --black: #080808;
  --ink: #1d1d1f;
  --ink-soft: #44444b;
  --muted: #67676f;
  --body: #3b3b41;
  --grey: #f7f7f8;
  --line: #e8e8ec;
  --white: #ffffff;
  --cream: #f9f6f4;
  --tint-yellow: #fff8db;
  --tint-yellow-text: #9f8500;
  --tint-blue: #eef5ff;
  --tint-blue-text: #168675;
  --tint-mint: #f1f8da;
  --tint-mint-text: #6f8c00;
  --tint-peach: #fff7f8;
  --tint-blue-soft: #f7fbff;
  --tint-yellow-soft: #fcf8ed;
  --shadow: 0 24px 70px rgba(8, 8, 8, 0.10);
  --soft-shadow: 0 14px 44px rgba(8, 8, 8, 0.07);
  --radius-xl: 34px;
  --radius-lg: 24px;
  --radius-md: 18px;
  --container: min(1160px, calc(100% - 40px));
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--black); overscroll-behavior-y: none; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--black);
  font-family: ui-sans-serif, system-ui, -apple-system, "SF Pro Text", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  line-height: 1.5;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  overscroll-behavior-y: none;
}
main { background: var(--white); }

body.nav-open { overflow: hidden; }
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }

.skip-link {
  position: absolute;
  left: 16px;
  top: 12px;
  z-index: 999;
  transform: translateY(-140%);
  background: var(--black);
  color: var(--white);
  padding: 10px 14px;
  border-radius: 999px;
}
.skip-link:focus { transform: translateY(0); }
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
}

.container { width: var(--container); margin: 0 auto; }
.section { padding: clamp(56px, 5.4vw, 88px) 0; position: relative; overflow: hidden; }

.site-header {
  position: fixed;
  inset: 18px 20px auto;
  z-index: 50;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(12px, 2vw, 24px);
  padding: 12px 12px 12px 18px;
  border: 1px solid rgba(255, 255, 255, 0.42);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.62);
  backdrop-filter: blur(24px) saturate(180%);
  -webkit-backdrop-filter: blur(24px) saturate(180%);
  box-shadow: 0 8px 32px rgba(15, 15, 20, 0.06);
  transition: transform 260ms ease, background 260ms ease, border-color 260ms ease;
  max-width: min(1440px, calc(100% - 40px));
  margin: 0 auto;
}
@supports not (backdrop-filter: blur(24px)) {
  .site-header { background: rgba(255, 255, 255, 0.92); }
}
.site-header.scrolled { background: rgba(255,255,255,0.78); border-color: rgba(255, 255, 255, 0.58); }
.brand { display: flex; align-items: center; gap: 8px; font-weight: 760; }
.brand img { height: 22px; width: auto; object-fit: contain; }
.brand span { padding-left: 10px; border-left: 1px solid var(--line); color: var(--black); font-size: 0.85rem; font-weight: 800; }
.brand:focus-visible { outline: 2px solid var(--orange-text); outline-offset: 4px; border-radius: 8px; }
.site-nav {
  display: flex;
  align-items: center;
  gap: 4px;
  padding-right: 16px;
  min-width: 0;
  overflow-x: auto;
  scrollbar-width: none;
}
.site-nav::-webkit-scrollbar { display: none; }
.site-nav a {
  padding: 8px 12px;
  border-radius: 999px;
  color: var(--ink-soft);
  font-size: 0.82rem;
  font-weight: 650;
  white-space: nowrap;
  transition: background 180ms ease, color 180ms ease, transform 180ms ease;
}
.site-nav a:hover { background: var(--grey); color: var(--black); transform: translateY(-1px); }
.site-nav a:focus-visible { outline: 2px solid var(--orange-text); outline-offset: 2px; }
.site-nav .nav-cta { background: var(--black); color: var(--white); margin-left: 8px; flex-shrink: 0; }
.site-nav .nav-cta:hover { background: var(--orange); color: var(--black); }
.nav-toggle {
  display: none;
  width: 44px;
  height: 44px;
  border: 0;
  background: var(--black);
  border-radius: 50%;
  padding: 13px;
  cursor: pointer;
}
.nav-toggle:hover { background: var(--ink); }
.nav-toggle:focus-visible { outline: 2px solid var(--orange-text); outline-offset: 3px; }
.nav-toggle span:not(.sr-only) { display: block; height: 2px; background: var(--white); margin: 4px 0; border-radius: 99px; }

h1, h2, h3 {
  font-family: ui-sans-serif, system-ui, -apple-system, "SF Pro Text", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  margin: 0;
  color: var(--black);
  font-weight: 800;
}
h1 { font-size: clamp(4rem, 8.8vw, 8.9rem); line-height: 0.9; max-width: 860px; }
h2 { font-size: clamp(2.55rem, 5.2vw, 5.45rem); line-height: 0.93; }
h3 { font-size: clamp(1.32rem, 1.8vw, 1.82rem); line-height: 1.02; }
p { margin: 0; color: var(--muted); line-height: 1.46; }
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 18px;
  color: var(--orange-text);
  font-size: 0.78rem;
  line-height: 1;
  font-weight: 850;
  text-transform: uppercase;
}
.eyebrow::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 0 22px;
  border-radius: 999px;
  font-weight: 800;
  border: 1px solid transparent;
  cursor: pointer;
  transition: transform 180ms ease, box-shadow 180ms ease, background 180ms ease, color 180ms ease;
}
.button:hover { transform: translateY(-2px); }
.button:focus-visible { outline: 2px solid var(--orange-text); outline-offset: 3px; }
.button.primary { background: var(--orange); color: var(--black); box-shadow: 0 14px 34px rgba(238,151,54,0.28); }
.button.primary:hover { box-shadow: 0 20px 46px rgba(238,151,54,0.34); }
.button.secondary { background: var(--white); color: var(--black); border-color: var(--line); box-shadow: var(--soft-shadow); }

/* Hero — dark theme, consolidated from original + V6 + V9 + V13 + V15 */
.hero {
  min-height: 100vh;
  padding: clamp(118px, 10vw, 144px) 0 clamp(36px, 4.2vw, 54px);
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: var(--black);
  color: var(--white);
  isolation: isolate;
}
.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background:
    linear-gradient(115deg, rgba(0,0,0,0.24), rgba(0,0,0,0.08) 44%, rgba(0,0,0,0.48)),
    url('assets/hero-background.png') center / cover no-repeat;
}
.hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  opacity: 0.10;
  background-image:
    linear-gradient(rgba(255,255,255,0.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.06) 1px, transparent 1px);
  background-size: 58px 58px;
  mask-image: radial-gradient(circle at 50% 35%, black, transparent 70%);
}
.hero .container { position: relative; z-index: 2; }
.hero h1, .hero h2, .hero h3, .hero .hero-lede, .hero p { color: var(--white); }
.hero h1 { max-width: 850px; }
.hero .hero-lede { color: rgba(255,255,255,0.82); }
.hero .eyebrow { color: var(--orange); }  /* Hero is dark bg — full-vibrancy orange is legible here */
.hero .mission-card, .hero .academy-card {
  background: rgba(255,255,255,0.08);
  border-color: rgba(255,255,255,0.16);
  box-shadow: 0 24px 70px rgba(0,0,0,0.22);
  backdrop-filter: blur(18px);
}
.hero .mission-card span, .hero .academy-card span { color: rgba(255,255,255,0.62); }
.hero .mission-card strong, .hero .academy-card strong { color: var(--white); }
.hero .button.secondary { background: rgba(255,255,255,0.1); color: var(--white); border-color: rgba(255,255,255,0.18); }
.hero .button.secondary:hover { background: rgba(255,255,255,0.16); }

.hero-stack { display: grid; gap: clamp(26px, 3.8vw, 46px); }
.hero-copy { max-width: 1080px; }
.hero-lede {
  margin-top: 22px;
  max-width: 790px;
  font-size: clamp(1.15rem, 1.8vw, 1.55rem);
  line-height: 1.35;
}
.hero-info-row {
  margin-top: 26px;
  display: grid;
  grid-template-columns: minmax(0, 1.04fr) minmax(0, 0.96fr);
  gap: 14px;
  max-width: 980px;
}
.mission-card, .academy-card {
  padding: clamp(20px, 2.2vw, 26px);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  background: rgba(255,255,255,0.76);
  box-shadow: var(--soft-shadow);
}
.academy-card { background: var(--tint-peach); }
.mission-card span, .academy-card span, .vision-note span, .path-card span, .panel-count {
  display: block;
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 850;
  text-transform: uppercase;
}
.mission-card strong, .academy-card strong, .vision-note strong {
  display: block;
  margin-top: 8px;
  color: var(--black);
  font-size: clamp(1.05rem, 1.42vw, 1.34rem);
  line-height: 1.22;
}
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }

/* Video shell — consolidated from original + V6 + V15 */
.video-feature { width: 100%; }
.video-shell {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 8.4;
  min-height: clamp(420px, 48vw, 560px);
  border-radius: var(--radius-xl);
  overflow: hidden;
  background:
    linear-gradient(135deg, rgba(8,8,8,0.42), rgba(8,8,8,0.08)),
    radial-gradient(circle at 30% 15%, rgba(238,151,54,0.82), transparent 28%),
    radial-gradient(circle at 80% 25%, rgba(82,148,255,0.75), transparent 32%),
    radial-gradient(circle at 38% 78%, rgba(156,232,223,0.84), transparent 32%),
    #111;
  box-shadow: var(--shadow);
  isolation: isolate;
}
.video-shell::before {
  content: "";
  position: absolute;
  inset: 1px;
  border: 1px solid rgba(255,255,255,0.24);
  border-radius: inherit;
  z-index: 1;
}
.video-shell::after {
  content: "";
  position: absolute;
  inset: auto 24px 24px;
  height: 116px;
  border-radius: 28px;
  background: rgba(255,255,255,0.14);
  backdrop-filter: blur(20px);
  border: 1px solid rgba(255,255,255,0.18);
}
.video-shell-embed {
  aspect-ratio: 16 / 9;
  padding: 0;
  background: #000;
  overflow: hidden;
}
/* The base .video-shell adds a decorative 1px border (::before) and a
   frosted "card" at the bottom (::after) that made sense on a poster
   placeholder. On a real iframe embed they sit on top of the video and
   intercept clicks on the play button (elementFromPoint at the iframe
   centre returns the shell, not the iframe). Disable both on the embed
   variant so clicks reach YouTube. */
.video-shell-embed::before,
.video-shell-embed::after {
  display: none;
}
.video-shell-embed iframe,
.video-shell-embed lite-youtube {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
  border-radius: inherit;
  position: relative;
  z-index: 2;
}
/* lite-youtube ships with `max-width: 720px` so it can drop into arbitrary
   pages without overflowing. Inside our full-width video shell we override
   so it fills the container. */
.video-shell-embed lite-youtube {
  max-width: none;
}
/* Split / intro */
.split { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: clamp(24px, 4.2vw, 58px); align-items: start; }
.split.reverse { grid-template-columns: 1fr 1.1fr; }
.section-kicker h2 { max-width: 660px; }
.intro-content { font-size: clamp(1.12rem, 1.7vw, 1.42rem); line-height: 1.42; }
.intro-content p { color: var(--body); }
.vision-note {
  margin-top: 28px;
  padding: 22px;
  border-radius: var(--radius-lg);
  background: rgba(255,255,255,0.78);
  border: 1px solid var(--line);
}
/* Section heading — consolidated from original + V6 + V7 + V9 + V15 */
.section-heading {
  max-width: none;
  text-align: left;
  margin-bottom: clamp(20px, 2.6vw, 34px);
}
.section-heading p:not(.eyebrow) {
  margin: 16px 0 0;
  max-width: 720px;
  font-size: clamp(1.02rem, 1.25vw, 1.14rem);
  line-height: 1.48;
}

/* Reason cards — consolidated from original + V12 + V15 */
.reason-grid {
  margin-top: clamp(20px, 2.5vw, 34px);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(16px, 2vw, 24px);
  align-items: stretch;
}
.reason-card, .support-card, .day-card, .path-card {
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  background: var(--white);
  box-shadow: 0 12px 38px rgba(8,8,8,0.05);
}
.reason-card {
  position: relative;
  min-height: 260px;
  padding: clamp(20px, 2.2vw, 26px);
  overflow: hidden;
  border-color: rgba(16,16,18,0.08);
  background:
    linear-gradient(180deg, rgba(255,255,255,0.96), rgba(255,255,255,0.88)),
    radial-gradient(circle at 92% 12%, rgba(238,151,54,0.18), transparent 34%);
  box-shadow: 0 18px 52px rgba(8,8,8,0.065);
  transition: transform 220ms ease, box-shadow 220ms ease;
}
.reason-card:hover, .story-card:hover, .day-card:hover, .support-card:hover {
  transform: translateY(-5px);
  box-shadow: var(--soft-shadow);
}
.reason-card::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(135deg, rgba(238,151,54,0.16), transparent 38%),
    radial-gradient(circle at 88% 18%, rgba(82,148,255,0.16), transparent 28%);
  opacity: 0;
  transition: opacity 220ms ease;
}
.reason-card::after {
  content: "";
  position: absolute;
  left: 24px;
  right: 24px;
  bottom: 0;
  height: 4px;
  border-radius: 999px 999px 0 0;
  background: var(--orange);
  transform: scaleX(0.34);
  transform-origin: left;
  transition: transform 220ms ease;
}
.reason-card:hover::before { opacity: 1; }
.reason-card:hover::after { transform: scaleX(1); }
.reason-card > span {
  position: relative;
  z-index: 1;
  width: 62px;
  height: 62px;
  display: grid;
  place-items: center;
  border-radius: 20px;
  color: var(--black);
  background:
    linear-gradient(135deg, rgba(255,255,255,0.92), rgba(255,255,255,0.58)),
    radial-gradient(circle at 28% 24%, rgba(238,151,54,0.85), rgba(238,151,54,0.18) 62%, transparent 64%);
  border: 1px solid rgba(238,151,54,0.25);
  box-shadow: 0 14px 34px rgba(238,151,54,0.18);
  font-size: 1.7rem;
  line-height: 1;
  font-weight: 900;
}
.reason-card h3, .reason-card p { position: relative; z-index: 1; }
.reason-card h3 { margin-top: 48px; font-size: clamp(1.45rem, 2.1vw, 2.05rem); }
.reason-card p { margin-top: 12px; max-width: 31ch; }
.reason-card:nth-child(2) > span {
  background:
    linear-gradient(135deg, rgba(255,255,255,0.92), rgba(255,255,255,0.58)),
    radial-gradient(circle at 28% 24%, rgba(242,215,104,0.95), rgba(242,215,104,0.18) 62%, transparent 64%);
  border-color: rgba(242,215,104,0.45);
  box-shadow: 0 14px 34px rgba(242,215,104,0.20);
}
.reason-card:nth-child(3) > span {
  background:
    linear-gradient(135deg, rgba(255,255,255,0.92), rgba(255,255,255,0.58)),
    radial-gradient(circle at 28% 24%, rgba(156,232,223,0.95), rgba(156,232,223,0.18) 62%, transparent 64%);
  border-color: rgba(156,232,223,0.5);
  box-shadow: 0 14px 34px rgba(75,191,169,0.18);
}
.reason-card:nth-child(4) > span {
  background:
    linear-gradient(135deg, rgba(255,255,255,0.92), rgba(255,255,255,0.58)),
    radial-gradient(circle at 28% 24%, rgba(127,62,215,0.58), rgba(127,62,215,0.13) 62%, transparent 64%);
  border-color: rgba(127,62,215,0.28);
  box-shadow: 0 14px 34px rgba(127,62,215,0.14);
}
.reason-card:nth-child(5) > span {
  background:
    linear-gradient(135deg, rgba(255,255,255,0.92), rgba(255,255,255,0.58)),
    radial-gradient(circle at 28% 24%, rgba(82,148,255,0.78), rgba(82,148,255,0.15) 62%, transparent 64%);
  border-color: rgba(82,148,255,0.34);
  box-shadow: 0 14px 34px rgba(82,148,255,0.16);
}
.reason-card:nth-child(6) > span {
  background:
    linear-gradient(135deg, rgba(255,255,255,0.92), rgba(255,255,255,0.58)),
    radial-gradient(circle at 28% 24%, rgba(184,214,58,0.9), rgba(184,214,58,0.16) 62%, transparent 64%);
  border-color: rgba(184,214,58,0.36);
  box-shadow: 0 14px 34px rgba(184,214,58,0.16);
}

/* Momentum / path */
.momentum { background: var(--grey); }
.path {
  position: relative;
  margin-top: clamp(20px, 2.5vw, 34px);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(14px, 1.7vw, 20px);
}
.path-line { position: absolute; left: 10%; right: 10%; top: 45px; height: 2px; background: var(--line); }
.path-card {
  position: relative;
  padding: clamp(20px, 2.2vw, 26px);
  min-height: 260px;
  overflow: hidden;
}
.path-card::before {
  content: "";
  position: absolute;
  top: 34px;
  right: 28px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--orange);
  box-shadow: 0 0 0 8px rgba(238,151,54,0.14);
}
.path-card.active { background: var(--black); }
.path-card.active h3, .path-card.active p { color: var(--white); }
.path-card.active span { color: var(--white); }
.path-card h3 { margin-top: 54px; }
.path-card p { margin-top: 12px; }

/* Story grid */
.story-grid {
  margin-top: clamp(20px, 2.5vw, 34px);
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(14px, 1.7vw, 20px);
  align-items: stretch;
}
.story-card {
  border-radius: var(--radius-lg);
  background: var(--white);
  border: 1px solid var(--line);
  overflow: hidden;
  box-shadow: 0 12px 38px rgba(8,8,8,0.05);
  transition: transform 220ms ease, box-shadow 220ms ease;
}
.story-card img {
  width: 100%;
  aspect-ratio: 1 / 0.94;
  object-fit: cover;
  object-position: center top;
  background: var(--soft);
}
.story-content { padding: clamp(20px, 2.2vw, 26px); }
.story-label {
  color: var(--orange-text);
  margin-bottom: 16px;
  white-space: nowrap;
  font-size: clamp(0.68rem, 0.78vw, 0.78rem);
}
.story-content h3 {
  font-family: ui-sans-serif, system-ui, -apple-system, "SF Pro Text", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  font-size: clamp(1.7rem, 2.3vw, 2.4rem);
  margin-top: 14px;
}
.story-content p:not(.story-label) { margin-top: 12px; }

/* Academy layout — position:sticky, overrides .reveal via higher-specificity compound
   selector (no !important needed: .academy-layout.reveal is 0,2,0 vs .reveal at 0,1,0) */
.academy-layout {
  margin-top: 56px;
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 22px;
  align-items: stretch;
}
.timeline-tabs { display: grid; gap: 8px; }
.week-tab {
  border: 1px solid var(--line);
  background: var(--white);
  border-radius: 999px;
  padding: 14px 16px;
  cursor: pointer;
  color: var(--muted);
  text-align: left;
  font-weight: 850;
  transition: background 180ms ease, color 180ms ease, transform 180ms ease;
}
.week-tab:hover { transform: translateX(4px); color: var(--black); }
.week-tab:focus-visible { outline: 2px solid var(--orange-text); outline-offset: 2px; }
.week-tab.active { background: var(--orange); color: var(--black); }
.week-panel {
  min-height: 440px;
  padding: clamp(32px, 6vw, 70px);
  border-radius: var(--radius-xl);
  color: var(--white);
  background:
    radial-gradient(circle at 86% 18%, rgba(238,151,54,0.78), transparent 24%),
    radial-gradient(circle at 20% 82%, rgba(156,232,223,0.72), transparent 25%),
    var(--black);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  box-shadow: var(--shadow);
}
.week-panel h3 { color: var(--white); font-size: clamp(2.8rem, 6vw, 6.6rem); margin-top: 18px; }
.week-panel:focus-visible { outline: 2px solid var(--orange-text); outline-offset: 3px; }
.week-panel p {
  color: rgba(255,255,255,0.94);
  margin-top: 22px;
  max-width: 660px;
  font-size: clamp(1.12rem, 1.8vw, 1.55rem);
}
.week-panel .panel-count { color: rgba(255,255,255,0.72); }
.week-item { display: flex; flex-direction: column; gap: 12px; }
.week-item[hidden] { display: none; }
.panel-progress {
  margin-top: 42px;
  height: 8px;
  background: rgba(255,255,255,0.18);
  border-radius: 999px;
  overflow: hidden;
}
.progress-bar {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--orange);
  transition: width 260ms ease;
}

/* Week grid */
.week-grid {
  margin-top: clamp(20px, 2.5vw, 34px);
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: clamp(14px, 1.7vw, 20px);
}
.day-card {
  padding: clamp(20px, 2.2vw, 26px);
  min-height: 240px;
  transition: transform 220ms ease, box-shadow 220ms ease;
}
.day-card span {
  display: block;
  color: var(--orange-text);
  font-size: 0.78rem;
  font-weight: 850;
  text-transform: uppercase;
}
.day-card h3 { margin-top: 54px; }
.day-card p { margin-top: 12px; }
.day-card:nth-child(even) { background: var(--grey); }

/* Support */
.support { background: var(--grey); }
.support-grid {
  margin-top: clamp(20px, 2.5vw, 34px);
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}
.support-card {
  padding: clamp(20px, 2.2vw, 26px);
  min-height: 220px;
  transition: transform 220ms ease, box-shadow 220ms ease;
}
.support-card > span { font-size: 1.9rem; }
.support-card h3 { margin-top: 42px; font-size: 1.42rem; }
.support-card p { margin-top: 10px; }

/* Apply */
.apply { background: linear-gradient(180deg, #fff 0%, #fbfbfc 100%); }
.apply-copy p:not(.eyebrow) {
  margin-top: 0;
  font-size: clamp(1.08rem, 1.55vw, 1.34rem);
  line-height: 1.42;
  color: var(--body);
}
.apply-lede {
  margin-top: 14px;
  font-size: clamp(1.08rem, 1.55vw, 1.34rem);
  line-height: 1.42;
  color: var(--ink-soft);
  max-width: 640px;
}
.fit-list { margin: 22px 0 0; padding: 0; display: grid; gap: 10px; list-style: none; }
.fit-list li { position: relative; padding-left: 30px; color: var(--body); font-weight: 650; }
.fit-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 8px;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--orange);
}
.apply-cta {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  margin-top: clamp(24px, 3vw, 40px);
}
.apply-cta .button.primary {
  min-width: min(320px, 100%);
  text-align: center;
}

/* Footer */
.site-footer {
  background: var(--black);
  color: var(--white);
  padding-top: 28px;
  padding-bottom: max(34px, env(safe-area-inset-bottom));
  position: relative;
  z-index: 4;
  margin: 0;
  box-shadow: 0 -1px 0 var(--black);
}
.site-footer::after {
  content: "";
  position: fixed;
  left: 0;
  right: 0;
  bottom: -50vh;
  height: 50vh;
  background: var(--black);
  pointer-events: none;
  z-index: -1;
}
.footer-inner { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.footer-inner img { width: 138px; }
.footer-inner p { color: rgba(255,255,255,0.68); }

/* Reveal animation */
.reveal { opacity: 0; transform: translateY(24px); transition: opacity 680ms ease, transform 680ms ease; }
.reveal.in-view { opacity: 1; transform: translateY(0); }

/* Group snapshot */
.group-snapshot {
  margin-top: clamp(20px, 2.5vw, 34px);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(14px, 1.7vw, 20px);
}
.group-snapshot article {
  padding: clamp(20px, 2.2vw, 26px);
  border-radius: var(--radius-lg);
  background: var(--grey);
  border: 1px solid var(--line);
  min-height: 190px;
}
.group-snapshot article:nth-child(2) { background: var(--tint-blue-soft); }
.group-snapshot article:nth-child(3) { background: var(--tint-peach); }
.group-snapshot span {
  display: block;
  color: var(--orange-text);
  font-size: 0.78rem;
  font-weight: 850;
  text-transform: uppercase;
}
.group-snapshot p { margin-top: 18px; color: var(--body); }

/* Academy intro */
.academy-intro-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 0.78fr);
  gap: clamp(24px, 4.2vw, 58px);
  align-items: end;
}
.academy-intro-copy {
  border-left: 3px solid var(--orange);
  padding-left: 22px;
  max-width: 590px;
}
.academy-intro-copy p {
  color: var(--body);
  font-size: clamp(1.08rem, 1.55vw, 1.34rem);
  line-height: 1.42;
}
.academy-intro-copy p + p { margin-top: 12px; }

/* Section backgrounds */
.intro, .momentum, .support { background: var(--grey); }
.stories, .academy, .apply { background: var(--white); }
.why, .weekly { background: var(--cream); }

/* Intro / momentum split layout parity with academy intro */
.intro .split, .momentum .split.reverse {
  grid-template-columns: minmax(0, 1fr) minmax(320px, 0.78fr);
  gap: clamp(24px, 4.2vw, 58px);
  align-items: end;
}
.intro .intro-content, .momentum .intro-content {
  border-left: 3px solid var(--orange);
  padding-left: 22px;
  max-width: 590px;
}

/* Section headings snap to container start (V8) */
.stories > .section-heading,
.why > .section-heading,
.weekly > .section-heading,
.support > .section-heading {
  width: var(--container);
  margin-left: auto;
  margin-right: auto;
  padding-left: 0;
  padding-right: 0;
  max-width: none;
}
.stories > .section-heading h2,
.stories > .section-heading p:not(.eyebrow),
.why > .section-heading h2,
.why > .section-heading p:not(.eyebrow),
.weekly > .section-heading h2,
.weekly > .section-heading p:not(.eyebrow),
.support > .section-heading h2,
.support > .section-heading p:not(.eyebrow) {
  max-width: 780px;
  margin-left: 0;
  margin-right: 0;
  text-align: left;
}

/* Apply layout (V8) */
.apply-layout {
  display: grid;
  gap: clamp(22px, 3.2vw, 40px);
}
.apply-intro {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 0.82fr);
  gap: clamp(24px, 4.2vw, 58px);
  align-items: start;
}
.apply-title h2 { max-width: 760px; }
.apply-copy {
  position: static;
  border-left: 3px solid var(--orange);
  padding-left: 22px;
  max-width: 590px;
}

/* Sticky Academy */
.academy { overflow: visible; }

/* Awards marquee (V11) */
.awards-marquee {
  margin-top: clamp(18px, 2.5vw, 30px);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  background: rgba(255,255,255,0.78);
  box-shadow: 0 18px 50px rgba(8,8,8,0.045);
  overflow: hidden;
}
.marquee-head { padding: 16px 22px 0; }
.marquee-head span {
  display: inline-block;
  color: var(--orange-text);
  font-size: 0.78rem;
  font-weight: 850;
  text-transform: uppercase;
}
.marquee-window {
  position: relative;
  overflow: hidden;
  padding: 14px 0 18px;
  mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
.marquee-track {
  display: flex;
  width: max-content;
  gap: 18px;
  animation: awardMarquee 34s linear infinite;
  will-change: transform;
}
.awards-marquee:hover .marquee-track { animation-play-state: paused; }
.awards-marquee.paused .marquee-track { animation-play-state: paused; }
.marquee-pause {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-left: 12px;
  padding: 6px 12px;
  border-radius: 999px;
  background: transparent;
  border: 1px solid var(--line);
  color: var(--body);
  font-size: 0.78rem;
  font-weight: 700;
  cursor: pointer;
  transition: background 180ms ease;
}
.marquee-pause:hover { background: var(--soft); }
.marquee-pause:focus-visible { outline: 2px solid var(--orange-text); outline-offset: 2px; }
.award-logo {
  flex: 0 0 auto;
  width: clamp(164px, 18vw, 240px);
  height: 118px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(16,16,18,0.08);
  border-radius: 22px;
  background: var(--white);
  padding: 18px;
  box-shadow: 0 10px 26px rgba(8,8,8,0.035);
}
.award-logo img {
  max-width: 100%;
  max-height: 82px;
  width: auto;
  height: auto;
  object-fit: contain;
  display: block;
}
@keyframes awardMarquee {
  from { transform: translateX(0); }
  to { transform: translateX(calc(-50% - 9px)); }
}

/* Left-align global content wrappers */
.hero-stack,
.split,
.group-snapshot,
.section-heading,
.story-grid,
.reason-grid,
.path,
.academy-intro-grid,
.academy-layout,
.week-grid,
.support-grid,
.footer-inner {
  text-align: left;
}

/* Section paddings (V15) */
.intro,
.stories,
.why,
.momentum,
.weekly,
.support,
.apply,
.group {
  padding-top: clamp(56px, 5.4vw, 88px);
  padding-bottom: clamp(56px, 5.4vw, 88px);
}
.academy { padding-top: clamp(60px, 5.8vw, 92px); }

/* Earnings — consolidated V29 + V30 + V31 */
.earnings { background: var(--cream); }
.earnings-intro, .markets-intro { align-items: end; }
.earnings-track {
  position: relative;
  margin-top: clamp(26px, 3vw, 42px);
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: clamp(12px, 1.5vw, 18px);
}
.earnings-track::before {
  content: "";
  position: absolute;
  left: 8%;
  right: 8%;
  top: 36px;
  height: 2px;
  background: rgba(238,151,54,0.28);
  z-index: 0;
}
.earnings-track article {
  position: relative;
  z-index: 1;
  min-height: 210px;
  padding: clamp(20px, 2vw, 26px);
  padding-left: clamp(18px, 1.8vw, 24px);
  padding-right: clamp(14px, 1.4vw, 20px);
  border: 1px solid rgba(16,16,18,0.08);
  border-radius: var(--radius-lg);
  background: var(--white);
  box-shadow: 0 14px 40px rgba(8,8,8,0.055);
  overflow: hidden;
}
.earnings-track article::before {
  content: "";
  position: absolute;
  top: 28px;
  right: 24px;
  width: 18px;
  height: 18px;
  border-radius: 999px;
  background: var(--orange);
  box-shadow: 0 0 0 8px rgba(238,151,54,0.14);
}
.earnings-track article::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 5px;
  background: var(--orange);
  opacity: 0.28;
}
.earnings-track article.peak {
  background: var(--black);
  color: var(--white);
}
.earnings-track article.peak span,
.earnings-track article.peak strong,
.earnings-track article.peak p {
  color: var(--white);
}
.earnings-track span,
.market-panel span {
  display: block;
  color: var(--orange-text);
  font-size: 0.78rem;
  font-weight: 850;
  text-transform: uppercase;
}
.earnings-track strong {
  display: block;
  margin-top: 54px;
  color: var(--black);
  font-size: clamp(1.85rem, 2.65vw, 3.2rem);
  line-height: 0.98;
  white-space: nowrap;
}
.earnings-track article.peak strong {
  font-size: clamp(1.75rem, 2.45vw, 3rem);
  transform: translateX(-2px);
}
.earnings-track p {
  margin-top: 12px;
  color: var(--body);
  font-weight: 650;
  font-size: 0.88rem;
  line-height: 1.25;
}
.earnings-note { margin-top: 18px; }
.earnings-note p { max-width: 720px; color: var(--muted); font-size: 0.94rem; }

/* Markets (V29) */
.markets { background: var(--grey); }
.market-compare {
  margin-top: clamp(26px, 3vw, 42px);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(16px, 2vw, 22px);
}
.market-panel {
  position: relative;
  min-height: 420px;
  padding: clamp(26px, 3vw, 38px);
  border-radius: var(--radius-xl);
  border: 1px solid rgba(16,16,18,0.08);
  background: var(--white);
  box-shadow: 0 18px 54px rgba(8,8,8,0.06);
  overflow: hidden;
}
.market-panel::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 88% 12%, rgba(238,151,54,0.18), transparent 30%);
  pointer-events: none;
}
.market-panel.usa-panel {
  background: var(--black);
  color: var(--white);
}
.market-panel.usa-panel::before {
  background:
    radial-gradient(circle at 82% 10%, rgba(238,151,54,0.42), transparent 30%),
    radial-gradient(circle at 16% 86%, rgba(82,148,255,0.26), transparent 34%);
}
.market-panel h3 {
  position: relative;
  z-index: 1;
  margin-top: clamp(42px, 5vw, 72px);
  max-width: 12ch;
  font-size: clamp(2rem, 3.2vw, 3.8rem);
  line-height: 0.96;
}
.market-panel.usa-panel h3,
.market-panel.usa-panel li { color: var(--white); }
.market-panel.usa-panel span { color: var(--white); }
.market-panel ul {
  position: relative;
  z-index: 1;
  margin: 28px 0 0;
  padding: 0;
  display: grid;
  gap: 14px;
  list-style: none;
}
.market-panel li {
  position: relative;
  padding-left: 26px;
  color: var(--body);
  font-weight: 650;
  line-height: 1.42;
}
.market-panel li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.62em;
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: var(--orange);
}

/* Titles / no-wrap utility */
.stacked-title span { display: block; }
.no-wrap { white-space: nowrap; }
#momentum-title,
#academy-title {
  max-width: 920px;
  font-size: clamp(2.35rem, 4.25vw, 4.65rem);
  line-height: 0.98;
}
#stories-title { max-width: 980px; }
#momentum-title .no-wrap { white-space: normal; }

/* Academy heading refinements */
#academy-title.single-line-title {
  white-space: normal;
  max-width: 620px;
  font-size: clamp(3rem, 4.35vw, 4.8rem);
  line-height: 0.94;
}

/* Sticky header offset — matches header height + safe gap */
section[id], #academy-film { scroll-margin-top: clamp(96px, 12vh, 140px); }

/* Sticky Academy plan (desktop). Higher specificity beats .reveal at 0,1,0 so no !important needed. */
@media (min-width: 901px) {
  .academy {
    min-height: 540vh;
    padding-bottom: clamp(32px, 4vw, 58px);
  }
  .academy-layout,
  .academy-layout.reveal,
  .academy-layout.reveal.in-view {
    position: sticky;
    top: clamp(88px, 11vh, 116px);
    min-height: min(70vh, 690px);
    transform: none;
    opacity: 1;
    transition: none;
    z-index: 2;
  }
  .timeline-tabs, .week-panel { align-self: stretch; }
  .apply-intro { align-items: end; }
  .apply-copy { align-self: end; margin-bottom: 0.28em; }
  .academy-intro-grid {
    grid-template-columns: minmax(0, 1.05fr) minmax(360px, 0.72fr);
    gap: clamp(48px, 5vw, 76px);
    align-items: center;
  }
  #academy-title {
    max-width: 690px;
    font-size: clamp(3.15rem, 3.75vw, 4.05rem);
    line-height: 1.02;
  }
  .academy-intro-copy { max-width: 500px; }
}

@media (min-width: 901px) and (max-width: 1180px) {
  #academy-title {
    font-size: clamp(2.85rem, 4.7vw, 3.65rem);
    max-width: 620px;
  }
  .academy-intro-grid {
    grid-template-columns: minmax(0, 1fr) minmax(330px, 0.68fr);
    gap: 42px;
  }
  #academy-title.single-line-title {
    max-width: 520px;
    font-size: clamp(2.65rem, 4.2vw, 3.85rem);
  }
}

/* F04: hint overflow on nav in mid-range viewports where nav scrolls silently */
@media (min-width: 901px) and (max-width: 1200px) {
  .site-nav {
    mask-image: linear-gradient(to right, black 0, black calc(100% - 24px), transparent 100%);
    -webkit-mask-image: linear-gradient(to right, black 0, black calc(100% - 24px), transparent 100%);
  }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
  }
  .reveal { opacity: 1; transform: none; }
  .marquee-track { animation: none; flex-wrap: wrap; width: auto; justify-content: flex-start; padding: 0 18px; }
  .marquee-window { mask-image: none; }
}

/* Responsive breakpoints */
@media (max-width: 1060px) {
  .hero-info-row, .split, .split.reverse { grid-template-columns: 1fr; }
  .video-shell { min-height: 420px; aspect-ratio: 16 / 10; }
  /* Embed variant keeps 16:9 to match the YouTube iframe — the base
     .video-shell tighter ratio was for the poster placeholder. Without
     this override, the video letterboxes on tablet. */
  .video-shell-embed { aspect-ratio: 16 / 9; }
  .reason-grid { grid-template-columns: repeat(2, 1fr); }
  .story-grid { grid-template-columns: repeat(2, 1fr); }
  .week-grid { grid-template-columns: repeat(2, 1fr); }
  .support-grid { grid-template-columns: repeat(2, 1fr); }
  .apply-copy { position: static; }
  .intro .split, .momentum .split.reverse, .academy-intro-grid { grid-template-columns: 1fr; align-items: start; }
  .site-nav { max-width: 64vw; }
  .earnings-track { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .earnings-track::before { display: none; }
  .earnings-track strong,
  .earnings-track article.peak strong {
    font-size: clamp(2.15rem, 5.2vw, 3.5rem);
    transform: none;
  }
  .market-compare { grid-template-columns: 1fr; }
  .market-panel { min-height: auto; }
  .market-panel h3 { max-width: 16ch; }
}

@media (max-width: 900px) {
  .nav-toggle { display: block; }
  .site-nav {
    position: fixed;
    left: 12px;
    right: 12px;
    top: 78px;
    display: none;
    gap: 4px;
    padding: 12px;
    padding-right: 12px;
    border-radius: 24px;
    background: rgba(255,255,255,0.96);
    border: 1px solid var(--line);
    box-shadow: var(--shadow);
    max-width: none;
  }
  .site-nav.open { display: grid; }
  .site-nav a { padding: 14px 16px; font-size: 0.95rem; }
  .site-nav .nav-cta { margin-left: 0; }
  h1 { font-size: clamp(3.3rem, 14vw, 6.4rem); }
  h2 { font-size: clamp(2.35rem, 10vw, 4.5rem); }
  .intro .intro-content,
  .momentum .intro-content,
  .academy-intro-copy,
  .apply-copy {
    border-left: 0;
    padding-left: 0;
  }
  .academy { min-height: auto; padding-bottom: 82px; }
  .academy-layout { position: static; min-height: auto; }
  .apply-intro { grid-template-columns: 1fr; }
  .apply-copy { max-width: 720px; }
  .group-snapshot { grid-template-columns: 1fr; }
  .section,
  .intro,
  .stories,
  .why,
  .momentum,
  .weekly,
  .support,
  .apply,
  .academy,
  .group {
    padding-top: 54px;
    padding-bottom: 54px;
  }
  #academy-title.single-line-title {
    max-width: 100%;
    font-size: clamp(2.25rem, 10vw, 3.9rem);
  }
}

@media (max-width: 760px) {
  :root { --container: min(100% - 28px, 1160px); }
  .section { padding: 78px 0; }
  .site-header { inset: 12px 12px auto; align-items: center; }
  .brand { min-width: 0; }
  .brand img { width: 88px; height: auto; }
  .brand span {
    font-size: 0.82rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  /* V29: mobile height fix */
  .hero {
    min-height: auto;
    padding-top: 112px;
    padding-bottom: 44px;
  }
  .hero-stack { gap: 24px; }
  .hero h1 {
    font-size: clamp(3rem, 17vw, 4.8rem);
    line-height: 0.92;
    max-width: 100%;
  }
  .hero-lede {
    margin-top: 18px;
    font-size: clamp(1rem, 4.6vw, 1.24rem);
    line-height: 1.34;
  }
  .hero-info-row { margin-top: 22px; gap: 12px; }
  .reason-grid, .path, .story-grid, .support-grid {
    grid-template-columns: 1fr;
  }
  .path-line { display: none; }
  .academy-layout { grid-template-columns: 1fr; }
  .timeline-tabs {
    display: flex;
    overflow-x: auto;
    padding-bottom: 4px;
    scroll-snap-type: x mandatory;
  }
  .week-tab { min-width: 108px; text-align: center; scroll-snap-align: start; }
  .week-tab:hover { transform: none; }
  .week-panel { min-height: 420px; padding: 28px; }
  .week-grid { grid-template-columns: 1fr; }
  .video-shell {
    min-height: 280px;
    aspect-ratio: 4 / 3.25;
    border-radius: 24px;
  }
  /* Keep 16:9 on the embed variant at mobile too — the 4/3.25 above was for
     the poster placeholder that no longer applies to the YouTube iframe. */
  .video-shell-embed { aspect-ratio: 16 / 9; min-height: 0; }
  .video-shell::after {
    left: 14px;
    right: 14px;
    bottom: 14px;
    height: 104px;
    border-radius: 18px;
  }
  .mission-card, .academy-card { padding: 18px; border-radius: 20px; }
  .mission-card strong, .academy-card strong { font-size: 1rem; line-height: 1.26; }
  .hero-actions { display: grid; gap: 10px; margin-top: 22px; }
  .video-feature { margin-top: 2px; }
  .earnings-track { grid-template-columns: 1fr; }
  .earnings-track article { min-height: 170px; }
  .earnings-track strong { margin-top: 38px; }
  .earnings-track strong,
  .earnings-track article.peak strong {
    font-size: clamp(2.45rem, 12vw, 3.7rem);
  }
  .market-panel { padding: 24px; border-radius: 24px; }
  .market-panel h3 {
    margin-top: 44px;
    max-width: 100%;
    font-size: clamp(2rem, 10vw, 3.1rem);
  }
  .reason-card { min-height: 245px; }
  .reason-card h3 { margin-top: 46px; }
  .footer-inner { flex-direction: column; align-items: flex-start; }
  .story-label { white-space: normal; }
}

@media (max-width: 720px) {
  .no-wrap { white-space: normal; }
  #momentum-title,
  #academy-title {
    font-size: clamp(2.25rem, 12vw, 3.9rem);
  }
}

@media (max-width: 640px) {
  .award-logo { width: 156px; height: 104px; padding: 14px; border-radius: 18px; }
  .award-logo img { max-height: 70px; }
  .marquee-track { gap: 12px; }
}

@media (max-width: 460px) {
  .hero-actions { display: grid; }
  .button { width: 100%; }
  .mission-card, .vision-note { padding: 18px; }
  .week-panel { padding: 28px; }
}

@media (max-width: 420px) {
  .video-shell { min-height: 260px; }
}
