  :root {
    --bone: #EAE6DC;
    --bone-light: #F1EEE7;
    --bone-dark: #DED9CC;
    --ink: #17150F;
    --charcoal: #14120E;
    --charcoal-2: #1C1915;
    --gold: #A8823F;
    --gold-bright: #C9A45C;
    --gold-pale: #D9C08A;
    --line: rgba(23, 21, 15, 0.16);
    --line-strong: rgba(23, 21, 15, 0.32);
  }
  * { margin: 0; padding: 0; box-sizing: border-box; }
  html { scroll-behavior: auto; }
  body {
    background: var(--bone);
    color: var(--ink);
    font-family: 'Inter', system-ui, sans-serif;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    overflow-x: hidden;
  }
  ::selection { background: var(--gold); color: #fff; }

  .display { font-family: 'Anton', sans-serif; font-weight: 400; text-transform: uppercase; }
  .mono { font-family: 'IBM Plex Mono', monospace; }

  .label {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 11px;
    letter-spacing: 0.32em;
    text-transform: uppercase;
    font-weight: 500;
  }
  .label--gold { color: var(--gold); }

  video { display: block; }

  /* ---------- NAV ---------- */
  .nav {
    position: fixed; top: 0; left: 0; right: 0; z-index: 60;
    display: flex; align-items: center; justify-content: space-between;
    padding: 0 clamp(20px, 4vw, 56px);
    height: 76px;
    transition: background 400ms ease, box-shadow 400ms ease, height 400ms ease;
  }
  .nav.is-solid {
    background: rgba(234, 230, 220, 0.88);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    box-shadow: 0 1px 0 var(--line);
    height: 64px;
  }
  .nav__brand { display: flex; align-items: center; gap: 12px; text-decoration: none; color: var(--bone-light); }
  .nav__mark {
    width: 34px; height: 34px; border-radius: 50%;
    background: var(--ink); color: var(--bone);
    display: grid; place-items: center; flex-shrink: 0;
    box-shadow: 0 0 0 1px rgba(234,230,220,0.25);
  }
  .nav__mark svg { width: 16px; height: 16px; }
  .nav__name { font-family: 'IBM Plex Mono', monospace; font-weight: 600; font-size: 14px; letter-spacing: 0.22em; text-shadow: 0 1px 10px rgba(0,0,0,0.45); }
  .nav__links { display: flex; align-items: center; gap: clamp(18px, 3vw, 40px); }
  .nav__links a {
    font-family: 'IBM Plex Mono', monospace; font-size: 11px; font-weight: 500;
    letter-spacing: 0.26em; text-transform: uppercase;
    color: var(--bone-light); opacity: 0.9; text-decoration: none;
    text-shadow: 0 1px 4px rgba(0,0,0,0.7), 0 1px 14px rgba(0,0,0,0.5);
    transition: opacity 200ms ease, color 200ms ease;
  }
  .nav__links a:hover { opacity: 1; }
  .nav__links a.nav__cta {
    opacity: 1; background: var(--ink); color: var(--bone);
    padding: 10px 22px; transition: background 200ms ease;
    box-shadow: 0 0 0 1px rgba(234,230,220,0.25);
    text-shadow: none;
  }
  .nav__links a.nav__cta:hover { background: #2A261C; }
  .nav.is-solid .nav__brand, .nav.is-solid .nav__links a:not(.nav__cta) { color: var(--ink); text-shadow: none; }
  .nav.is-solid .nav__mark, .nav.is-solid .nav__cta { box-shadow: none; }
  @media (max-width: 720px) { .nav__links a:not(.nav__cta) { display: none; } }
  @media (max-width: 480px) {
    .nav__name { font-size: 11px; letter-spacing: 0.14em; }
    .nav__links a.nav__cta { padding: 9px 14px; letter-spacing: 0.16em; }
  }

  /* ---------- HERO ---------- */
  .hero {
    position: relative; min-height: 100svh;
    background: var(--charcoal);
    overflow: hidden;
    display: flex; flex-direction: column;
  }
  .hero__media { position: absolute; inset: 0; z-index: 0; }
  .hero__media video, .hero__media img {
    position: absolute; left: 0; top: -7%; width: 114%; height: 114%; object-fit: cover;
    object-position: 62% 40%;
  }
  .hero__content {
    position: relative; z-index: 10;
    flex: 1; display: flex; flex-direction: column; justify-content: center;
    padding: 120px clamp(20px, 5vw, 72px) 90px;
    max-width: 960px;
  }
  .hero__eyebrow { display: flex; align-items: center; gap: 14px; margin-bottom: clamp(20px, 3vh, 36px); }
  .hero__eyebrow .label { color: #6E521E; font-weight: 600; text-shadow: 0 0 14px rgba(241,238,231,0.9); }
  .hero__laurel { width: 30px; height: 30px; color: #7A5D25; flex-shrink: 0; }
  .hero__h1 {
    font-size: clamp(58px, 9.2vw, 152px);
    line-height: 0.98;
    letter-spacing: 0.005em;
    color: var(--ink);
  }
  .hero__h1 .line { display: block; overflow: hidden; }
  .hero__h1 .line > span { display: block; will-change: transform; }
  .hero__rule {
    width: 76px; height: 3px; background: var(--gold);
    margin: clamp(22px, 3.4vh, 40px) 0;
  }
  .hero__sub {
    font-size: clamp(16px, 1.5vw, 20px);
    line-height: 1.55; max-width: 520px;
    color: rgba(23, 21, 15, 0.82);
    margin-bottom: clamp(28px, 4vh, 44px);
  }
  .hero__ctas { display: flex; gap: 16px; flex-wrap: wrap; }
  .btn {
    display: inline-flex; align-items: center; gap: 12px;
    font-family: 'IBM Plex Mono', monospace; font-size: 12px; font-weight: 600;
    letter-spacing: 0.24em; text-transform: uppercase;
    padding: 17px 30px; text-decoration: none;
    transition: transform 200ms ease, background 200ms ease, color 200ms ease, border-color 200ms ease;
  }
  .btn:hover { transform: scale(1.02); }
  .btn .arrow { transition: transform 250ms ease; }
  .btn:hover .arrow { transform: translateX(5px); }
  .btn--solid { background: var(--ink); color: var(--bone); }
  .btn--solid:hover { background: #2A261C; }
  .btn--outline {
    border: 1px solid var(--line-strong); color: var(--ink);
    background: rgba(234, 230, 220, 0.34);
    backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
  }
  .btn--outline:hover { background: var(--ink); color: var(--bone); border-color: var(--ink); }
  .btn--gold { background: var(--gold); color: #fff; }
  .btn--gold:hover { background: var(--gold-bright); }
  .btn--ghost-light { border: 1px solid rgba(234,230,220,0.35); color: var(--bone); background: transparent; }
  .btn--ghost-light:hover { background: var(--bone); color: var(--ink); border-color: var(--bone); }

  .hero__strip {
    position: relative; z-index: 10;
    display: flex; align-items: center; gap: 16px;
    padding: 18px clamp(20px, 5vw, 72px);
    background: rgba(234, 230, 220, 0.82);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border-top: 1px solid var(--line);
  }
  .hero__strip svg { width: 15px; height: 15px; color: var(--gold); }

  /* ---------- ZOOM (scroll-scrubbed ascent) ---------- */
  .ascent { position: relative; background: var(--charcoal); }
  .ascent__stage { position: relative; height: 100vh; overflow: hidden; }
  .ascent__stage video {
    /* starts on the hero-matching reframe; JS eases it back to full frame during the flight */
    position: absolute; left: 0; top: -7%; width: 114%; height: 114%; object-fit: cover;
    object-position: 62% 40%;
  }
  .ascent__stage img.ascent__fallback {
    position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
  }
  .ascent__fog {
    position: absolute; left: 0; right: 0; bottom: 0; height: 52%;
    z-index: 5; pointer-events: none; opacity: 0;
    background: linear-gradient(to bottom,
      rgba(241,238,231,0) 0%,
      rgba(241,238,231,0.35) 38%,
      rgba(241,238,231,0.78) 68%,
      rgba(241,238,231,0.97) 100%);
  }
  .flash {
    position: fixed; inset: 0; z-index: 80;
    background: var(--bone-light);
    opacity: 0; pointer-events: none;
  }
  .ascent__caption {
    position: absolute; inset: 0; z-index: 10;
    display: grid; place-items: center;
    text-align: center; pointer-events: none;
  }
  .ascent__caption > div { opacity: 0; }
  .ascent__caption .label { color: rgba(255,255,255,0.85); text-shadow: 0 1px 12px rgba(0,0,0,0.35); margin-bottom: 14px; display: block; }
  .ascent__caption h2 {
    font-size: clamp(40px, 6vw, 96px); line-height: 1;
    color: #fff; text-shadow: 0 2px 30px rgba(0,0,0,0.35);
  }

  /* ---------- SECTION SHARED ---------- */
  .section { position: relative; padding: clamp(80px, 11vw, 150px) clamp(20px, 5vw, 72px); }
  .section__head { display: flex; align-items: center; gap: 18px; margin-bottom: clamp(40px, 6vw, 72px); }
  .numeral {
    font-family: 'IBM Plex Mono', monospace; font-weight: 600;
    color: var(--gold); border: 1px solid var(--gold);
    font-size: 13px; padding: 5px 10px; line-height: 1;
  }
  .section__title { letter-spacing: 0.3em; }
  .section__spacer { flex: 1; }
  .section__aside { font-family: 'IBM Plex Mono', monospace; font-size: 10px; letter-spacing: 0.3em; text-transform: uppercase; color: var(--gold); opacity: 0.9; }
  @media (max-width: 720px) { .section__aside { display: none; } }

  .reveal { opacity: 0; transform: translateY(36px); }

  /* ---------- PILLARS ---------- */
  .pillars { background: var(--bone); }
  .pillars__bg {
    position: absolute; top: 0; left: 0; right: 0; height: 520px;
    background-size: cover; background-position: center 30%;
    -webkit-mask-image: linear-gradient(to bottom, rgba(0,0,0,0.5), transparent);
    mask-image: linear-gradient(to bottom, rgba(0,0,0,0.5), transparent);
    pointer-events: none;
  }
  .pillars__fog {
    position: absolute; top: 0; left: 0; right: 0; height: 260px;
    background: linear-gradient(to bottom,
      rgba(241,238,231,0.97) 0%,
      rgba(241,238,231,0.62) 45%,
      rgba(241,238,231,0) 100%);
    pointer-events: none;
  }
  .pillars__grid {
    position: relative;
    display: grid; grid-template-columns: repeat(3, 1fr);
    border: 1px solid var(--line-strong);
    background: rgba(241, 238, 231, 0.72);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
  }
  .pillar { padding: clamp(28px, 3.5vw, 52px); position: relative; }
  .pillar + .pillar { border-left: 1px solid var(--line); }
  .pillar__icon { width: 46px; height: 46px; color: var(--gold); margin-bottom: 22px; }
  .pillar__icon svg { width: 100%; height: 100%; }
  .pillar h3 { font-size: clamp(20px, 1.9vw, 26px); letter-spacing: 0.08em; margin-bottom: 14px; }
  .pillar p { font-size: 15px; line-height: 1.65; color: rgba(23,21,15,0.75); margin-bottom: 26px; }
  .pillar a {
    font-family: 'IBM Plex Mono', monospace; font-size: 11px; font-weight: 600;
    letter-spacing: 0.26em; text-transform: uppercase; color: var(--ink);
    text-decoration: none; display: inline-flex; align-items: center; gap: 10px;
  }
  .pillar a .arrow { transition: transform 250ms ease; }
  .pillar a:hover .arrow { transform: translateX(5px); }
  @media (max-width: 860px) {
    .pillars__grid { grid-template-columns: 1fr; }
    .pillar + .pillar { border-left: none; border-top: 1px solid var(--line); }
  }

  /* ---------- BUILD CARDS ---------- */
  .build { background: var(--bone-dark); }
  .build__grid {
    display: grid; grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: clamp(10px, 1vw, 16px);
  }
  @media (max-width: 1180px) { .build__grid { grid-template-columns: repeat(3, 1fr); } }
  @media (max-width: 720px) { .build__grid { grid-template-columns: repeat(2, 1fr); } }
  @media (max-width: 480px) { .build__grid { grid-template-columns: 1fr; } }
  .bcard {
    position: relative; aspect-ratio: 3 / 4; overflow: hidden;
    background: var(--charcoal);
    border: 1px solid rgba(168, 130, 63, 0.25);
    transition: border-color 350ms ease, transform 350ms ease;
  }
  .bcard:hover { border-color: rgba(201, 164, 92, 0.7); transform: translateY(-4px); }
  .bcard__media { position: absolute; inset: 0; }
  .bcard__media video, .bcard__media img {
    position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
    transition: transform 700ms cubic-bezier(0.22, 1, 0.36, 1);
  }
  .bcard:hover .bcard__media video, .bcard:hover .bcard__media img { transform: scale(1.045); }
  .bcard__scrim {
    position: absolute; inset: 0; z-index: 4; pointer-events: none;
    background: linear-gradient(to top,
      rgba(8, 7, 5, 0.94) 0%,
      rgba(8, 7, 5, 0.62) 32%,
      rgba(8, 7, 5, 0.22) 58%,
      rgba(8, 7, 5, 0.08) 100%);
  }
  .bcard__body {
    position: absolute; left: 0; right: 0; bottom: 0; z-index: 5;
    padding: 16px 16px 18px;
  }
  .bcard__rule { width: 28px; height: 2px; background: var(--gold-bright); margin-bottom: 10px; }
  .bcard h3 { font-size: 17px; letter-spacing: 0.1em; color: #F4F0E6; margin-bottom: 7px; }
  .bcard p { font-size: 13.5px; line-height: 1.5; color: rgba(244, 240, 230, 0.85); }
  @media (max-width: 1180px) {
    .bcard__body { padding: 20px 20px 22px; }
    .bcard h3 { font-size: 18px; }
    .bcard p { font-size: 13px; }
  }

  /* ---------- PROOF ---------- */
  .proof { background: var(--bone-dark); }
  .proof__grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(14px, 1.6vw, 24px); margin-bottom: clamp(28px, 4vw, 44px); }
  @media (max-width: 860px) { .proof__grid { grid-template-columns: 1fr; } }
  .quote {
    background: var(--bone-light); border: 1px solid var(--line);
    padding: clamp(28px, 3.4vw, 48px);
  }
  .quote__mark { font-family: 'Anton', sans-serif; font-size: 54px; line-height: 0.6; color: var(--gold); margin-bottom: 22px; }
  .quote p { font-size: clamp(16px, 1.4vw, 19px); line-height: 1.6; margin-bottom: 26px; }
  .quote footer { font-family: 'IBM Plex Mono', monospace; font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase; color: rgba(23,21,15,0.65); }
  .quote footer strong { color: var(--ink); display: block; margin-bottom: 5px; }
  .proof__more { text-align: center; }
  .proof__more a {
    font-family: 'IBM Plex Mono', monospace; font-size: 12px; font-weight: 600;
    letter-spacing: 0.26em; text-transform: uppercase; color: var(--ink);
    text-decoration: none; display: inline-flex; align-items: center; gap: 12px;
  }
  .proof__more a .arrow { transition: transform 250ms ease; }
  .proof__more a:hover .arrow { transform: translateX(5px); }

  /* ---------- FOUNDERS ---------- */
  .founders { background: var(--charcoal-2); color: var(--bone); overflow: hidden; }
  .founders .section__title { color: var(--gold-bright); }
  .founders__intro { max-width: 560px; font-size: 15.5px; line-height: 1.65; color: rgba(234,230,220,0.65); margin: -28px 0 56px; }
  .founders__row {
    display: flex; align-items: flex-end; justify-content: center;
    gap: clamp(32px, 8vw, 130px);
    padding-top: 20px;
  }
  .founder {
    position: relative; cursor: pointer; text-align: center;
    transition: opacity 400ms ease, filter 400ms ease, transform 400ms ease;
    -webkit-tap-highlight-color: transparent;
  }
  .founder img {
    position: relative; z-index: 2;
    height: clamp(300px, 36vw, 520px); width: auto;
    filter: drop-shadow(0 22px 48px rgba(0,0,0,0.7));
    transition: filter 400ms ease;
    -webkit-mask-image: linear-gradient(to bottom, #000 86%, transparent 99%);
    mask-image: linear-gradient(to bottom, #000 86%, transparent 99%);
  }
  .founder__tag {
    position: relative; z-index: 2;
    margin-top: 18px;
    font-family: 'IBM Plex Mono', monospace; font-size: 11px; font-weight: 500;
    letter-spacing: 0.3em; text-transform: uppercase;
    color: rgba(234,230,220,0.45);
    transition: color 300ms ease;
  }
  .founders__row.focused .founder { opacity: 0.16; filter: saturate(0.3); }
  .founders__row.focused .founder.on { opacity: 1; filter: none; transform: translateY(-10px); }
  .founders__row.focused .founder.on .founder__tag { color: var(--gold-bright); }
  .founder__aura { position: absolute; inset: -12% -30%; z-index: 1; opacity: 0; transition: opacity 600ms ease; pointer-events: none; }
  .founder.on .founder__aura { opacity: 1; }
  /* violet flame (Nathaniel) */
  .aura--flame span {
    position: absolute; left: 50%; border-radius: 50%;
    mix-blend-mode: screen; filter: blur(26px);
    background: radial-gradient(circle, rgba(196,150,255,0.95) 0%, rgba(139,92,246,0.55) 45%, rgba(109,40,217,0.15) 70%, transparent 78%);
  }
  .aura--flame .f1 { width: 62%; aspect-ratio: 0.62; bottom: 6%; transform: translateX(-50%); animation: flame1 2.6s ease-in-out infinite alternate; }
  .aura--flame .f2 { width: 44%; aspect-ratio: 0.5; bottom: 26%; transform: translateX(-62%); animation: flame2 1.9s ease-in-out infinite alternate; }
  .aura--flame .f3 { width: 36%; aspect-ratio: 0.55; bottom: 40%; transform: translateX(-34%); animation: flame3 2.2s ease-in-out infinite alternate; }
  @keyframes flame1 { from { transform: translateX(-50%) translateY(0) scale(1); opacity: 0.85; } to { transform: translateX(-50%) translateY(-26px) scale(1.09, 1.16); opacity: 1; } }
  @keyframes flame2 { from { transform: translateX(-62%) translateY(0) scale(1); opacity: 0.6; } to { transform: translateX(-56%) translateY(-34px) scale(0.92, 1.2); opacity: 0.95; } }
  @keyframes flame3 { from { transform: translateX(-34%) translateY(0) scale(1); opacity: 0.55; } to { transform: translateX(-42%) translateY(-40px) scale(1.1, 1.24); opacity: 0.9; } }
  /* jade soundwave (Kevin) */
  .aura--wave span {
    position: absolute; left: 50%; top: 38%;
    width: 90px; height: 90px; margin: -45px 0 0 -45px;
    border: 2px solid rgba(74, 222, 159, 0.75); border-radius: 50%;
    opacity: 0; animation: ripple 2.8s linear infinite;
    box-shadow: 0 0 24px rgba(43, 181, 147, 0.35), inset 0 0 24px rgba(43, 181, 147, 0.25);
  }
  .aura--wave .w2 { animation-delay: 0.7s; }
  .aura--wave .w3 { animation-delay: 1.4s; }
  .aura--wave .w4 { animation-delay: 2.1s; }
  .aura--wave .glow {
    width: 60%; height: 46%; margin: 0; left: 20%; top: 18%;
    border: none; border-radius: 50%; animation: jadeglow 3s ease-in-out infinite alternate;
    background: radial-gradient(circle, rgba(74,222,159,0.5) 0%, rgba(43,181,147,0.2) 55%, transparent 75%);
    filter: blur(30px); mix-blend-mode: screen; opacity: 0.9; box-shadow: none;
  }
  @keyframes ripple {
    0% { transform: scale(0.5); opacity: 0; }
    12% { opacity: 0.85; }
    100% { transform: scale(5.6); opacity: 0; }
  }
  @keyframes jadeglow { from { opacity: 0.55; transform: scale(1); } to { opacity: 1; transform: scale(1.12); } }
  .founders__panel { max-width: 640px; margin: 52px auto 0; text-align: center; min-height: 168px; }
  .founders__panel .fp-hint {
    font-family: 'IBM Plex Mono', monospace; font-size: 11px; letter-spacing: 0.24em;
    text-transform: uppercase; color: rgba(234,230,220,0.35); padding-top: 52px;
  }
  .founders__panel .fp-name, .founders__panel .fp-role, .founders__panel .fp-desc { display: none; animation: fp-in 300ms ease; }
  .founders__panel.active .fp-hint { display: none; }
  .founders__panel.active .fp-name, .founders__panel.active .fp-role, .founders__panel.active .fp-desc { display: block; }
  @keyframes fp-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
  .founders__panel .fp-name { font-size: clamp(26px, 2.6vw, 38px); letter-spacing: 0.06em; color: #F4F0E6; }
  .founders__panel .fp-role { margin-top: 8px; font-family: 'IBM Plex Mono', monospace; font-size: 11px; font-weight: 600; letter-spacing: 0.26em; text-transform: uppercase; }
  .founders__panel .fp-desc { margin-top: 16px; font-size: 16px; line-height: 1.65; color: rgba(234,230,220,0.72); }
  @media (max-width: 640px) {
    .founders__row { gap: 20px; }
    .founder img { height: clamp(220px, 44vw, 300px); }
  }

  /* ---------- ENTER ---------- */
  .enter {
    position: relative; background: var(--charcoal); color: var(--bone);
    overflow: hidden;
  }
  .enter__bg {
    position: absolute; inset: -6%;
    background-size: cover; background-position: center 68%;
    opacity: 0.35; will-change: transform;
  }
  .enter__scrim { position: absolute; inset: 0; background: linear-gradient(to right, rgba(12,10,7,0.92) 0%, rgba(12,10,7,0.55) 55%, rgba(12,10,7,0.35) 100%); }
  .enter__inner { position: relative; z-index: 10; max-width: 760px; }
  .enter__laurel { width: 34px; height: 34px; color: var(--gold-bright); margin-bottom: 18px; }
  .enter h2 { font-size: clamp(52px, 7vw, 118px); line-height: 0.98; color: #F4F0E6; margin: 14px 0 26px; }
  .enter p { font-size: clamp(16px, 1.4vw, 19px); line-height: 1.6; color: rgba(244,240,230,0.78); max-width: 480px; margin-bottom: 38px; }
  .enter__ctas { display: flex; gap: 16px; flex-wrap: wrap; }

  /* ---------- FOOTER ---------- */
  .footer { background: #0E0C09; color: rgba(234,230,220,0.7); padding: clamp(56px, 7vw, 90px) clamp(20px, 5vw, 72px) 34px; }
  .footer__top { display: grid; grid-template-columns: 1.4fr repeat(4, 1fr); gap: 32px; padding-bottom: 52px; border-bottom: 1px solid rgba(234,230,220,0.12); }
  @media (max-width: 1000px) { .footer__top { grid-template-columns: 1fr 1fr; } }
  @media (max-width: 560px) { .footer__top { grid-template-columns: 1fr; } }
  .footer__brand .nav__mark { background: var(--bone); color: var(--ink); margin-bottom: 16px; }
  .footer__brand .nav__name { color: var(--bone); display: block; margin-bottom: 8px; }
  .footer__brand .tag { font-family: 'IBM Plex Mono', monospace; font-size: 10px; letter-spacing: 0.28em; color: var(--gold-bright); }
  .footer h4 { font-family: 'IBM Plex Mono', monospace; font-size: 11px; font-weight: 600; letter-spacing: 0.28em; text-transform: uppercase; color: var(--bone); margin-bottom: 18px; }
  .footer ul { list-style: none; }
  .footer li { margin-bottom: 11px; }
  .footer a { color: rgba(234,230,220,0.62); text-decoration: none; font-size: 13.5px; transition: color 200ms ease; }
  .footer a:hover { color: var(--gold-pale); }
  .footer__social { display: flex; gap: 12px; }
  .footer__social a {
    width: 38px; height: 38px; border: 1px solid rgba(234,230,220,0.2); border-radius: 50%;
    display: grid; place-items: center; transition: border-color 200ms ease, color 200ms ease;
  }
  .footer__social a:hover { border-color: var(--gold-pale); color: var(--gold-pale); }
  .footer__social svg { width: 15px; height: 15px; }
  .footer__bottom {
    display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap;
    padding-top: 30px;
    font-family: 'IBM Plex Mono', monospace; font-size: 10px; letter-spacing: 0.24em; text-transform: uppercase;
    color: rgba(234,230,220,0.45);
  }

  @media (prefers-reduced-motion: reduce) {
    .reveal { opacity: 1 !important; transform: none !important; }
    .btn:hover { transform: none; }
  }
  /* ---------- MOBILE PASS ---------- */
  @media (max-width: 720px) {
    /* hero text flips light: the portrait crop puts copy over the dark panel + statue */
    .hero__content { padding: 104px 20px 72px; }
    .hero__eyebrow { flex-wrap: wrap; gap: 10px; }
    .hero__eyebrow .label { font-size: 10px; letter-spacing: 0.18em; color: var(--gold-pale); text-shadow: 0 1px 8px rgba(0,0,0,0.65); }
    .hero__laurel { width: 24px; height: 24px; color: var(--gold-pale); filter: drop-shadow(0 1px 6px rgba(0,0,0,0.5)); }
    .hero__h1 { color: #F1EEE7; text-shadow: 0 2px 10px rgba(0,0,0,0.45), 0 6px 34px rgba(0,0,0,0.35); }
    .hero__sub { color: rgba(241,238,231,0.9); text-shadow: 0 1px 10px rgba(0,0,0,0.55); }
    .hero__ctas .btn--outline { border-color: rgba(241,238,231,0.55); color: #F1EEE7; background: rgba(20,18,14,0.3); }
    .hero__strip { padding: 14px 20px; }
    .hero__strip .label { font-size: 10px; letter-spacing: 0.2em; }
    .ascent__caption { padding: 0 18px; }
    .ascent__caption h2 { font-size: clamp(34px, 9.5vw, 44px); }
    .enter h2 { font-size: clamp(38px, 11.5vw, 52px); }
    .enter p { font-size: 15.5px; }
    .founders__intro { margin: -12px 0 40px; font-size: 14.5px; }
    .founders__panel { min-height: 200px; }
    .founders__panel .fp-desc { font-size: 14.5px; }
    .section__head { flex-wrap: wrap; gap: 12px; }
    .quote { padding: 24px 22px; }
    .quote p { font-size: 15.5px; }
    .btn { padding: 15px 22px; font-size: 11px; letter-spacing: 0.18em; }
  }

  /* QA static mode: fixed section heights so full-page headless captures work */
  html.qa-static .hero { min-height: 940px; max-height: 940px; }
  html.qa-static .ascent__stage { height: 800px; }
  html.qa-static .reveal { opacity: 1 !important; transform: none !important; }

/* ---------- PORTFOLIO (placeholders until event photos and film are added) ---------- */
.portfolio { background: var(--bone); }
.portfolio__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(10px, 1.2vw, 18px); }
.ptile { margin: 0; }
.ptile--wide { grid-column: span 2; }
.ptile__media {
  position: relative; aspect-ratio: 4 / 3; overflow: hidden;
  background: repeating-linear-gradient(135deg, var(--bone-dark) 0 14px, var(--bone-light) 14px 28px);
  border: 1px dashed var(--line-strong);
  display: grid; place-items: center;
}
.ptile--wide .ptile__media { aspect-ratio: auto; height: 100%; min-height: 100%; }
.ptile__media img, .ptile__media video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ptile__ph {
  font-family: 'IBM Plex Mono', monospace; font-size: 10px; letter-spacing: 0.26em; text-transform: uppercase;
  color: rgba(23,21,15,0.55); background: var(--bone-light); padding: 7px 12px; border: 1px solid var(--line);
}
.ptile figcaption { margin-top: 10px; font-family: 'IBM Plex Mono', monospace; font-size: 10.5px; letter-spacing: 0.2em; text-transform: uppercase; color: rgba(23,21,15,0.6); }
.ptile figcaption strong { color: var(--ink); margin-right: 8px; }
.ptile--wide { display: flex; flex-direction: column; }
.ptile--wide .ptile__media { flex: 1; min-height: 220px; }
@media (max-width: 860px) {
  .portfolio__grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 520px) {
  .portfolio__grid { grid-template-columns: 1fr; }
  .ptile--wide { grid-column: auto; }
}
.ptile--tall { grid-row: span 2; display: flex; flex-direction: column; }
.ptile--tall .ptile__media { flex: 1; aspect-ratio: auto; min-height: 320px; }
.ptile__media:has(img), .ptile__media:has(video) { border: 1px solid var(--line); background: var(--charcoal); }
.ptile__media img { transition: transform 700ms cubic-bezier(0.22, 1, 0.36, 1); }
.ptile:hover .ptile__media img { transform: scale(1.04); }
.ascent__start { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 62% 40%; z-index: 4; pointer-events: none; }
@media (max-width: 520px) { .ptile--tall { grid-row: auto; } .ptile--tall .ptile__media { aspect-ratio: 9 / 16; min-height: 0; } }
.ptile--full { grid-column: 1 / -1; }
.ptile--full .ptile__media { aspect-ratio: auto; height: 160px; }
/* hero: soft light wash behind the headline so copy stays clean over the photo */
@media (min-width: 721px) {
  .hero__media::after {
    content: ''; position: absolute; inset: 0; pointer-events: none;
    background: linear-gradient(to right, rgba(241,238,231,0.62) 0%, rgba(241,238,231,0.38) 30%, rgba(241,238,231,0) 52%);
  }
}
@media (min-width: 721px) {
  .nav:not(.is-solid) .nav__brand { color: var(--ink); }
  .nav:not(.is-solid) .nav__name { text-shadow: 0 0 12px rgba(241,238,231,0.8); }
}
@media (max-width: 720px) {
  .hero__media::after {
    content: ''; position: absolute; inset: 0; pointer-events: none;
    background: linear-gradient(to right, rgba(12,10,7,0.62) 0%, rgba(12,10,7,0.3) 60%, rgba(12,10,7,0.1) 100%);
  }
}
