/* ============================================================
         LIFE 101 — Home
         Single-file static homepage. Shared tokens / components below
         are structured so future pages (about.html, program.html,
         mentors.html, impact_map.html, donate.html, contact.html)
         can reuse the same CSS by extracting this <style> to a
         shared stylesheet later.
         ============================================================ */

      /* ---------- Design tokens ---------- */
      :root {
        --paper: #f5f6f8;
        /* cool off-white background */
        --paper-2: #eceef2;
        /* slightly deeper surface   */
        --ink: #0d1526;
        /* near-black text           */
        --ink-soft: #3a4356;
        /* secondary text            */
        --muted: #737b8c;
        /* tertiary text             */
        --line: #dde1e8;
        /* hairlines / borders       */

        --blue: #1b47c4;
        /* brand royal blue          */
        --blue-deep: #0f265f;
        /* deep editorial blue       */
        --accent: #e14a27;
        /* brand arrow red-orange    */

        --radius: 18px;
        --radius-sm: 12px;
        --maxw: 1200px;
        --ease: cubic-bezier(0.22, 1, 0.36, 1);

        --shadow: 0 30px 60px -30px rgba(13, 21, 38, 0.35);
        --shadow-soft: 0 20px 50px -28px rgba(13, 21, 38, 0.25);

        --font-body: "Inter", system-ui, -apple-system, sans-serif;
        --font-display: "Fraunces", Georgia, "Times New Roman", serif;
      }

      * {
        box-sizing: border-box;
      }

      html {
        scroll-behavior: smooth;
        -webkit-text-size-adjust: 100%;
        overflow-x: hidden;
      }

      body {
        margin: 0;
        background: var(--paper);
        color: var(--ink);
        font-family: var(--font-body);
        font-size: 18px;
        line-height: 1.6;
        -webkit-font-smoothing: antialiased;
        text-rendering: optimizeLegibility;
        overflow-x: hidden;
      }

      img {
        max-width: 100%;
        display: block;
      }

      a {
        color: inherit;
        text-decoration: none;
      }

      ::selection {
        background: var(--blue);
        color: #fff;
      }

      .container {
        width: 100%;
        max-width: var(--maxw);
        margin: 0 auto;
        padding: 0 24px;
      }

      /* -------- logo -------- */

.wordmark {
  display: flex;
  align-items: center;
}

.wordmark__logo {
  height: 60px;      /* bump this up/down until it feels right */
  width: auto;
  display: block;
  border-radius: 14px;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.18);
  transition: transform 0.3s var(--ease), box-shadow 0.3s var(--ease);
}

