body.intro-pending .vault-logo {
  opacity: 0.16;
  transform: translate(-50%, -50%) scale(0.66) rotate(-10deg);
}

body.intro-pending .hero-layer-stack li {
  opacity: 0;
  transform: translate3d(-54px, 0, 0) rotateY(12deg);
}

body.intro-pending .hero-telemetry {
  opacity: 0;
  transform: translate3d(36px, 0, 0);
}

body.intro-pending .hero-copy > * {
  opacity: 0.72;
  filter: blur(2px);
  transform: translate3d(0, 10px, 0);
}

body.intro-playing .hero-media {
  animation: vault-camera-lock 4.2s cubic-bezier(0.22, 1, 0.36, 1) both;
}

body.intro-playing .vault-logo {
  animation: vault-logo-lock 2.2s 0.45s cubic-bezier(0.2, 0.82, 0.24, 1) both;
}

body.intro-playing .hero-layer-stack li {
  animation: layer-card-enter 620ms calc(0.62s + (var(--layer-index) * 90ms)) cubic-bezier(0.16, 1, 0.3, 1) both;
}

body.intro-playing .hero-telemetry {
  animation: telemetry-enter 760ms 2.05s cubic-bezier(0.16, 1, 0.3, 1) both;
}

body.intro-playing .hero-copy > * {
  animation: hero-copy-resolve 760ms calc(2.72s + (var(--copy-index, 0) * 80ms)) ease both;
}

body.intro-playing .hero-copy > :nth-child(1) { --copy-index: 0; }
body.intro-playing .hero-copy > :nth-child(2) { --copy-index: 1; }
body.intro-playing .hero-copy > :nth-child(3) { --copy-index: 2; }
body.intro-playing .hero-copy > :nth-child(4) { --copy-index: 3; }
body.intro-playing .hero-copy > :nth-child(5) { --copy-index: 4; }
body.intro-playing .hero-copy > :nth-child(6) { --copy-index: 5; }

body.intro-complete .vault-logo,
body.intro-complete .hero-layer-stack li,
body.intro-complete .hero-telemetry,
body.intro-complete .hero-copy > * {
  opacity: 1;
  filter: none;
  transform: translate(-50%, -50%);
}

body.intro-complete .hero-layer-stack li,
body.intro-complete .hero-telemetry,
body.intro-complete .hero-copy > * {
  transform: none;
}

body.intro-complete .skip-intro {
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
}

.vault-logo {
  transition: filter 280ms ease;
}

.hero:hover .vault-logo {
  filter: drop-shadow(0 0 34px rgba(12, 127, 255, 0.58)) drop-shadow(0 0 18px rgba(255, 173, 47, 0.28));
}

.hero-scroll-cue span {
  animation: cue-line 2.2s ease-in-out infinite;
}

.reveal-enabled [data-reveal] {
  opacity: 0;
  filter: blur(5px);
  transform: translate3d(0, 24px, 0);
  transition: opacity 700ms ease, filter 700ms ease, transform 700ms cubic-bezier(0.16, 1, 0.3, 1);
}

.reveal-enabled [data-reveal].is-visible {
  opacity: 1;
  filter: none;
  transform: none;
}

.pain-list li:nth-child(2),
.value-columns article:nth-child(2) {
  transition-delay: 80ms;
}

.pain-list li:nth-child(3),
.value-columns article:nth-child(3) {
  transition-delay: 140ms;
}

.pain-list li:nth-child(4) {
  transition-delay: 200ms;
}

@keyframes vault-camera-lock {
  0% { opacity: 0.58; transform: scale(1.12) translate3d(-1.4%, 0, 0); filter: saturate(0.72) brightness(0.74); }
  32% { opacity: 0.9; filter: saturate(1.1) brightness(1); }
  72% { transform: scale(1.025) translate3d(0.2%, 0, 0); }
  100% { opacity: 1; transform: scale(1.02) translate3d(0, 0, 0); filter: none; }
}

@keyframes vault-logo-lock {
  0% { opacity: 0.12; transform: translate(-50%, -50%) scale(0.62) rotate(-12deg); }
  55% { opacity: 1; transform: translate(-50%, -50%) scale(1.08) rotate(2deg); }
  72% { transform: translate(-50%, -50%) scale(0.96) rotate(0deg); }
  100% { opacity: 1; transform: translate(-50%, -50%) scale(1) rotate(0deg); }
}

@keyframes layer-card-enter {
  from { opacity: 0; transform: translate3d(-58px, 0, 0) rotateY(12deg); }
  to { opacity: 1; transform: translate3d(0, 0, 0) rotateY(0); }
}

@keyframes telemetry-enter {
  from { opacity: 0; transform: translate3d(40px, 0, 0); }
  to { opacity: 1; transform: none; }
}

@keyframes hero-copy-resolve {
  from { opacity: 0.72; filter: blur(2px); transform: translate3d(0, 10px, 0); }
  to { opacity: 1; filter: none; transform: none; }
}

@keyframes cue-line {
  0%, 100% { opacity: 0.28; transform: scaleX(0.65); transform-origin: right; }
  50% { opacity: 0.9; transform: scaleX(1); transform-origin: right; }
}

@media (prefers-reduced-motion: reduce) {
  body.intro-pending .vault-logo,
  body.intro-pending .hero-layer-stack li,
  body.intro-pending .hero-telemetry,
  body.intro-pending .hero-copy > *,
  .reveal-enabled [data-reveal] {
    opacity: 1;
    filter: none;
  }

  body.intro-pending .vault-logo {
    transform: translate(-50%, -50%);
  }

  body.intro-pending .hero-layer-stack li,
  body.intro-pending .hero-telemetry,
  body.intro-pending .hero-copy > *,
  .reveal-enabled [data-reveal] {
    transform: none;
  }

  .hero-scroll-cue span {
    animation: none;
  }
}
