/* SceneFinalZoom - Technology, Sacredness, and Refusal */

/* Scene container */
.sceneFinalZoom {
  position: relative;
  width: 100vw;
  min-height: 260vh; /* Tighter — SceneReferences appears sooner */
  overflow: hidden;
}

/* Fullscreen background - fixed, with zoom capability */
.sceneFinalZoom__background {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  z-index: 1800;
  overflow: hidden;
  pointer-events: none;
  /* Smooth opacity entrance */
  transition: opacity 0.6s ease-out;
  will-change: opacity;
}

/* Background image — JS applies scale(S) translate(tx%, ty%) each scroll frame */
.sceneFinalZoom__bg-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  /*
   * transform-origin must be 50% 50% (center).
   * The JS translate() moves the cross to viewport center algebraically;
   * transform-origin at a non-center point would break that math.
   */
  transform-origin: 50% 50%;
  will-change: transform;
  transition: none; /* JS drives every frame — no CSS transition interference */
}

/* Content wrapper - scrolls on top of background */
.sceneFinalZoom__content {
  position: relative;
  z-index: 1801;
  padding-top: 30vh;
  padding-bottom: 50vh;
}

/* Individual block */
.sceneFinalZoom__block {
  position: relative;
  min-height: 60vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 2rem;
}

/* Text box styling */
.sceneFinalZoom__text {
  max-width: 760px;
  padding: 2.5rem 3rem;
  background: rgba(0, 0, 0, 0.55);
  backdrop-filter: blur(14px);
  border-radius: 14px;
  
  font-family: Helvetica, 'Helvetica Neue', Arial, sans-serif;
  font-size: 1.18rem;
  font-weight: 400;
  color: white;
  text-align: left;
  line-height: 1.85;
  letter-spacing: 0.01em;
  
  /* Initial hidden state */
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

/* Visible state */
.sceneFinalZoom__text.visible {
  opacity: 1;
  transform: translateY(0);
}

/* Exit state - drifts upward */
.sceneFinalZoom__text.exit {
  opacity: 0;
  transform: translateY(-60px);
}

.sceneFinalZoom__text p {
  margin: 0;
}

.sceneFinalZoom__text p + p {
  margin-top: 1.5rem;
}

/* ── CTA: isolated "Continue scrolling" prompt ──────────────────────────── */
.sceneFinalZoom__cta-wrapper {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.6rem;
  margin-top: 5vh;
  padding-bottom: 4vh;

  /* Enter from below */
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 0.9s ease-out, transform 0.9s ease-out;
}

.sceneFinalZoom__cta-wrapper.visible {
  opacity: 1;
  transform: translateY(0);
}

.sceneFinalZoom__cta {
  margin: 0;
  font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-size: 1.25rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-align: center;

  /* Pulsing glow between dark greys so it reads on the image */
  animation: cta-glow 2.4s ease-in-out infinite;
}

.sceneFinalZoom__cta-arrow {
  display: block;
  font-size: 1.4rem;
  color: #111;
  animation: cta-bounce 2.4s ease-in-out infinite;
}

@keyframes cta-glow {
  0%, 100% {
    color: #1a1a1a;
    text-shadow:
      0 0 0px transparent;
  }
  50% {
    color: #000;
    text-shadow:
      0 2px 12px rgba(0, 0, 0, 0.5),
      0 0 30px rgba(0, 0, 0, 0.2);
  }
}

@keyframes cta-bounce {
  0%, 100% { transform: translateY(0);   opacity: 0.6; }
  50%       { transform: translateY(6px); opacity: 1;   }
}
/* ─────────────────────────────────────────────────────────────────────── */

/* Responsive adjustments */
@media (max-width: 1024px) {
  .sceneFinalZoom__text {
    font-size: 1.1rem;
    padding: 2rem 2.5rem;
    max-width: 90%;
  }
}

@media (max-width: 768px) {
  .sceneFinalZoom__text {
    font-size: 1rem;
    padding: 1.5rem 1.8rem;
    max-width: 95%;
    line-height: 1.75;
  }
  
  .sceneFinalZoom__block {
    min-height: 50vh;
  }
}