.wordmark:hover .wordmark__logo {
  transform: translateY(-1px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.22);
}

      /* ---------- Typography helpers ---------- */
      .display {
        font-family: var(--font-display);
        font-weight: 400;
        line-height: 1.02;
        letter-spacing: -0.02em;
        font-optical-sizing: auto;
      }

      .eyebrow {
        font-size: 0.78rem;
        font-weight: 600;
        letter-spacing: 0.22em;
        text-transform: uppercase;
        color: var(--accent);
        display: inline-flex;
        align-items: center;
        gap: 10px;
      }

      .eyebrow::before {
        content: "";
        width: 26px;
        height: 1px;
        background: var(--accent);
        display: inline-block;
      }

      .eyebrow.center {
        justify-content: center;
      }

      .accent-text {
        color: var(--accent);
      }

      .serif-em {
        font-family: var(--font-display);
        font-style: italic;
      }

      /* ---------- Skip link ---------- */
      .skip-link {
        position: fixed;
        left: 16px;
        top: -60px;
        z-index: 200;
        background: var(--ink);
        color: #fff;
        padding: 10px 16px;
        border-radius: 8px;
        transition: top 0.25s var(--ease);
      }

      .skip-link:focus {
        top: 16px;
      }

      /* ---------- Screen-reader-only content ----------
         Use this for headings/labels that exist for accessibility
         but shouldn't render visually. Do NOT reuse .skip-link for
         this - it's a fixed, focus-triggered UI element, and hiding
         it at top:-60px only works for very short one-line text;
         anything longer overflows that 60px offset and bleeds back
         into view at the top of the page. */
      .sr-only {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
        border: 0;
      }

      /* ---------- Buttons ---------- */
      .btn {
        --btn-bg: var(--ink);
        --btn-fg: #fff;
        display: inline-flex;
        align-items: center;
        gap: 10px;
        padding: 15px 26px;
        border-radius: 100px;
        font-weight: 600;
        font-size: 0.98rem;
        letter-spacing: 0.01em;
        background: var(--btn-bg);
        color: var(--btn-fg);
        border: 1px solid transparent;
        cursor: pointer;
        transition: transform 0.4s var(--ease), background 0.3s var(--ease),
          color 0.3s var(--ease), box-shadow 0.4s var(--ease);
        will-change: transform;
      }

      .btn svg {
        width: 18px;
        height: 18px;
        transition: transform 0.4s var(--ease);
      }

      .btn:hover {
        transform: translateY(-3px);
        box-shadow: var(--shadow-soft);
      }

      .btn:hover svg {
        transform: translateX(4px);
      }

      .btn:focus-visible {
        outline: 3px solid var(--blue);
        outline-offset: 3px;
      }

      .btn--accent {
        --btn-bg: var(--accent);
        --btn-fg: #fff;
      }

      .btn--blue {
        --btn-bg: var(--blue);
        --btn-fg: #fff;
      }

      .btn--light {
        --btn-bg: rgba(255, 255, 255, 0.12);
        --btn-fg: #fff;
        border-color: rgba(255, 255, 255, 0.4);
        backdrop-filter: blur(6px);
      }

      .btn--light:hover {
        --btn-bg: #fff;
        --btn-fg: var(--ink);
      }

      .btn--ghost {
        --btn-bg: transparent;
        --btn-fg: var(--ink);
        border-color: var(--line);
      }

      .btn--ghost:hover {
        --btn-bg: var(--ink);
        --btn-fg: #fff;
      }

      .btn--lg {
        padding: 18px 32px;
        font-size: 1.02rem;
      }

      .btn--block {
        width: 100%;
        justify-content: center;
      }

      .textlink {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        font-weight: 600;
        color: var(--blue-deep);
        border-bottom: 1px solid transparent;
        transition: gap 0.3s var(--ease), border-color 0.3s var(--ease);
      }

      .textlink svg {
        width: 16px;
        height: 16px;
      }

      .textlink:hover {
        gap: 12px;
        border-color: currentColor;
      }

      /* ============================================================
         NAVIGATION
         ============================================================ */
      .nav {
        position: fixed;
        inset: 0 0 auto 0;
        z-index: 100;
        transition: background 0.4s var(--ease), box-shadow 0.4s var(--ease),
          border-color 0.4s var(--ease);
        border-bottom: 1px solid transparent;
      }

      .nav__inner {
        max-width: var(--maxw);
        margin: 0 auto;
        padding: 20px 24px;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 24px;
        transition: padding 0.4s var(--ease);
      }

      /* scrolled state */
      .nav.is-scrolled {
        background: rgba(245, 246, 248, 0.75);
        backdrop-filter: saturate(180%) blur(18px);
        -webkit-backdrop-filter: saturate(180%) blur(18px);
        border-color: var(--line);
      }

      .nav.is-scrolled .nav__inner {
        padding: 12px 24px;
      }

      /* Wordmark (logo image) */

      .nav__links {
        display: flex;
        align-items: center;
        gap: 4px;
        list-style: none;
        margin: 0;
        padding: 0;
      }

      .nav__link {
        position: relative;
        padding: 8px 14px;
        font-size: 0.92rem;
        font-weight: 500;
        color: rgba(255, 255, 255, 0.9);
        border-radius: 100px;
        transition: color 0.3s var(--ease), background 0.3s var(--ease);
      }

      .nav__link::after {
        content: "";
        position: absolute;
        left: 14px;
        right: 14px;
        bottom: 4px;
        height: 1.5px;
        background: var(--accent);
        transform: scaleX(0);
        transform-origin: left;
        transition: transform 0.35s var(--ease);
      }

      .nav__link:hover::after,
      .nav__link[aria-current="page"]::after {
        transform: scaleX(1);
      }

      .nav.is-scrolled .nav__link {
        color: var(--ink-soft);
      }

      .nav.is-scrolled .nav__link:hover {
        color: var(--ink);
      }

      .nav__cta {
        padding: 11px 22px;
      }

      .nav__actions {
        display: flex;
        align-items: center;
        gap: 14px;
      }

      /* Hamburger */
      .nav__toggle {
        display: none;
        position: relative;
        flex-direction: column;
        gap: 5px;
        width: 44px;
        height: 44px;
        align-items: center;
        justify-content: center;
        background: transparent;
        border: 0;
        cursor: pointer;
        z-index: 130;
      }

      .nav__toggle span {
        width: 24px;
        height: 2px;
        background: #fff;
        border-radius: 2px;
        transition: transform 0.35s var(--ease), opacity 0.25s var(--ease), background 0.4s var(--ease);
      }

      .nav.is-scrolled .nav__toggle span {
        background: var(--ink);
      }

      body.menu-open .nav__toggle span,
      body.menu-open .nav.is-scrolled .nav__toggle span {
        background: #fff;
      }

      body.menu-open .nav__toggle span:nth-child(1) {
        transform: translateY(7px) rotate(45deg);
      }

      body.menu-open .nav__toggle span:nth-child(2) {
        opacity: 0;
      }

      body.menu-open .nav__toggle span:nth-child(3) {
        transform: translateY(-7px) rotate(-45deg);
      }

      /* Mobile fullscreen menu */
      body.menu-open {
        overflow: hidden;
      }

      body.menu-open .nav {
        background: transparent;
        border-color: transparent;
        box-shadow: none;
      }

      body.menu-open .nav__inner {
        padding: 20px 24px;
      }

      .mobile-menu {
        position: fixed;
        inset: 0;
        z-index: 90;
        background: var(--ink);
        color: #fff;
        display: flex;
        flex-direction: column;
        justify-content: flex-start;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        padding: calc(96px + env(safe-area-inset-top)) 28px calc(32px + env(safe-area-inset-bottom));
        gap: 0;
        clip-path: circle(0% at calc(100% - 46px) 40px);
        transition: clip-path 0.6s var(--ease);
        pointer-events: none;
      }

      body.menu-open .mobile-menu {
        clip-path: circle(150% at calc(100% - 46px) 40px);
        pointer-events: auto;
      }

      .mobile-menu a {
        font-family: var(--font-display);
        font-size: clamp(1.5rem, 7vw, 2.1rem);
        font-weight: 500;
        letter-spacing: -0.01em;
        padding: 14px 0;
        border-bottom: 1px solid rgba(255, 255, 255, 0.1);
        color: #fff;
        opacity: 0;
        transform: translateY(20px);
        transition: opacity 0.5s var(--ease), transform 0.5s var(--ease), color 0.3s var(--ease), border-color 0.3s var(--ease);
      }

      .mobile-menu a:first-child {
        padding-top: 0;
      }

      .mobile-menu a:hover,
      .mobile-menu a:active {
        color: var(--accent);
        border-color: rgba(255, 255, 255, 0.1);
      }

      body.menu-open .mobile-menu a {
        opacity: 1;
        transform: none;
      }

      body.menu-open .mobile-menu a:nth-child(1) {
        transition-delay: 0.15s;
      }

      body.menu-open .mobile-menu a:nth-child(2) {
        transition-delay: 0.20s;
      }

      body.menu-open .mobile-menu a:nth-child(3) {
        transition-delay: 0.25s;
      }

      body.menu-open .mobile-menu a:nth-child(4) {
        transition-delay: 0.30s;
      }

      body.menu-open .mobile-menu a:nth-child(5) {
        transition-delay: 0.35s;
      }

      body.menu-open .mobile-menu a:nth-child(6) {
        transition-delay: 0.40s;
      }

      body.menu-open .mobile-menu a:nth-child(7) {
        transition-delay: 0.45s;
      }

      .mobile-menu__cta {
        margin-top: 20px;
      }

      .mobile-menu__cta .btn {
        opacity: 0;
        transform: translateY(20px);
        transition: opacity 0.5s 0.5s var(--ease), transform 0.5s 0.5s var(--ease);
      }

      body.menu-open .mobile-menu__cta .btn {
        opacity: 1;
        transform: none;
      }

      /* ============================================================
         HERO
         ============================================================ */
      .hero {
        position: relative;
        min-height: 100svh;
        display: flex;
        align-items: flex-end;
        overflow: hidden;
        color: #fff;
      }

      .hero__stage {
        position: absolute;
        inset: 0;
        z-index: 0;
      }

      /* Each .hero__slide is a wrapper that cross-fades in/out. Inside it,
         a responsive fallback <picture> sits behind a responsive <video> -
         if the video can't load, the fallback image shows through. */
      .hero__slide {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        opacity: 0;
        transform: scale(1.06);
        transition: opacity 2.2s var(--ease);
      }

      .hero__slide.is-active {
        opacity: 1;
        animation: kenburns 18s var(--ease) forwards;
      }

      .hero__fallback,
      .hero__fallback img,
      .hero__video {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
      }

      .hero__fallback img {
        display: block;
      }

      /* Video sits above its fallback image, dimmed and slightly
         desaturated so it stays a calm backdrop and the hero text pops. */
      .hero__video {
        filter: brightness(0.76) saturate(0.85);
      }

      @keyframes kenburns {
        from {
          transform: scale(1.12);
        }

        to {
          transform: scale(1.0);
        }
      }

      .hero__overlay {
        position: absolute;
        inset: 0;
        z-index: 1;
        background:
          linear-gradient(to top, rgba(9, 14, 26, 0.88) 0%, rgba(9, 14, 26, 0.46) 40%, rgba(9, 14, 26, 0.22) 70%, rgba(9, 14, 26, 0.42) 100%),
          linear-gradient(to right, rgba(9, 14, 26, 0.5), rgba(9, 14, 26, 0));
      }

      .hero__inner {
        position: relative;
        z-index: 2;
        padding-top: 140px;
        padding-bottom: 96px;
      }

      .hero__badge {
        display: inline-flex;
        align-items: center;
        gap: 10px;
        font-size: 0.82rem;
        font-weight: 500;
        letter-spacing: 0.02em;
        padding: 8px 16px;
        border-radius: 100px;
        background: rgba(255, 255, 255, 0.1);
        border: 1px solid rgba(255, 255, 255, 0.22);
        backdrop-filter: blur(6px);
        margin-bottom: 28px;
      }

      .hero__badge .pulse {
        width: 8px;
        height: 8px;
        border-radius: 50%;
        background: var(--accent);
        box-shadow: 0 0 0 0 rgba(225, 74, 39, 0.7);
        animation: pulse 2.4s infinite;
      }

      @keyframes pulse {
        0% {
          box-shadow: 0 0 0 0 rgba(225, 74, 39, 0.6);
        }

        70% {
          box-shadow: 0 0 0 12px rgba(225, 74, 39, 0);
        }

        100% {
          box-shadow: 0 0 0 0 rgba(225, 74, 39, 0);
        }
      }

      .hero__title {
        margin: 0 0 22px;
        font-family: var(--font-display);
        font-weight: 400;
        font-size: clamp(2.7rem, 7.2vw, 6rem);
        line-height: 1.0;
        letter-spacing: -0.025em;
        max-width: 16ch;
        text-wrap: balance;
        text-shadow: 0 2px 28px rgba(0, 0, 0, 0.4);
      }

      .hero__title em {
        font-style: italic;
        color: #fff;
      }

      .hero__title .u {
        position: relative;
        white-space: nowrap;
      }

      .hero__title .u::after {
        content: "";
        position: absolute;
        left: 0;
        right: 0;
        bottom: 0.05em;
        height: 0.08em;
        background: var(--accent);
        border-radius: 2px;
      }

      .hero__mission {
        font-family: var(--font-display);
        font-style: italic;
        font-size: clamp(1.15rem, 2.4vw, 1.5rem);
        color: rgba(255, 255, 255, 0.92);
        margin: 0 0 12px;
        text-shadow: 0 1px 18px rgba(0, 0, 0, 0.35);
      }

      .hero__lead {
        max-width: 56ch;
        color: rgba(255, 255, 255, 0.82);
        font-size: 1.05rem;
        margin: 0 0 34px;
      }

      .hero__actions {
        display: flex;
        flex-wrap: wrap;
        gap: 14px;
        align-items: center;
        margin-bottom: 40px;
      }

      .hero__watch {
        display: inline-flex;
        align-items: center;
        gap: 12px;
        color: #fff;
        font-weight: 500;
      }

      .hero__watch .play {
        width: 44px;
        height: 44px;
        border-radius: 50%;
        border: 1px solid rgba(255, 255, 255, 0.5);
        display: grid;
        place-items: center;
        transition: background 0.3s var(--ease), transform 0.3s var(--ease);
      }

      .hero__watch:hover .play {
        background: rgba(255, 255, 255, 0.15);
        transform: scale(1.06);
      }

      .hero__watch svg {
        width: 15px;
        height: 15px;
        margin-left: 2px;
      }

      .hero__trust {
        display: flex;
        flex-wrap: wrap;
        gap: 10px 26px;
        list-style: none;
        margin: 0;
        padding: 22px 0 0;
        border-top: 1px solid rgba(255, 255, 255, 0.18);
        font-size: 0.86rem;
        color: rgba(255, 255, 255, 0.78);
      }

      .hero__trust li {
        display: flex;
        align-items: center;
        gap: 8px;
      }

      .hero__trust li::before {
        content: "";
        width: 6px;
        height: 6px;
        border-radius: 50%;
        background: var(--accent);
      }

      /* carousel progress dots */
      .hero__dots {
        position: absolute;
        z-index: 3;
        right: 24px;
        bottom: 40px;
        display: flex;
        flex-direction: column;
        gap: 10px;
      }

      .hero__dot {
        width: 8px;
        height: 8px;
        border-radius: 50%;
        background: rgba(255, 255, 255, 0.35);
        border: 0;
        cursor: pointer;
        padding: 0;
        transition: background 0.3s var(--ease), transform 0.3s var(--ease);
      }

      .hero__dot.is-active {
        background: #fff;
        transform: scale(1.4);
      }

      .scroll-cue {
        position: absolute;
        left: 50%;
        bottom: 26px;
        transform: translateX(-50%);
        z-index: 3;
        color: rgba(255, 255, 255, 0.75);
        font-size: 0.72rem;
        letter-spacing: 0.2em;
        text-transform: uppercase;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 8px;
      }

      .scroll-cue .line {
        width: 1px;
        height: 40px;
        background: linear-gradient(to bottom, rgba(255, 255, 255, 0.7), transparent);
        animation: cue 2s infinite;
      }

      @keyframes cue {
        0% {
          transform: scaleY(0);
          transform-origin: top;
        }

        50% {
          transform: scaleY(1);
          transform-origin: top;
        }

        51% {
          transform-origin: bottom;
        }

        100% {
          transform: scaleY(0);
          transform-origin: bottom;
        }
      }

      /* ============================================================
         SECTION SCAFFOLD
         ============================================================ */
      .section {
        padding: clamp(72px, 11vw, 140px) 0;
        position: relative;
      }

      .section-head {
        max-width: 760px;
      }

      .section-head.center {
        margin: 0 auto;
        text-align: center;
      }

      .section-title {
        font-family: var(--font-display);
        font-weight: 400;
        font-size: clamp(2rem, 4.6vw, 3.5rem);
        line-height: 1.05;
        letter-spacing: -0.02em;
        margin: 18px 0 0;
        text-wrap: balance;
      }

      .section-lead {
        color: var(--ink-soft);
        font-size: 1.1rem;
        margin: 22px 0 0;
        max-width: 62ch;
      }

      .section-head.center .section-lead {
        margin-left: auto;
        margin-right: auto;
      }

      /* ---------- Reality ---------- */
      .reality {
        background: var(--paper);
      }

      .reality__grid {
        display: grid;
        grid-template-columns: 1.05fr 0.95fr;
        gap: clamp(40px, 6vw, 88px);
        align-items: center;
      }

      .reality__stats {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 28px;
        margin-top: 44px;
        padding-top: 40px;
        border-top: 1px solid var(--line);
      }

      .stat-n {
        font-family: var(--font-display);
        font-size: clamp(2.6rem, 5vw, 3.6rem);
        line-height: 1;
        color: var(--blue-deep);
        letter-spacing: -0.02em;
      }

      .stat-t {
        color: var(--muted);
        font-size: 0.92rem;
        margin-top: 10px;
      }

      .reality__media {
        position: relative;
      }

      .reality__media img {
        width: 100%;
        aspect-ratio: 4 / 5;
        object-fit: cover;
        border-radius: var(--radius);
        box-shadow: var(--shadow);
      }

      .reality__float {
        position: absolute;
        left: -18px;
        bottom: 40px;
        background: #fff;
        border-radius: var(--radius-sm);
        padding: 20px 22px;
        max-width: 220px;
        box-shadow: var(--shadow-soft);
        border: 1px solid var(--line);
      }

      .reality__float .big {
        font-family: var(--font-display);
        font-size: 2.4rem;
        color: var(--accent);
        line-height: 1;
      }

      .reality__float .sm {
        font-size: 0.82rem;
        color: var(--ink-soft);
        margin-top: 6px;
      }

      /* ---------- Mission (iconic) ---------- */
      .mission {
        background: var(--ink);
        color: #fff;
        text-align: center;
        overflow: hidden;
      }

      .mission .eyebrow {
        color: #ff8b6b;
      }

      .mission .eyebrow::before {
        background: #ff8b6b;
      }

      .mission__big {
        font-family: var(--font-display);
        font-weight: 300;
        font-size: clamp(2.6rem, 8vw, 6.5rem);
        line-height: 1.02;
        letter-spacing: -0.03em;
        margin: 24px auto 0;
        max-width: 15ch;
      }

      .mission__big .word {
        display: inline-block;
      }

      .mission__big .b1 {
        color: #fff;
      }

      .mission__big .b2 {
        color: #8fb0ff;
      }

      .mission__big .b3 {
        color: var(--accent);
      }

      .mission__sub {
        color: rgba(255, 255, 255, 0.72);
        max-width: 60ch;
        margin: 34px auto 0;
        font-size: 1.1rem;
      }

      /* ---------- Programs (editorial list) ---------- */
      .programs__top {
        display: grid;
        grid-template-columns: 1fr auto;
        gap: 30px;
        align-items: end;
        margin-bottom: 20px;
      }

      .programs__list {
        border-top: 1px solid var(--line);
        margin-top: 30px;
      }

      .program-row {
        display: grid;
        grid-template-columns: 90px 1fr auto;
        gap: 28px;
        align-items: center;
        padding: 30px 0;
        border-bottom: 1px solid var(--line);
        position: relative;
        transition: padding 0.5s var(--ease);
      }

      .program-row__num {
        font-family: var(--font-display);
        font-size: 1rem;
        color: var(--muted);
      }

      .program-row__title {
        font-family: var(--font-display);
        font-size: clamp(1.5rem, 3.4vw, 2.4rem);
        letter-spacing: -0.02em;
        transition: color 0.4s var(--ease), transform 0.5s var(--ease);
      }

      .program-row__desc {
        color: var(--muted);
        max-width: 46ch;
        font-size: 0.98rem;
        margin-top: 6px;
        transition: color 0.4s var(--ease);
      }

      .program-row__arrow {
        width: 46px;
        height: 46px;
        border-radius: 50%;
        border: 1px solid var(--line);
        display: grid;
        place-items: center;
        color: var(--ink);
        transition: background 0.4s var(--ease), color 0.4s var(--ease), transform 0.4s var(--ease);
      }

      .program-row__arrow svg {
        width: 18px;
        height: 18px;
      }

      .program-row:hover .program-row__title {
        color: var(--blue);
        transform: translateX(6px);
      }

      .program-row:hover .program-row__arrow {
        background: var(--accent);
        color: #fff;
        transform: rotate(-45deg);
      }

      .programs__feature {
        margin-top: 56px;
        position: relative;
        border-radius: var(--radius);
        overflow: hidden;
        min-height: 420px;
        display: flex;
        align-items: flex-end;
        color: #fff;
        box-shadow: var(--shadow);
      }

      .programs__feature img {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
      }

      .programs__feature::after {
        content: "";
        position: absolute;
        inset: 0;
        background: linear-gradient(to top, rgba(9, 14, 26, 0.85), rgba(9, 14, 26, 0.1));
      }

      .programs__feature-body {
        position: relative;
        z-index: 2;
        padding: clamp(28px, 5vw, 56px);
        max-width: 640px;
      }

      .programs__feature-body h3 {
        font-family: var(--font-display);
        font-weight: 400;
        font-size: clamp(1.6rem, 3.4vw, 2.6rem);
        line-height: 1.08;
        margin: 0 0 12px;
      }

      .programs__feature-body p {
        color: rgba(255, 255, 255, 0.85);
        margin: 0 0 22px;
      }

      /* ---------- Impact ---------- */
      .impact {
        background: var(--paper-2);
      }

      .impact__grid {
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        gap: 1px;
        margin-top: 56px;
        background: var(--line);
        border: 1px solid var(--line);
        border-radius: var(--radius);
        overflow: hidden;
      }

      .impact__cell {
        background: var(--paper);
        padding: 40px 30px;
      }

      .impact__cell .n {
        font-family: var(--font-display);
        font-size: clamp(2.6rem, 5vw, 4rem);
        line-height: 1;
        letter-spacing: -0.02em;
        color: var(--blue-deep);
      }

      .impact__cell .n .suffix {
        color: var(--accent);
      }

      .impact__cell .l {
        margin-top: 14px;
        font-weight: 600;
        font-size: 0.95rem;
      }

      .impact__cell .s {
        color: var(--muted);
        font-size: 0.85rem;
        margin-top: 4px;
      }

      .impact__note {
        margin-top: 24px;
        color: var(--muted);
        font-size: 0.85rem;
      }

      /* ---------- Mentors ---------- */
      .mentors__grid {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 26px;
        margin-top: 56px;
      }

      .mentor {
        position: relative;
        border-radius: var(--radius);
        overflow: hidden;
        aspect-ratio: 3 / 4;
        color: #fff;
        display: flex;
        align-items: flex-end;
        box-shadow: var(--shadow-soft);
      }

      .mentor img {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
        transition: transform 0.9s var(--ease);
      }

      .mentor::after {
        content: "";
        position: absolute;
        inset: 0;
        background: linear-gradient(to top, rgba(9, 14, 26, 0.9) 0%, rgba(9, 14, 26, 0.1) 55%, transparent 100%);
      }

      .mentor:hover img {
        transform: scale(1.06);
      }

      .mentor__body {
        position: relative;
        z-index: 2;
        padding: 26px;
      }

      .mentor__role {
        font-size: 0.78rem;
        letter-spacing: 0.16em;
        text-transform: uppercase;
        color: #ffb59e;
      }

      .mentor__name {
        font-family: var(--font-display);
        font-size: 1.5rem;
        margin: 6px 0 8px;
      }

      .mentor__quote {
        font-size: 0.92rem;
        color: rgba(255, 255, 255, 0.85);
      }

      /* ---------- $1 / week campaign ---------- */
      .dollar {
        background: var(--blue-deep);
        color: #fff;
        text-align: center;
        overflow: hidden;
        position: relative;
      }

      .dollar::before {
        content: "$1";
        position: absolute;
        top: -6%;
        left: 50%;
        transform: translateX(-50%);
        font-family: var(--font-display);
        font-size: clamp(16rem, 42vw, 40rem);
        color: rgba(255, 255, 255, 0.045);
        line-height: 1;
        pointer-events: none;
        z-index: 0;
      }

      .dollar .container {
        position: relative;
        z-index: 1;
      }

      .dollar .eyebrow {
        color: #ff8b6b;
      }

      .dollar .eyebrow::before {
        background: #ff8b6b;
      }

      .dollar__title {
        font-family: var(--font-display);
        font-weight: 300;
        font-size: clamp(2.4rem, 7vw, 5.5rem);
        line-height: 1.03;
        letter-spacing: -0.03em;
        margin: 22px auto 0;
        max-width: 18ch;
      }

      .dollar__title b {
        font-weight: 600;
        color: #ffc9b8;
      }

      .dollar__math {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        align-items: center;
        gap: clamp(18px, 5vw, 60px);
        margin: 48px 0;
      }

      .dollar__math .item .n {
        font-family: var(--font-display);
        font-size: clamp(2rem, 5vw, 3.4rem);
        color: #fff;
      }

      .dollar__math .item .l {
        color: rgba(255, 255, 255, 0.6);
        font-size: 0.85rem;
        letter-spacing: 0.04em;
      }

      .dollar__math .op {
        font-family: var(--font-display);
        font-size: 2rem;
        color: #8fb0ff;
      }

      .dollar__sub {
        color: rgba(255, 255, 255, 0.78);
        max-width: 56ch;
        margin: 0 auto 32px;
      }

      /* ---------- Transparency ---------- */
      .trust__grid {
        display: grid;
        grid-template-columns: 0.9fr 1.1fr;
        gap: clamp(40px, 6vw, 80px);
        align-items: center;
      }

      .trust__points {
        list-style: none;
        margin: 34px 0 0;
        padding: 0;
      }

      .trust__points li {
        display: flex;
        gap: 16px;
        padding: 22px 0;
        border-top: 1px solid var(--line);
      }

      .trust__points li:last-child {
        border-bottom: 1px solid var(--line);
      }

      .trust__ico {
        flex: none;
        width: 42px;
        height: 42px;
        border-radius: 12px;
        background: rgba(27, 71, 196, 0.1);
        color: var(--blue);
        display: grid;
        place-items: center;
      }

      .trust__ico svg {
        width: 20px;
        height: 20px;
      }

      .trust__points h4 {
        margin: 0 0 4px;
        font-size: 1.05rem;
      }

      .trust__points p {
        margin: 0;
        color: var(--muted);
        font-size: 0.94rem;
      }

      .trust__card {
        background: var(--ink);
        color: #fff;
        border-radius: var(--radius);
        padding: clamp(30px, 4vw, 48px);
        box-shadow: var(--shadow);
      }

      .trust__card .tag {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        font-size: 0.78rem;
        letter-spacing: 0.12em;
        text-transform: uppercase;
        color: #ffb59e;
        margin-bottom: 22px;
      }

      .trust__ledger {
        list-style: none;
        margin: 0;
        padding: 0;
      }

      .trust__ledger li {
        display: flex;
        justify-content: space-between;
        align-items: baseline;
        padding: 16px 0;
        border-bottom: 1px dashed rgba(255, 255, 255, 0.16);
        font-size: 0.95rem;
      }

      .trust__ledger .amt {
        font-family: var(--font-display);
        font-size: 1.3rem;
      }

      .trust__ledger .in {
        color: #8fe0b0;
      }

      .trust__ledger .out {
        color: #ffc9b8;
      }

      .trust__card .foot {
        margin-top: 22px;
        font-size: 0.82rem;
        color: rgba(255, 255, 255, 0.6);
      }

      /* ---------- Final CTA ---------- */
      .finalcta {
        position: relative;
        color: #fff;
        text-align: center;
        overflow: hidden;
      }

      .finalcta__bg {
        position: absolute;
        inset: 0;
      }

      .finalcta__bg img {
        width: 100%;
        height: 100%;
        object-fit: cover;
      }

      .finalcta__bg::after {
        content: "";
        position: absolute;
        inset: 0;
        background: linear-gradient(to top, rgba(9, 14, 26, 0.9), rgba(9, 14, 26, 0.6));
      }

      .finalcta .container {
        position: relative;
        z-index: 2;
      }

      .finalcta__title {
        font-family: var(--font-display);
        font-weight: 300;
        font-size: clamp(2.4rem, 7vw, 5.5rem);
        line-height: 1.02;
        letter-spacing: -0.03em;
        margin: 20px auto 0;
        max-width: 16ch;
      }

      .finalcta__title em {
        font-style: italic;
        color: #ffc9b8;
      }

      .finalcta__sub {
        color: rgba(255, 255, 255, 0.82);
        max-width: 52ch;
        margin: 26px auto 36px;
      }

      .finalcta__actions {
        display: flex;
        flex-wrap: wrap;
        gap: 14px;
        justify-content: center;
      }

      /* ---------- Footer ---------- */
      .footer {
        background: var(--ink);
        color: rgba(255, 255, 255, 0.7);
        padding: 80px 0 40px;
      }

      .footer__grid {
        display: grid;
        grid-template-columns: 1.4fr 1fr 1fr 1.4fr;
        gap: 40px;
      }

      .footer__brand .wordmark {
        color: #fff;
        font-size: 1.6rem;
      }

      .footer__brand p {
        margin: 18px 0 0;
        max-width: 34ch;
        font-size: 0.94rem;
      }

      .footer__brand .logo {
        height: 34px;
        width: auto;
        background: #fff;
        padding: 6px 10px;
        border-radius: 8px;
        margin-top: 20px;
      }

      .footer h5 {
        color: #fff;
        font-size: 0.78rem;
        letter-spacing: 0.14em;
        text-transform: uppercase;
        margin: 0 0 18px;
      }

      .footer ul {
        list-style: none;
        margin: 0;
        padding: 0;
        display: grid;
        gap: 12px;
      }

      .footer ul a {
        font-size: 0.94rem;
        transition: color 0.3s var(--ease);
      }

      .footer ul a:hover {
        color: #fff;
      }

      .footer__news form {
        display: flex;
        gap: 8px;
        margin-top: 14px;
      }

      .footer__news input {
        flex: 1;
        min-width: 0;
        background: rgba(255, 255, 255, 0.08);
        border: 1px solid rgba(255, 255, 255, 0.18);
        color: #fff;
        border-radius: 100px;
        padding: 12px 18px;
        font: inherit;
        font-size: 0.9rem;
      }

      .footer__news input::placeholder {
        color: rgba(255, 255, 255, 0.45);
      }

      .footer__news button {
        border: 0;
        background: var(--accent);
        color: #fff;
        border-radius: 50%;
        width: 44px;
        height: 44px;
        flex: none;
        cursor: pointer;
        display: grid;
        place-items: center;
        transition: transform 0.3s var(--ease);
      }

      .footer__news button:hover {
        transform: translateX(2px) scale(1.05);
      }

      .footer__social {
        display: flex;
        gap: 12px;
        margin-top: 20px;
      }

      .footer__social a {
        width: 40px;
        height: 40px;
        border-radius: 50%;
        border: 1px solid rgba(255, 255, 255, 0.2);
        display: grid;
        place-items: center;
        transition: background 0.3s var(--ease), border-color 0.3s var(--ease);
      }

      .footer__social a:hover {
        background: rgba(255, 255, 255, 0.12);
        border-color: rgba(255, 255, 255, 0.4);
      }

      .footer__social svg {
        width: 18px;
        height: 18px;
      }

      .footer__bar {
        margin-top: 56px;
        padding-top: 26px;
        border-top: 1px solid rgba(255, 255, 255, 0.12);
        display: flex;
        justify-content: space-between;
        flex-wrap: wrap;
        gap: 12px;
        font-size: 0.82rem;
        color: rgba(255, 255, 255, 0.5);
      }

      .footer__bar .badge501 {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        padding: 5px 12px;
        border-radius: 100px;
        border: 1px solid rgba(255, 255, 255, 0.18);
      }

      /* ============================================================
         REVEAL ANIMATIONS
         ============================================================ */
      [data-reveal] {
        opacity: 0;
        transform: translateY(28px);
        transition: opacity 0.9s var(--ease), transform 0.9s var(--ease);
        transition-delay: var(--d, 0s);
      }

      [data-reveal="right"] {
        transform: translateX(40px);
      }

      [data-reveal].in {
        opacity: 1;
        transform: none;
      }

      /* hero staggered intro */
      .fx {
        opacity: 0;
        transform: translateY(24px);
      }

      .hero.ready .fx {
        opacity: 1;
        transform: none;
        transition: opacity 1s var(--ease), transform 1s var(--ease);
      }

      .hero.ready .fx:nth-child(1) {
        transition-delay: .15s
      }

      .hero.ready .fx:nth-child(2) {
        transition-delay: .28s
      }

      .hero.ready .fx:nth-child(3) {
        transition-delay: .40s
      }

      .hero.ready .fx:nth-child(4) {
        transition-delay: .52s
      }

      .hero.ready .fx:nth-child(5) {
        transition-delay: .64s
      }

      .hero.ready .fx:nth-child(6) {
        transition-delay: .76s
      }

      /* ============================================================
         RESPONSIVE
         ============================================================ */
      @media (max-width: 1000px) {
        .footer__grid {
          grid-template-columns: 1fr 1fr;
          gap: 40px;
        }

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

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

      @media (max-width: 860px) {

        .nav__links,
        .nav__actions .nav__cta {
          display: none;
        }

        .nav__toggle {
          display: flex;
        }

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

        .reality__media {
          order: -1;
        }

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

        .programs__top {
          grid-template-columns: 1fr;
          align-items: start;
        }

        .program-row {
          grid-template-columns: 40px 1fr;
        }

        .program-row__arrow {
          display: none;
        }
      }

      @media (max-width: 560px) {
        body {
          font-size: 17px;
        }

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

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

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

        .reality__float {
          left: 12px;
          right: 12px;
          bottom: 12px;
          max-width: none;
        }

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

        .hero__dots {
          display: none;
        }
      }

      /* ============================================================
         REDUCED MOTION
         ============================================================ */
      @media (prefers-reduced-motion: reduce) {
        html {
          scroll-behavior: auto;
        }

        *,
        *::before,
        *::after {
          animation-duration: 0.001ms !important;
          animation-iteration-count: 1 !important;
          transition-duration: 0.001ms !important;
        }

        .hero__slide {
          transform: none !important;
        }

        [data-reveal],
        .fx {
          opacity: 1 !important;
          transform: none !important;
        }
      }

      /* ============================================================
         INTERIOR PAGE COMPONENTS
         (page hero, breadcrumb, mission/vision/values, founder,
          timeline, values grid, CTA band) — shared across
          about / program / mentors / contact pages.
         ============================================================ */

      /* ---------- Page hero (compact interior header) ---------- */
      .page-hero {
        position: relative;
        color: #fff;
        overflow: hidden;
        padding: clamp(150px, 20vh, 220px) 0 clamp(60px, 9vw, 100px);
        display: flex;
        align-items: flex-end;
      }

      .page-hero__bg {
        position: absolute;
        inset: 0;
        z-index: 0;
      }

      .page-hero__bg img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        transform: scale(1.05);
        animation: kenburns 16s var(--ease) forwards;
      }

      .page-hero::after {
        content: "";
        position: absolute;
        inset: 0;
        z-index: 1;
        background:
          linear-gradient(to top, rgba(9, 14, 26, 0.9) 0%, rgba(9, 14, 26, 0.5) 55%, rgba(9, 14, 26, 0.55) 100%);
      }

      .page-hero .container {
        position: relative;
        z-index: 2;
      }

      .page-hero .eyebrow {
        color: #ff8b6b;
      }

      .page-hero .eyebrow::before {
        background: #ff8b6b;
      }

      .page-hero__title {
        font-family: var(--font-display);
        font-weight: 400;
        font-size: clamp(2.6rem, 7vw, 5.2rem);
        line-height: 1.02;
        letter-spacing: -0.025em;
        margin: 18px 0 0;
        max-width: 18ch;
        text-wrap: balance;
      }

      .page-hero__title em {
        font-style: italic;
        color: #ffc9b8;
      }

      .page-hero__lead {
        margin: 22px 0 0;
        max-width: 60ch;
        color: rgba(255, 255, 255, 0.85);
        font-size: 1.1rem;
      }

      /* ---------- Breadcrumb ---------- */
      .crumb {
        position: relative;
        z-index: 2;
        display: flex;
        gap: 10px;
        align-items: center;
        font-size: 0.82rem;
        color: rgba(255, 255, 255, 0.6);
        margin-bottom: 6px;
      }

      .crumb a {
        color: rgba(255, 255, 255, 0.8);
      }

      .crumb a:hover {
        color: #fff;
      }

      .crumb span {
        opacity: 0.5;
      }

      /* ---------- Two-column narrative ---------- */
      .narrative__grid {
        display: grid;
        grid-template-columns: 1.05fr 0.95fr;
        gap: clamp(40px, 6vw, 88px);
        align-items: center;
      }

      .narrative__body p {
        color: var(--ink-soft);
        margin: 0 0 20px;
      }

      .narrative__body p:last-child {
        margin-bottom: 0;
      }

      .narrative__media img {
        width: 100%;
        aspect-ratio: 4 / 5;
        object-fit: cover;
        border-radius: var(--radius);
        box-shadow: var(--shadow);
      }

      .narrative--flip .narrative__media {
        order: -1;
      }

      .pull {
        font-family: var(--font-display);
        font-style: italic;
        font-size: clamp(1.3rem, 2.6vw, 1.8rem);
        line-height: 1.3;
        color: var(--blue-deep);
        border-left: 3px solid var(--accent);
        padding-left: 22px;
        margin: 28px 0;
      }

      /* ---------- Mission / Vision / Values cards ---------- */
      .vmv {
        background: var(--paper-2);
      }

      .vmv__grid {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 24px;
        margin-top: 56px;
      }

      .vmv__card {
        background: var(--paper);
        border: 1px solid var(--line);
        border-radius: var(--radius);
        padding: 38px 32px;
        transition: transform 0.5s var(--ease), box-shadow 0.5s var(--ease);
      }

      .vmv__card:hover {
        transform: translateY(-6px);
        box-shadow: var(--shadow-soft);
      }

      .vmv__ico {
        width: 52px;
        height: 52px;
        border-radius: 14px;
        background: rgba(27, 71, 196, 0.1);
        color: var(--blue);
        display: grid;
        place-items: center;
        margin-bottom: 22px;
      }

      .vmv__ico svg {
        width: 24px;
        height: 24px;
      }

      .vmv__card h3 {
        font-family: var(--font-display);
        font-size: 1.6rem;
        margin: 0 0 12px;
        font-weight: 400;
      }

      .vmv__card p {
        color: var(--muted);
        margin: 0;
        font-size: 0.98rem;
      }

      /* ---------- Founder letter ---------- */
      .founder {
        background: var(--ink);
        color: #fff;
      }

      .founder__grid {
        display: grid;
        grid-template-columns: 0.8fr 1.2fr;
        gap: clamp(40px, 6vw, 80px);
        align-items: center;
      }

      .founder__media img {
        width: 100%;
        aspect-ratio: 4 / 5;
        object-fit: cover;
        border-radius: var(--radius);
        box-shadow: var(--shadow);
      }

      .founder .eyebrow {
        color: #ff8b6b;
      }

      .founder .eyebrow::before {
        background: #ff8b6b;
      }

      .founder__quote {
        font-family: var(--font-display);
        font-weight: 300;
        font-size: clamp(1.6rem, 3.4vw, 2.5rem);
        line-height: 1.22;
        letter-spacing: -0.02em;
        margin: 20px 0 0;
      }

      .founder__quote .accent-text {
        color: #ffc9b8;
      }

      .founder__body {
        color: rgba(255, 255, 255, 0.78);
        margin: 24px 0 0;
      }

      .founder__sign {
        margin-top: 28px;
        display: flex;
        align-items: center;
        gap: 16px;
      }

      .founder__sign .name {
        font-family: var(--font-display);
        font-size: 1.3rem;
        color: #fff;
      }

      .founder__sign .role {
        font-size: 0.85rem;
        color: rgba(255, 255, 255, 0.6);
      }

      /* ---------- Timeline ---------- */
      .timeline {
        position: relative;
        margin-top: 56px;
      }

      .timeline::before {
        content: "";
        position: absolute;
        left: 120px;
        top: 6px;
        bottom: 6px;
        width: 1px;
        background: var(--line);
      }

      .tl-row {
        display: grid;
        grid-template-columns: 120px 1fr;
        gap: 40px;
        padding: 22px 0;
        position: relative;
      }

      .tl-row__year {
        font-family: var(--font-display);
        font-size: 1.5rem;
        color: var(--blue-deep);
        text-align: right;
        padding-right: 34px;
      }

      .tl-row__dot {
        position: absolute;
        left: 114px;
        top: 32px;
        width: 13px;
        height: 13px;
        border-radius: 50%;
        background: var(--accent);
        border: 3px solid var(--paper);
        box-shadow: 0 0 0 1px var(--line);
      }

      .tl-row__body h4 {
        margin: 0 0 6px;
        font-size: 1.15rem;
      }

      .tl-row__body p {
        margin: 0;
        color: var(--muted);
        font-size: 0.96rem;
      }

      /* ---------- Values row ---------- */
      .values__list {
        border-top: 1px solid var(--line);
        margin-top: 44px;
      }

      .value-row {
        display: grid;
        grid-template-columns: 60px 1fr;
        gap: 28px;
        padding: 30px 0;
        border-bottom: 1px solid var(--line);
        align-items: start;
      }

      .value-row__n {
        font-family: var(--font-display);
        color: var(--accent);
        font-size: 1.2rem;
      }

      .value-row h4 {
        font-family: var(--font-display);
        font-weight: 400;
        font-size: clamp(1.3rem, 2.6vw, 1.8rem);
        margin: 0 0 8px;
      }

      .value-row p {
        margin: 0;
        color: var(--muted);
        max-width: 60ch;
      }

      /* ---------- CTA band (reusable) ---------- */
      .ctaband {
        position: relative;
        color: #fff;
        text-align: center;
        overflow: hidden;
        background: var(--blue-deep);
      }

      .ctaband__bg {
        position: absolute;
        inset: 0;
        z-index: 0;
        opacity: 0.28;
      }

      .ctaband__bg img {
        width: 100%;
        height: 100%;
        object-fit: cover;
      }

      .ctaband::after {
        content: "";
        position: absolute;
        inset: 0;
        z-index: 1;
        background: linear-gradient(to top, rgba(15, 38, 95, 0.7), rgba(15, 38, 95, 0.55));
      }

      .ctaband .container {
        position: relative;
        z-index: 2;
      }

      .ctaband__title {
        font-family: var(--font-display);
        font-weight: 300;
        font-size: clamp(2.2rem, 6vw, 4.6rem);
        line-height: 1.04;
        letter-spacing: -0.03em;
        margin: 18px auto 0;
        max-width: 18ch;
      }

      .ctaband__title em {
        font-style: italic;
        color: #ffc9b8;
      }

      .ctaband .eyebrow {
        color: #ff8b6b;
      }

      .ctaband .eyebrow::before {
        background: #ff8b6b;
      }

      .ctaband__sub {
        color: rgba(255, 255, 255, 0.82);
        max-width: 52ch;
        margin: 24px auto 34px;
      }

      .ctaband__actions {
        display: flex;
        flex-wrap: wrap;
        gap: 14px;
        justify-content: center;
      }

      @media (max-width: 900px) {
        .narrative__grid {
          grid-template-columns: 1fr;
        }

        .narrative__media {
          order: -1;
        }

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

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

        .founder__media {
          max-width: 380px;
        }
      }

      @media (max-width: 560px) {
        .timeline::before {
          left: 6px;
        }

        .tl-row {
          grid-template-columns: 1fr;
          gap: 6px;
          padding-left: 30px;
        }

        .tl-row__year {
          text-align: left;
          padding-right: 0;
        }

        .tl-row__dot {
          left: 0;
          top: 30px;
        }

        .value-row {
          grid-template-columns: 40px 1fr;
          gap: 16px;
        }
      }