@import url('https://fonts.googleapis.com/css2?family=VT323&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@700&display=swap');

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

body {
  height: 800vh;
  background-color: #03040A;
  font-family: 'Inter', sans-serif;
  overflow-x: hidden;
  color: #fff;
  transition: background-color 2s ease;
}

body:not(.site-revealed) {
  overflow: hidden;
}

body::-webkit-scrollbar {
  width: 10px;
}

body::-webkit-scrollbar-track {
  background: #03040A;
}

body::-webkit-scrollbar-thumb {
  background: #347665;
  border-radius: 5px;
}

/* --- Intro Screen (Stage 0) --- */

.intro-screen {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  z-index: 9999;
  /* Above everything */
  display: flex;
  justify-content: center;
  align-items: center;
  transition: opacity 1.5s cubic-bezier(0.4, 0, 0.2, 1), visibility 1.5s;
  cursor: pointer;
  background-color: #000;
}

.intro-video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  object-fit: cover;
  z-index: 1;
  opacity: 1;
  transition: opacity 1s ease;
}

.intro-content {
  position: relative;
  z-index: 2;
  text-align: center;
}

.intro-prompt,
.scroll-prompt {
  font-family: 'VT323', monospace;
  font-size: 3rem;
  color: #fff;
  text-shadow: 0 0 20px rgba(0, 0, 0, 0.8), 0 0 10px rgba(255, 255, 255, 0.5);
  animation: pulse-glow 2s infinite alternate ease-in-out;
  letter-spacing: 5px;
  text-transform: uppercase;
  pointer-events: none;
}

@keyframes pulse-glow {
  0% {
    opacity: 0.5;
    transform: scale(0.98);
  }

  100% {
    opacity: 1;
    transform: scale(1.05);
  }
}

.intro-hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}


/* Time classes for background base */
body.time-night,
body.time-magic {
  background-color: #0B111A;
}



.scroll-container {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  overflow: hidden;
  transition: transform 1.5s ease-in-out, opacity 2s ease;
  transform-origin: center bottom;
  opacity: 0;
}

body.site-revealed .scroll-container {
  opacity: 1;
}

/* Zoom Stages */
body.zoom-stage-1 .scroll-container {
  transform: scale(1.1);
  /* Reduced zoom for better visibility */
}

/* Delay the scroll container fade-out until the pond stage */
/* Zoom-in transition from Stage 2 to Stage 3 (Pond Meadow) */
body.zoom-stage-3 .scroll-container {
  transform: scale(1.6) translateY(8%);
  opacity: 0;
  transition: transform 1.5s ease-in-out, opacity 1.5s ease-in-out;
}


.final-zoom-screen {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  opacity: 0;
  pointer-events: none;
  background: linear-gradient(180deg, #010B09 0%, #06033B 30%);
  z-index: 200;
  display: flex;
  justify-content: center;
  align-items: center;

  /* Removed entry transform for a smoother, direct transition */
  transition: opacity 1.5s ease-in-out;
}

body.zoom-stage-3 .final-zoom-screen {
  opacity: 1;
  pointer-events: auto;
  filter: brightness(0.9) contrast(1.1) saturate(1.2);
}


/* Layering components for the final screen */
.final-scene-container {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  transform-origin: center 70%;
  /* Focus zoom origin around the tree area */
  transition: transform 7s cubic-bezier(0.19, 1, 0.22, 1);
}

.final-magic-tree-wrapper {
  position: absolute;
  bottom: 25vh;
  /* Centered in pond */
  left: 50%;
  transform: translateX(-50%);
  z-index: 4;
  display: flex;
  justify-content: center;
  align-items: center;
}

.final-magic-tree-wrapper::after {
  content: '';
  position: absolute;
  width: 470px;
  height: 470px;
  background: radial-gradient(circle, rgba(100, 220, 255, 0.5) 0%, rgba(50, 100, 255, 0.2) 40%, transparent 70%);
  z-index: -1;
  filter: blur(30px);
  animation: final-tree-gradient-pulse 5s infinite alternate ease-in-out;
  pointer-events: none;
}

.final-magic-tree {
  object-fit: cover;
  transform: translatex(-10px)translateY(-35px) !important;
  rotate: 10deg;
  mix-blend-mode: screen;
  transition: opacity 0.8s ease;
}

.final-magic-tree-container {
  position: relative;
  width: 50vw;
  max-width: 550px;
  height: 25vw;
  max-height: 240px;
  cursor: pointer;
}

.final-tree-text {
  position: absolute;
  top: 15%;
  left: 50%;
  transform: translateX(-50%) translateY(20px);
  width: 40vw;
  max-width: 450px;
  opacity: 0;
  z-index: 50;
  pointer-events: none;
  transition: opacity 2s ease, transform 2s ease;
}

.final-tree-text.visible {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

.final-magic-tree-video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 1;
}

/* Stage 3 Focus Sequence */
.final-zoom-screen.focus-tree .final-zoom-bg,
.final-zoom-screen.focus-tree .pond-elements,
.final-zoom-screen.focus-tree .pond-celestials,
.final-zoom-screen.focus-tree .final-tree-text,
.final-zoom-screen.focus-tree .final-front-trees {
  opacity: 0.4 !important;
  filter: blur(4px);
  transition: opacity 6s ease, filter 6s ease;
}

.final-zoom-screen.focus-tree .final-scene-container {
  transform: scale(1.3);
}

body.zoom-stage-3 .final-magic-tree {
  animation: final-tree-glow-anim 4s infinite alternate ease-in-out;
  animation-delay: 2s;
}

@keyframes final-tree-glow-anim {
  0% {
    filter: drop-shadow(0 0 20px rgba(100, 200, 255, 0.5)) drop-shadow(0 0 40px rgba(50, 150, 255, 0.3));
  }

  100% {
    filter: drop-shadow(0 0 50px rgba(100, 250, 255, 0.9)) drop-shadow(0 0 100px rgba(100, 200, 255, 0.5));
  }
}

@keyframes final-tree-gradient-pulse {
  0% {
    transform: scale(0.8);
    opacity: 0.4;
  }

  100% {
    transform: scale(1.3);
    opacity: 0.8;
  }
}

.final-front-trees {
  z-index: 15;
  width: 100%;
  transform: translateY(0px) !important;


}

body.zoom-stage-3 .final-zoom-screen {
  opacity: 1;
  pointer-events: auto;
  filter: brightness(0.9) contrast(1.1) saturate(1.2);
}

/* Background dimming animation */
@keyframes dim-elements {
  0% {
    opacity: 1;
  }

  100% {
    opacity: 0.4;
  }
}

body.zoom-stage-3 .final-zoom-bg,
body.zoom-stage-3 .pond-elements,
body.zoom-stage-3 .pond-celestials,
body.zoom-stage-3 .final-front-trees {
  animation: dim-elements 2s forwards;
  animation-delay: 6s;
  /* All elements dim after text and glow are established */
}

.final-zoom-bg,
.pond-elements,
.pond-celestials,
.final-front-trees {
  transition: opacity 2s ease;
}

/* --- Pond Scene (Stage 3) --- */

.pond-elements {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 50vh;
  opacity: 0;
  transition: opacity 2s ease-in-out;
  z-index: 5;
  background: radial-gradient(ellipse at center bottom, rgba(0, 100, 150, 0.3) 0%, transparent 70%);
  /* Subtle pond glow effect */
}

body.zoom-stage-3 .pond-elements {
  opacity: 1;
}



.ripple-1 {
  width: 100%;
  transform: translateY(25px);
}



@keyframes ripple-pulse {
  0% {
    transform: scale(0.95);
    opacity: 0.4;
  }

  50% {
    transform: scale(1.08);
    opacity: 0.8;
  }

  100% {
    transform: scale(0.95);
    opacity: 0.4;
  }
}

.pond-celestials {
  position: absolute;
  top: 10vh;
  left: 0;
  width: 100%;
  height: 40vh;
  pointer-events: none;
  opacity: 0;
  transition: opacity 2s ease;
}

body.zoom-stage-3 .pond-celestials {
  opacity: 1;
}

.mini-moon {
  position: absolute;
  width: 10px;
  height: 10px;
  background: #E6F3FF;
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(150, 201, 255, 0.688), 0 0 40px 15px rgba(100, 150, 255, 0.5);
  animation: star-blink 3s infinite alternate;
}

.moon-1 {
  top: 55%;
  left: 25%;
}

.moon-2 {
  top: 20%;
  left: 40%;
}

.moon-3 {
  top: 45%;
  left: 58%;
}

.moon-4 {
  top: 8%;
  left: 65%;
}

.pond-foreground {
  z-index: 20;
  filter: brightness(0.15) contrast(1.8) saturate(0.8);
  opacity: 0;
  transition: opacity 2s ease;
  bottom: -5vh;
  /* Positioned lower to create deeper pond effect */
}

body.zoom-stage-3 .pond-foreground {
  opacity: 1;
}

/* Adjustments for Tree in Pond */
body.zoom-stage-3 .final-magic-tree-wrapper {
  left: 50%;
  transform: translateX(-50%) scale(1.1);
  transition: opacity 1.5s ease-in-out, transform 2s cubic-bezier(0.4, 0, 0.2, 1);
}

body.zoom-stage-3 .final-stars {
  opacity: 0.6;
  transition: opacity 2s ease;
}

.next-btn-wrapper {
  position: absolute;
  bottom: 5%;
  left: 50%;
  transform: translateX(-50%);
  z-index: 1000;
  opacity: 0;
  pointer-events: none;
  transition: opacity 1.5s ease;
  cursor: pointer;
}

#stage-3-next-wrapper {
  bottom: 12%;
  /* Closer to the tree in the zoom screen */
}

.next-btn-wrapper.visible {
  opacity: 1;
  pointer-events: auto;
}

#stage-4-next-wrapper {
  top: 55%;
  left: 75%;
  bottom: auto;
}

#stage-5-next-wrapper {
  bottom: 15%;
  right: 5%;
  left: auto;
}

#stage-8-next-wrapper {
  bottom: 15%;
  right: 5%;
  left: auto;
}

#stage-9-next-wrapper {
  bottom: 15%;
  right: 5%;
  left: auto;
}

#stage-10-next-wrapper {
  bottom: 20%;
  left: 50%;
  transform: translateX(-50%);
}

@keyframes btn-glow-pulse {
  0% {
    filter: drop-shadow(0 0 8px rgba(255, 255, 100, 0.4)) brightness(1);
  }

  100% {
    filter: drop-shadow(0 0 20px rgba(255, 255, 0, 0.8)) brightness(1.3);
  }
}

.next-btn-img {
  width: 200px;
  height: auto;
  transition: filter 0.4s ease, transform 0.2s ease;
  animation: btn-glow-pulse 2s infinite alternate ease-in-out;
}

.next-btn-img:hover {
  transform: scale(1.05);
  animation-play-state: paused;
}

.next-btn-img.glow-yellow {
  filter: drop-shadow(0 0 25px rgba(255, 255, 0, 1)) brightness(1.8);
}

.layer {
  position: absolute;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  pointer-events: none;
}

.parallax-layer {
  position: absolute;
  bottom: -50vh;
  width: 100vw;
  height: 150vh;
  will-change: transform;
}

/* Image Assets */
.full-img {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100vw;
  height: auto;
  transform: translateY(-40px);
  object-fit: cover;
  display: block;
}

/* Original colors kept for PNG layers */

/* Prevent specific layers from being darkened too much */
.tree-scene {
  filter: none !important;
}

/* Sky Gradients */
.sky {
  opacity: 0;
  transition: opacity 1s ease-out;
}

.sky-day {
  background: linear-gradient(180deg, #CBEFDE 0%, #F3FAEF 100%);
  opacity: 1;
}

.sky-sunset {
  background: linear-gradient(180deg, #63AD9C 0%, #DCA074 100%);
}

.sky-night {
  background: linear-gradient(180deg, #13211E 0%, #282624 100%);
}

body.time-day .sky-day {
  opacity: 1;
}

body.time-sunset .sky-day {
  opacity: 0;
}

body.time-sunset .sky-sunset {
  opacity: 1;
}

body.time-night .sky-sunset {
  opacity: 0;
}

body.time-night .sky-night {
  opacity: 1;
}

body.time-magic .sky-night {
  opacity: 1;
}

/* Celestial */
.sun {
  position: absolute;
  top: 30%;
  left: 50%;
  width: 10vw;
  height: 10vw;
  background: #FFF;
  border-radius: 50%;
  transform: translate(-50%, -50%);
  box-shadow: 0 0 60px 20px #FFF, 0 0 120px 40px rgba(255, 255, 255, 0.6);
  transition: opacity 1s, top 2s, background 2s, box-shadow 2s;
  opacity: 1;
}

body.time-sunset .sun {
  top: 70%;
  background: #FFD8A8;
  box-shadow: 0 0 100px 50px rgba(255, 200, 150, 0.5);
}

body.time-night .sun,
body.time-magic .sun {
  opacity: 0;
  top: 100%;
}

/* Stars matching stars.png */
.star-img {
  top: -10vh;
  /* Adjust as needed */
  bottom: auto;
  opacity: 0;
  transition: opacity 2s ease;
  mix-blend-mode: screen;
  animation: star-blink 4s ease-in-out infinite alternate 2s;
  /* Delay in glow blink effect */
}

@keyframes star-blink {
  0% {
    filter: brightness(1) drop-shadow(0 0 0px rgba(255, 255, 255, 0));
  }

  100% {
    filter: brightness(1.5) drop-shadow(0 0 5px rgba(255, 255, 255, 0.8));
  }
}

body.time-sunset .star-img {
  opacity: 0.4;
}

body.time-night .star-img,
body.time-magic .star-img {
  opacity: 1;
}

/* Moon matching moon.png */
.moon-img {
  position: absolute;
  top: 100%;
  left: 75%;
  width: auto;
  height: 15vh;
  opacity: 0;
  transition: opacity 1s, top 2s;
  transform: translate(-50%, -50%);
}

body.time-night .moon-img,
body.time-magic .moon-img {
  opacity: 1;
  top: 30%;
}

/* Text Layers */
#text-layer-box {
  display: flex;
  justify-content: center;
  align-items: center;
}

.text-group {
  transform: translateY(70px);
  position: relative;
  text-align: center;
}

.text-img {
  width: 55vw;
  max-width: 600px;
  opacity: 0;
  transform: translateY(50px);
  will-change: opacity, transform;
}


body.time-sunset #text-main {
  filter: none;
  /* Image already contains #094036 */
}

body.time-night #text-main,
body.time-night #text-night,
body.time-magic #text-main,
body.time-magic #text-night {
  filter: brightness(0) invert(1);
  /* Forces text to pure white regardless of original image color */
}

.night-img {
  width: 55vw;
  max-width: 350px;
  margin: 0 auto 20px auto;
  opacity: 0;
  transform: translateY(50px);
  display: block;
}

.explore-img {
  width: 50vw;
  max-width: 280px;
  margin: 20px auto;
  display: block;
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 1.2s ease, transform 1.2s ease;
}

.explore-btn-wrapper {
  margin-top: 30px;
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 1.5s ease, transform 1.5s ease;
  pointer-events: none;
  display: inline-block;
  cursor: pointer;
}

.explore-btn-wrapper.visible {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

.explore-btn-img {
  width: 23vw;
  transform: translateY(-50px);
  max-width: 540px;
  height: auto;
  transition: transform 0.3s ease;
}

.explore-btn-wrapper:hover .explore-btn-img {

  filter: brightness(1.2) drop-shadow(0 0 15px rgba(255, 255, 255, 0.4));
}

/* Layout for the first zoom: title fades out, new screen appears */
body.zoom-stage-1 .text-layer {
  opacity: 0 !important;
  transition: opacity 1s ease;
}

.transition-screen-layer {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  z-index: 115;
  /* Above parallax and text, below magic tree? */
  opacity: 0;
  pointer-events: none;
  transition: opacity 1.5s ease-in-out, transform 2.5s cubic-bezier(0.19, 1, 0.22, 1);
  transform: scale(1);
  display: flex;
  justify-content: center;
  align-items: center;
  will-change: transform, opacity;
}

.transition-img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  transform: translateY(45px);
  object-fit: cover;
}

.text-img2 {
  width: 55vw;
  max-width: 550px;
  height: auto;
  position: relative;
  z-index: 5;
  transform: translateY(-75px);
}

.t-text {
  position: absolute;
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 1.2s ease, transform 1.2s ease;
  pointer-events: none;
}

body.zoom-stage-1 .t-text-1 {
  top: 40%;
  left: 5%;
  width: 25vw;
  max-width: 300px;
  opacity: 1;
  transform: translateY(0);
  transition-delay: 1.5s;
}

body.zoom-stage-1 .t-text-2 {
  bottom: 3%;
  left: 50%;
  transform: translateX(-50%) translateY(0);
  width: 30vw;
  max-width: 350px;
  opacity: 1;
  transition-delay: 6s;
}

body.zoom-stage-1 .t-text-3 {
  top: 40%;
  right: 5%;
  width: 25vw;
  max-width: 300px;
  opacity: 1;
  transform: translateY(0);
  transition-delay: 10s;
}

body.zoom-stage-1 .transition-screen-layer {
  opacity: 1;
  pointer-events: auto;
}

/* Hide transition layer when moving to tree */
body.zoom-stage-2 .transition-screen-layer {
  opacity: 0;
  transform: scale(12);
  transform-origin: 50% 88%;
  /* Precision focus on the tree center */
  pointer-events: none;
  transition: opacity 1.2s ease-in, transform 2.5s cubic-bezier(0.19, 1, 0.22, 1);
}

.transition-screen-2-layer {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  z-index: 110;
  opacity: 0;
  pointer-events: none;
  transition: opacity 1.5s ease-in-out, transform 2.5s cubic-bezier(0.19, 1, 0.22, 1);
  transform: scale(0.05);
  /* Start tiny from the tree point */
  transform-origin: 50% 88%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  will-change: transform, opacity;
}

body.zoom-stage-2 .transition-screen-2-layer {
  opacity: 1;
  transform: scale(1);
  pointer-events: auto;
}

/* Zoom out when moving to stage 3 */
body.zoom-stage-3 .transition-screen-2-layer {
  opacity: 0;
  transform: scale(1.5);
  pointer-events: none;
  transition: opacity 1.5s ease-in-out, transform 1.5s cubic-bezier(0.19, 1, 0.22, 1);
}

.transition-screen-2-layer .text-img2 {
  width: 55vw;
  max-width: 550px;
  transform: translateY(-8vh);
  z-index: 5;
}

.tree-component-small {
  position: absolute;
  width: 5vw;
  max-width: 50px;
  transform: translateY(-130px)translateX(-30px) !important;
  height: auto;
  transition: opacity 1.2s ease, transform 1.2s ease;
  filter: drop-shadow(0 0 25px rgba(100, 150, 255, 0.6)) drop-shadow(0 0 50px rgba(100, 200, 255, 0.4));
  animation: float-tree-glow 4s infinite alternate ease-in-out;
  cursor: pointer;
  pointer-events: auto;
}

body.zoom-stage-1 .t-tree-2 {
  bottom: 12%;
  /* Positioned above t-text-2 */
  left: 50%;
  transform: translateX(-50%);
  opacity: 1;
  transition-delay: 6s;
  /* Synchronized with t-text-2 */
  animation: float-tree 4s infinite alternate ease-in-out, float-tree-intense 3s infinite alternate ease-in-out 11.5s;
}

.t-arrow {
  position: absolute;
  bottom: 40%;
  /* Positioned above the tree */
  left: 49%;
  transform: translateX(-60%) translateY(50px);
  width: 40px;
  height: auto;
  opacity: 0;
  z-index: 120;
  pointer-events: none;
  transition: opacity 1s ease, transform 1s ease;
}

body.zoom-stage-1 .t-arrow {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
  transition-delay: 13s;
  /* After text and tree glow appear */
  animation: arrow-blink 0.8s infinite alternate ease-in-out 14s;
}

@keyframes arrow-blink {
  0% {
    opacity: 1;
    filter: brightness(1.5) drop-shadow(0 0 15px rgba(255, 255, 255, 0.8));
    transform: translateX(-50%) translateY(0);
  }

  100% {
    opacity: 0.5;
    filter: brightness(1.1) drop-shadow(0 0 5px rgba(255, 255, 255, 0.4));
    transform: translateX(-50%) translateY(-10px);
  }
}

@keyframes float-tree-intense {
  0% {
    transform: translateX(-50%) translateY(0);
    filter: drop-shadow(0 0 50px rgba(100, 200, 255, 0.8)) drop-shadow(0 0 100px rgba(100, 255, 255, 0.6));
  }

  100% {
    transform: translateX(-50%) translateY(-15px);
    filter: drop-shadow(0 0 80px rgba(100, 255, 255, 1)) drop-shadow(0 0 150px rgba(100, 200, 255, 0.8));
  }
}

.tree-component {
  width: 20vw;
  max-width: 200px;
  height: auto;
  z-index: 5;
  filter: drop-shadow(0 0 40px rgba(100, 150, 255, 0.8)) drop-shadow(0 0 80px rgba(100, 255, 255, 0.5));
  animation: float-tree-glow 4s infinite alternate ease-in-out;
  cursor: pointer;
  pointer-events: auto;
}

.t-text-s2 {
  position: absolute;
  bottom: 8%;
  left: 50%;
  transform: translateX(-50%) translateY(0px);
  width: 27vw;
  max-width: 340px;
  opacity: 0;
  transition: opacity 1.2s ease, transform 1.2s ease;
  z-index: 10;
}

body.zoom-stage-2 .t-text-s2 {
  opacity: 1;
  transform: translateX(-45%) translateY(50px);
  transition-delay: 1s;
}

/* Hide header button on screen 2 */
body.zoom-stage-2 .btn-book {
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.5s ease;
}

body.zoom-stage-1 .tree-scene {
  opacity: 1;
}

body.zoom-stage-3 .text-layer {
  opacity: 0;
  transition: opacity 1s ease;
}

.magic-tree-wrapper {
  position: absolute;
  bottom: 20vh;
  left: 50%;
  transform: translateX(-50%) translateY(-40%);
  z-index: 2;
  opacity: 0;
  transition: opacity 2s ease;
}

.magic-tree {
  width: 20vw;
  max-width: 200px;
  height: auto;
  filter: drop-shadow(0 0 30px rgba(100, 150, 255, 0.8));
  animation: float-tree 4s infinite alternate ease-in-out 3s;
  /* Added delay for glow bling */
}

body.time-magic .magic-tree-wrapper {
  opacity: 1;
}

.front-trees {
  z-index: 3;
  pointer-events: none;
  width: 80vw;
  /* Slightly wider to cover edges */
  left: 13vw;
  bottom: 1vh;
}

.grass-ground {
  z-index: 1;
  width: 100vw;
  bottom: -20px;
  height: 200px;
}

@keyframes float-tree-glow {
  0% {
    transform: translateY(0);
    filter: drop-shadow(0 0 30px rgba(100, 150, 255, 0.6)) drop-shadow(0 0 60px rgba(50, 150, 200, 0.4));
  }

  100% {
    transform: translateY(-15px);
    filter: drop-shadow(0 0 60px rgba(100, 220, 255, 0.9)) drop-shadow(0 0 120px rgba(100, 255, 255, 0.7));
  }
}

@keyframes float-tree {
  0% {
    transform: translateY(0);
    filter: drop-shadow(0 0 40px rgba(100, 200, 255, 0.6)) drop-shadow(0 0 80px rgba(50, 150, 200, 0.4));
  }

  100% {
    transform: translateY(-10px);
    filter: drop-shadow(0 0 60px rgba(100, 200, 255, 0.9)) drop-shadow(0 0 120px rgba(50, 150, 200, 0.6));
  }
}

/* Running Animals */
.animal-layer {
  position: absolute;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  pointer-events: none;
  opacity: 0;
  transition: opacity 1s ease;
}

body.time-sunset .animal-layer {
  opacity: 1;
}

.running-animal {
  position: absolute;
  bottom: 6vh;
  height: 60px;
  width: auto;
  right: -20vw;
}

.deer {
  bottom: 11vh;
  height: 120px;
  width: 200px;
  transform: scaleX(-1);
  animation: run-left 17s linear infinite;
}

.tiger {
  bottom: 11vh;
  height: 130px;
  animation: run-left 14s linear infinite 3s;
}

@keyframes run-left {
  0% {
    right: -20vw;
  }

  100% {
    right: 120vw;
  }
}

/* Cursor Gradient on Night Screens */
body::after {
  content: "";
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  pointer-events: none;
  background: radial-gradient(400px circle at var(--cursor-x, 50%) var(--cursor-y, 50%), rgba(100, 200, 255, 0.2), transparent 60%);
  opacity: 0;
  z-index: 1001;
  /* Show above other elements */
  transition: opacity 1s ease;
  mix-blend-mode: screen;
}

body.time-night::after,
body.time-magic::after {
  opacity: 1;
}

/* --- Magical Jungle Screen (Third Zoom Stage) --- */

/* Replaced with consolidated rules above */


/* Hide pond when moving to magical jungle */
body.zoom-stage-4 .final-zoom-screen {
  opacity: 0;
  transform: scale(1.5);
  pointer-events: none;
}

/* --- Magical Jungle Screen (Fourth Zoom Stage) --- */

.magical-jungle-screen {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  opacity: 0;
  pointer-events: none;
  transition: opacity 2s ease-in-out, transform 2.5s cubic-bezier(0.19, 1, 0.22, 1);
  transform: scale(0.8);
  display: flex;
  justify-content: center;
  align-items: center;
  background: radial-gradient(ellipse at center, #3C35A6 0%, #031C16 50%, #031C16 100%);
  z-index: 300;
  will-change: transform, opacity;
}

body.zoom-stage-5 .magical-jungle-screen {
  opacity: 1;
  transform: scale(1);
  pointer-events: auto;
}

body.zoom-stage-6 .magical-jungle-screen {
  opacity: 0;
  transform: scale(2.5);
  /* Zoom deep into the pond */
  transform-origin: 50% 100%;
  pointer-events: none;
  transition: transform 2.5s cubic-bezier(0.19, 1, 0.22, 1), opacity 1.8s ease-in;
}

.magical-jungle-container {
  position: absolute;


  /* Bleed area */
  width: 100vw;
  /* Extra width for panning */
  height: 100vh;
  /* Extra height for panning */
  overflow: hidden;
  transition: transform 10s cubic-bezier(0.25, 0.1, 0.25, 1);
  /* Continuous fluid motion */
  transform: translateX(-2%) scale(1.05);
  /* Start slightly panned and zoomed from Stage 4 */
  transform-origin: center center;
}

.magical-jungle-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  transform: translateY(-160px);
  object-fit: cover;
  transition: filter 3s ease;
  /* Smooth dimming effect */
}


.magical-tree-center-wrapper {
  position: absolute;
  top: 51%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 10;
  animation: magical-tree-float 6s infinite ease-in-out;
}

.magical-tree-center {
  width: 40vw;
  max-width: 260px;
  height: auto;
  rotate: 10deg;
  transform: translateY(-60px) translateX(-55px);
  transition: opacity 4s ease, filter 4s ease, transform 6s ease-in-out;
}


.magical-pond-wrapper {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  transform: translateY(250px);
  z-index: 25;
}

.magical-pond {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 800px !important;
  opacity: 0.9;

}

.magical-foreground-wrapper {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 35vh;
  z-index: 30;
  /* Above pond (25) but below rocks (40) */
  pointer-events: none;
  opacity: 0;
  transition: opacity 2s ease-in-out;
}

body.zoom-stage-5 .magical-foreground-wrapper {
  opacity: 1;
  transition-delay: 2.5s;
}

.magical-foreground {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: auto;
  z-index: 5;
  transition: opacity 4s ease, filter 4s ease, transform 6s ease-in-out;
}


.magical-jungle-text {
  position: absolute;
  top: 15vh;
  left: 50%;
  transform: translateX(-50%) translateY(-20px);
  width: 50vw;
  max-width: 450px;
  opacity: 0;
  transition: opacity 2s ease, transform 2s ease;
  z-index: 25;
}

body.zoom-stage-5 .magical-jungle-text {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
  transition-delay: 2s;
}

/* Rock Videos */
.rock-video {
  position: absolute;
  z-index: 40;
  /* On top of everything including foreground grass */
  mix-blend-mode: normal;
  cursor: pointer;
  pointer-events: auto;
  opacity: 0;
  transition: opacity 2s ease, transform 2s ease;
  filter: drop-shadow(0 0 15px rgba(0, 0, 0, 0.4));
}

.rock-video-1 {
  bottom: -10px;
  left: 8%;
  /* Moved in from 4% */
  width: 22vw;
  max-width: 340px;
  transform: translateY(20px);
}

.rock-video-2 {
  bottom: -10px;
  left: 25%;
  /* Moved in from 20% */
  width: 28vw;
  max-width: 310px;
  transform: translateY(20px);
}

body.zoom-stage-5 .rock-video {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 3s;
}

/* Active state for Stage 5 */
body.zoom-stage-5 .magical-jungle-container {
  transform: translateX(-5%) scale(1.1);
  /* Reduced pan to keep rocks visible */
}

/* Triggers after text reveal */
.magical-jungle-container.focus-rocks {
  transform: translateX(-7%) translateY(-5%) scale(1.2);
  /* Maintain pan while zooming into rocks */
}

.magical-jungle-container.focus-rocks .magical-tree-center-wrapper,
.magical-jungle-container.focus-rocks .magical-jungle-hanging,
.magical-jungle-container.focus-rocks .magical-pond-wrapper,
.magical-jungle-container.focus-rocks .magical-jungle-bg,
.magical-jungle-container.focus-rocks .magical-foreground {
  opacity: 0.3;
  filter: blur(4px);
  transition: opacity 5s ease, filter 5s ease;
}

.magical-jungle-container.focus-rocks .rock-video {
  opacity: 1;
  filter: none;
}

/* Focus on Pond Sequence */
.magical-jungle-container.focus-pond {
  transform: translateX(-2%) translateY(3%) scale(1.1);
}

.magical-jungle-container.focus-pond .magical-pond-wrapper {
  opacity: 1;
  filter: none;
  z-index: 40;
}

.magical-jungle-container.focus-pond .magical-foreground-wrapper {
  opacity: 1;
  z-index: 45;
}

/* Ensure rocks stay visible during pond focus */
.magical-jungle-container.focus-pond .rock-video {
  opacity: 1;
  filter: none;
  z-index: 50;
}

/* Final Scale-Up Phase focusing towards the left tree */
.magical-jungle-container.scale-up-left {

  transition: transform 2s cubic-bezier(0.25, 0.1, 0.25, 1);
}


.magical-pond.glow {
  filter: drop-shadow(0 0 25px rgba(100, 255, 255, 0.8)) brightness(1.3);
  transition: filter 1.5s ease-in-out;
}



/* Hanging Jungle Elements Animation */
.magical-jungle-hanging {
  position: absolute;
  top: 0;
  right: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 12;
}

.jungle-hanging {
  position: absolute;
  top: -300px;
  /* Start above the screen */
  width: 30vw;
  max-width: 400px;
  height: auto;
  opacity: 0;
  transition: transform 2.5s cubic-bezier(0.19, 1, 0.22, 1), opacity 2s ease;
}

.j1-1 {
  right: 0vw;
  transform: rotate(-5deg);
}

.j1-2 {
  right: 10vw;

}

body.zoom-stage-5 .jungle-hanging {
  opacity: 1;
}

body.zoom-stage-5 .j1-1 {
  transform: translateY(300px);
  transition-delay: 4s;
}

body.zoom-stage-5 .j1-2 {
  transform: translateY(350px);
  transition-delay: 7s;
}

/* Removed duplicate selector */

/* --- Mid Jungle Screen (Fifth Zoom Stage) --- */

.mid-jungle-screen {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  pointer-events: none;
  transition: opacity 2s ease-in-out, transform 4s cubic-bezier(0.19, 1, 0.22, 1);
  transform: scale(1.05);
  /* Start slightly zoomed for fluid entry */
  transform-origin: 53% 61%;
  display: flex;
  justify-content: center;
  align-items: center;
  background: radial-gradient(ellipse at center, #3C35A6 0%, #031C16 100%);
  z-index: 350;
  will-change: transform, opacity;
}

body.zoom-stage-4 .mid-jungle-screen {
  opacity: 1;
  transform: scale(1);
  pointer-events: auto;
}

/* Zoom out Stage 3 when entering Mid Jungle */
body.zoom-stage-4 .final-zoom-screen {
  opacity: 0;
  transform: scale(1.5);
  pointer-events: none;
  transition: opacity 2.5s ease-in, transform 3.5s cubic-bezier(0.19, 1, 0.22, 1);
}

/* Zoom out Stage 4 when entering Stage 5 */
body.zoom-stage-5 .mid-jungle-screen {
  opacity: 0;
  transform: scale(1.4);
  pointer-events: none;
  transition: opacity 2.5s ease-in, transform 6s cubic-bezier(0.19, 1, 0.22, 1);
}

body.zoom-stage-5 .mid-jungle-container {
  transform: translateX(-15%) scale(1.3);
  /* Continue the pan as it fades out */
}

.mid-jungle-container {
  position: absolute;

  /* Bleed area */
  width: 100vw;
  /* Extra width for panning */
  height: 100vh;
  /* Extra height for panning */
  overflow: hidden;
  transition: transform 12s cubic-bezier(0.25, 0.1, 0.25, 1);
  /* Much slower for continuous fluid motion */
  transform-origin: 53% 61%;
  /* Centered on the magic tree */
  transform: translateX(0) scale(1);
}

body.zoom-stage-4 .mid-jungle-container {
  transform: translateX(-5%) scale(1.1);
  /* Reduced pan for safety */
}

.mid-jungle-screen.focus-mid-tree .mid-jungle-container {
  transform: scale(1.3);
}

.mid-jungle-screen.focus-mid-tree .mid-jungle-bg {
  opacity: 0.5;
  filter: blur(4px);
  transition: opacity 5s ease, filter 5s ease;
}

.mid-jungle-screen.focus-mid-tree .mid-jungle-text {
  opacity: 0 !important;
  transition: opacity 2s ease;
}

.mid-jungle-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: translateY(0);
}

.mid-tree-wrapper {
  position: absolute;
  top: 61%;
  left: 53%;
  transform: translate(-50%, -50%);
  z-index: 10;
}

.mid-magic-tree {
  width: 50vw;
  max-width: 450px;
  height: auto;
  mix-blend-mode: screen;
}

.mid-jungle-text {
  position: absolute;
  bottom: 5vh;
  left: 10vw;
  width: 30vw;
  max-width: 400px;
  height: auto;
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 2s ease, transform 2s ease;
  z-index: 15;
}

body.zoom-stage-4 .mid-jungle-text {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 3s;
}

/* --- Deep Jungle Screen (Sixth Zoom Stage) --- */

.deep-jungle-screen {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  opacity: 0;
  pointer-events: none;
  transition: opacity 2s ease-in-out, transform 2s ease-in-out;
  transform: scale(1.5);
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 400;
  background-color: #031C16;
}

.deep-jungle-container {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  transition: transform 6s cubic-bezier(0.19, 1, 0.22, 1);
  transform-origin: center center;
}


.deep-jungle-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: translateY(0);
  transition: opacity 4s ease, filter 4s ease;
}


.deep-jungle-fg {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: auto;
  transform: translateY(0);
  z-index: 5;
}

.deep-magic-tree-wrapper {
  position: absolute;
  top: 45%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 2;
  /* Between background and foreground */
  mix-blend-mode: screen;
  /* Removes the black background */
  pointer-events: none;
}

.deep-magic-tree {
  width: 55vw;
  max-width: 300px;
  height: auto;
  transform: translateX(-145px) translateY(-50px) rotate(-14deg);
  opacity: 0;
  transition: opacity 2s ease-in-out 1s, filter 2s ease-in-out;
  pointer-events: auto;
  /* Enable clicking */
}

.deep-magic-tree.glow {
  filter: drop-shadow(0 0 25px rgba(0, 255, 255, 0.8)) brightness(1.3);
  cursor: pointer;
}


.deep-jungle-text {
  position: absolute;
  top: 15vh;
  left: 65%;
  transform: translateX(-50%) translateY(-20px);
  width: 45vw;
  max-width: 400px;
  opacity: 0;
  transition: opacity 2s ease, transform 2s ease;
  z-index: 25;
}

body.zoom-stage-7 .deep-jungle-text {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
  transition-delay: 2s;
}

/* Deep Jungle Focus Sequence */
.deep-jungle-screen.focus-deep-tree .deep-jungle-container {
  transform: scale(1.1);
}


/* Second Animated Tree on the right */
.deep-right-tree-wrapper {
  position: absolute;
  bottom: 0px;
  right: 0px;
  z-index: 4;
  /* Between background and foreground */
  mix-blend-mode: screen;
  pointer-events: none;
}

.deep-right-tree {
  width: 60vw;
  max-width: 500px;
  height: auto;
  transform: translateY(30px) translateX(20px);
  opacity: 0;
  transition: opacity 2s ease-in-out 1.5s;
}

/* Show deep jungle screen on seventh zoom */
body.zoom-stage-7 .deep-jungle-screen {
  opacity: 1;
  transform: scale(1);
  /* Scale to 1 for final zoomed IN state */
  pointer-events: auto;
}

body.zoom-stage-7 .deep-magic-tree,
body.zoom-stage-7 .deep-right-tree {
  opacity: 1;
}

/* --- Ultra Deep Jungle Screen (Fifth Zoom Stage) --- */

.ultra-deep-jungle-screen {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  opacity: 0;
  pointer-events: none;
  transition: opacity 2.5s ease-in-out, transform 3s cubic-bezier(0.19, 1, 0.22, 1);
  transform: scale(0.85);
  /* Start slightly smaller for continuous zoom-in */
  z-index: 500;
  background-color: #031C16;
}


.ultra-deep-jungle-container {
  position: absolute;
  width: 100%;
  height: 100%;
  overflow: hidden;
  transition: transform 6s cubic-bezier(0.19, 1, 0.22, 1);
  transform-origin: center center;
}

.ultra-deep-jungle-screen.focus-ultra-tree .ultra-deep-jungle-container {
  transform: scale(1.3);
}

.ultra-deep-jungle-screen.focus-ultra-tree .ultra-deep-bg,
.ultra-deep-jungle-screen.focus-ultra-tree .ultra-half-tree,
.ultra-deep-jungle-screen.focus-ultra-tree .ud-text-tr,
.ultra-deep-jungle-screen.focus-ultra-tree .ud-text-bl {
  opacity: 0.3;
  filter: blur(5px);
  transition: opacity 5s ease, filter 5s ease;
}

.ultra-deep-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: fill;
  z-index: 1;
}

.ud-text-tr {
  position: absolute;
  top: 5vh;
  right: 5vw;
  width: 25vw;
  max-width: 400px;
  height: auto;
  opacity: 0;
  transform: translateY(-20px);
  transition: opacity 2s ease-out 1s, transform 2s ease-out 1s;
  z-index: 20;
}

.ud-text-bl {
  position: absolute;
  bottom: 8vh;
  left: 5vw;
  width: 30vw;
  max-width: 400px;
  height: auto;
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 2s ease-out 1.5s, transform 2s ease-out 1.5s;
  z-index: 20;
}

body.zoom-stage-8 .ud-text-tr,
body.zoom-stage-8 .ud-text-bl {
  opacity: 1;
  transform: translateY(0);
}


.ultra-magic-tree-wrapper {
  position: absolute;
  top: 50%;

  left: 50%;
  transform: translate(-50%, -50%);
  mix-blend-mode: screen;
  z-index: 10;
}

.ultra-magic-tree {
  width: 90vw;
  max-width: 900px;
  height: auto;
  rotate: 14deg;
  transform: translatex(100px)translateY(-35px) !important;
  opacity: 0;
  transition: opacity 2s ease-in-out 0.5s, filter 1.5s ease-in-out;
}

.ultra-magic-tree.glow {
  filter: drop-shadow(0 0 35px rgba(0, 255, 255, 0.7)) brightness(1.3);
}



.ultra-half-tree {
  position: absolute;
  bottom: 0;
  right: 0;
  width: 40vw;
  max-width: 150px;
  height: auto;
  z-index: 12;
  /* Between main tree and foreground */
  opacity: 0;
  transform: translateX(100px);
  transition: opacity 2s ease-in-out 1s, transform 2s ease-in-out 1s;
}

/* Stage 8 Activation */
body.zoom-stage-8 .ultra-deep-jungle-screen {
  opacity: 1;
  transform: scale(1);
  pointer-events: auto;
}

body.zoom-stage-8 .ultra-magic-tree,
body.zoom-stage-8 .ultra-half-tree {
  opacity: 1;
  transform: translate(0);
}

/* Hide stage 7 when in stage 8 */
body.zoom-stage-8 .deep-jungle-screen {
  opacity: 0;
  transform: scale(1.6);
  /* Zoom in while fading out */
  pointer-events: none;
  transition: opacity 2s ease-in-out, transform 3.5s cubic-bezier(0.19, 1, 0.22, 1);
}


/* --- Ultrax Deep Jungle Screen (Sixth Zoom Stage) --- */

.ultrax-deep-jungle-screen {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  opacity: 0;
  pointer-events: none;
  transition: opacity 2.5s ease-in-out, transform 3s cubic-bezier(0.645, 0.045, 0.355, 1);
  transform: scale(0.7);
  /* Start smaller for zoom-in from upper part */
  transform-origin: 50% 10%;
  z-index: 600;
  background-color: #031C16;
}


.ultrax-deep-jungle-container {
  position: absolute;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.ultrax-deep-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.ultrax-text-center {
  position: absolute;
  top: 40%;
  left: 50%;
  transform: translate(-80%, -50%);
  width: 50vw;
  max-width: 600px;
  opacity: 0;
  transition: opacity 2s ease-in-out 1.5s;
  z-index: 10;
}

.ultrax-text-right {
  position: absolute;
  top: 50%;
  right: 10%;
  transform: translateY(-50%);
  width: 50vw;
  max-width: 600px;
  opacity: 0;
  transition: opacity 2s ease-in-out 2.5s;
  z-index: 10;
}

body.zoom-stage-8 .ultrax-text-center,
body.zoom-stage-9 .ultrax-text-center,
body.zoom-stage-9 .ultrax-text-right {
  opacity: 1;
}


/* Stage 9 Activation */
body.zoom-stage-9 .ultrax-deep-jungle-screen {
  opacity: 1;
  transform: scale(1);
  pointer-events: auto;
}

/* Upward pan effect for previous stage */
body.zoom-stage-9 .ultra-deep-jungle-screen {
  opacity: 0;
  transform: scale(2.5);
  /* Zoom deep into the top part */
  transform-origin: 50% 10%;
  pointer-events: none;
  transition: transform 3.5s cubic-bezier(0.645, 0.045, 0.355, 1), opacity 2.5s ease-in-out;
}


/* --- Ultraxx Deep Jungle Screen (Seventh Zoom Stage) --- */

.ultraxx-deep-jungle-screen {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  opacity: 0;
  pointer-events: none;
  transition: opacity 2.5s ease-in-out, transform 3s cubic-bezier(0.645, 0.045, 0.355, 1);
  transform: scale(0.7);
  /* Start smaller for zoom-in from upper part */
  transform-origin: 50% 10%;
  z-index: 700;
  background-color: #031C16;
}


.ultraxx-deep-jungle-container {
  position: absolute;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.ultraxx-deep-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 1;
}

.star-field {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 5;
  pointer-events: none;
}

.star {
  position: absolute;
  background-color: #fff;
  border-radius: 50%;
  box-shadow: 0 0 10px rgba(255, 255, 255, 0.8), 0 0 20px rgba(255, 255, 255, 0.4);
  pointer-events: auto;
  cursor: pointer;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  z-index: 6;
}

.star:hover {
  transform: scale(2);
  box-shadow: 0 0 15px rgba(255, 255, 255, 1), 0 0 30px rgba(255, 255, 255, 0.6);
}


/* Stage 10 Activation */
body.zoom-stage-10 .ultraxx-deep-jungle-screen {
  opacity: 1;
  transform: scale(1);
  pointer-events: auto;
}


/* Upward pan effect for previous stage (Ultrax) */
body.zoom-stage-10 .ultrax-deep-jungle-screen {
  opacity: 0;
  transform: scale(2.5);
  /* Zoom deep into the top part */
  transform-origin: 50% 10%;
  pointer-events: none;
  transition: transform 3.5s cubic-bezier(0.645, 0.045, 0.355, 1), opacity 2.5s ease-in-out;
}



/* --- Ultray Screen (Eighth Zoom Stage) --- */

.ultray-screen {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  opacity: 0;
  pointer-events: none;
  transition: opacity 2.5s ease-in-out, transform 3s cubic-bezier(0.645, 0.045, 0.355, 1);
  transform: scale(0.7);
  /* Start from above */
  transform-origin: 50% 10%;
  z-index: 800;
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: #03040A;
}

/* Stage 11 Activation */
body.zoom-stage-11 .ultray-screen {
  opacity: 1;
  transform: scale(1);
  pointer-events: auto;
}

/* Upward pan effect for previous stage (Ultraxx) */
body.zoom-stage-11 .ultraxx-deep-jungle-screen {
  opacity: 0;
  transform: scale(2.5);
  /* Zoom deep into the top part */
  transform-origin: 50% 10%;
  pointer-events: none;
  transition: transform 3.5s cubic-bezier(0.645, 0.045, 0.355, 1), opacity 2.5s ease-in-out;
}


.ultray-container {
  position: absolute;
  width: 100%;
  height: 100%;
  overflow: hidden;
  display: flex;
  justify-content: center;
  align-items: center;
}

.ultray-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 1;
}

.ultray-content {
  position: relative;
  z-index: 10;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
  text-align: center;
  /* Container becomes ready instantly, children handle staggered reveal */
}


body.zoom-stage-11 .ultray-content {
  pointer-events: auto;
}



.gradient-text-img {
  width: 45vw;
  max-width: 550px;
  height: auto;
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 2s ease-out 0.8s, transform 2s ease-out 0.8s;
  filter: drop-shadow(0 0 20px rgba(0, 0, 0, 0.5));
}

.play-button-wrapper {
  opacity: 0;
  transform: scale(0.8);
  transition: opacity 1.5s ease-out 6.5s, transform 1.5s ease-out 6.5s;
  /* 6.5s total delay */
}

body.zoom-stage-11 .play-button-wrapper {
  opacity: 1;
  transform: scale(1);
}


.play-btn-img {
  width: 120px;
  height: auto;
  cursor: pointer;
  transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275), filter 0.3s ease;
  filter: drop-shadow(0 0 10px rgba(255, 255, 255, 0.3));
}

.play-btn-img:hover {
  transform: scale(1.15);
  filter: drop-shadow(0 0 20px rgba(255, 255, 255, 0.6));
}

.second-last-text {
  width: 35vw;
  max-width: 400px;
  height: auto;
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 2s ease-out 5s, transform 2s ease-out 5s;
  /* 5s total delay */
  filter: drop-shadow(0 0 15px rgba(255, 255, 255, 0.2));
}


body.zoom-stage-11 .second-last-text {
  opacity: 1;
  transform: translateY(0);
}


/* Stage 11 Activation - Smooth Zoom Out to Landscape */
body.zoom-stage-12 .final-screen-9 {
  opacity: 1;
  transform: scale(1);
  pointer-events: auto;
  transition: opacity 3s ease-in-out, transform 6s cubic-bezier(0.19, 1, 0.22, 1);
}

/* Zoom out effect for the starscape */
body.zoom-stage-12 .ultray-screen {
  opacity: 0;
  transform: scale(1.5);
  pointer-events: none;
  transition: opacity 2s ease-in-out, transform 4s cubic-bezier(0.19, 1, 0.22, 1);
}


/* --- Final Screen (Ninth Zoom Stage) --- */

.final-screen-9 {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  opacity: 0;
  pointer-events: none;
  transition: opacity 2.5s ease-in-out, transform 5s cubic-bezier(0.19, 1, 0.22, 1);
  transform: scale(2.5);
  /* Start zoomed in for the reveal */
  z-index: 900;
  background-color: #03040A;
}


.final-container-9 {
  position: absolute;
  width: 100%;
  height: 100%;
  overflow: hidden;
  display: flex;
  justify-content: center;
  align-items: center;
}

.final-bg-9 {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 1;
}

.final-content-9 {
  position: relative;
  width: 100%;
  height: 100%;
  z-index: 10;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

/* --- Final Screen (Stage 11) Layout --- */
.final-trees-group {
  position: absolute;
  top: 45%;
  left: 50%;
  transform: translate(-50%, -50%);
  display: flex;
  align-items: flex-end;
  gap: -12vw;
  z-index: 5;
  opacity: 0;
  transition: opacity 3s ease-in-out 1s;
}

.final-tree-center {
  width: 35vw;
  transform: translateY(60px) translateX(-100px);
  max-width: 200px;
  mix-blend-mode: screen;
}

.final-tree-left {
  width: 25vw;
  transform: translateY(-58px) translateX(-80px);
  max-width: 150px;
  mix-blend-mode: screen;
}

.final-tree-right {
  width: 25vw;
  transform: translateY(-180px) translateX(200px);
  max-width: 150px;
  mix-blend-mode: screen;
}


.final-pond-wrapper {
  position: absolute;
  bottom: -25%;
  left: 0%;
  z-index: 6;
  opacity: 0;
  transition: opacity 3s ease-in-out 1.5s;

}

.final-pond-9 {
  width: 100%;
  height: 100%;
  min-height: 150px !important;
  mix-blend-mode: screen;
}


.final-rocks-left {
  position: absolute;
  bottom: -14%;
  left: 10%;
  z-index: 15;
  display: flex;
  gap: 0px;
  opacity: 0;
  transition: opacity 3s ease-in-out 2s;
}


.final-rock-1,
.final-rock-2 {
  width: 20vw;
  max-width: 350px;
  filter: brightness(1.3) drop-shadow(0 0 15px rgba(100, 200, 255, 0.4));
}

.final-foreground-9 {
  position: absolute;
  bottom: -25px;
  left: 0;
  width: 100vw;
  height: 250px;
  z-index: 10;
  opacity: 0;
  transition: opacity 3s ease-in-out 2s;
  pointer-events: none;
}

/* Stage 11 Activation */
body.zoom-stage-12 .final-screen-9 {
  opacity: 1;
  transform: scale(1);
  pointer-events: auto;
}

body.zoom-stage-12 .final-trees-group,
body.zoom-stage-12 .final-pond-wrapper,
body.zoom-stage-12 .final-rocks-left,
body.zoom-stage-12 .final-foreground-9 {
  opacity: 1;
}


/* Hide previous stage to optimize */
body.zoom-stage-12 .ultray-screen {
  opacity: 0;
  transition: opacity 1.5s ease-in-out;
}

/* --- Pond Focus Screen (New Stage 6) --- */
.pond-focus-screen {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  pointer-events: none;
  transition: opacity 1.5s ease-in-out, transform 2.5s cubic-bezier(0.19, 1, 0.22, 1);
  transform: scale(0.85);
  /* Start slightly zoomed out to follow the pond dive */
  background: linear-gradient(0deg, rgba(60, 53, 166, 1) 0%, rgba(3, 28, 22, 1) 100%);
  z-index: 380;
  display: flex;
  justify-content: center;
  align-items: center;
  overflow: hidden;
}

body.zoom-stage-6 .pond-focus-screen {
  opacity: 1;
  transform: scale(1);
  pointer-events: auto;
}

.pond-focus-container {
  position: relative;
  width: 100vw;
  height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
}

.pond-focus-bg {
  filter: brightness(0.5) blur(2px);
  transition: filter 3s ease;
}

body.zoom-stage-6 .pond-focus-bg {
  filter: brightness(0.7) blur(0px);
}

.pond-focus-tree-wrapper {
  position: absolute;
  top: 57%;
  left: 45%;
  transform: translate(-50%, -50%);
  width: 35vw;
  max-width: 280px;
  z-index: 5;
  rotate: 10deg;
}

.pond-focus-tree {
  width: 100%;
  height: auto;
  filter: drop-shadow(0 0 20px rgba(150, 255, 255, 0.4));
  mix-blend-mode: screen;
}

.pond-focus-text-container {
  position: absolute;
  top: 30%;
  width: 90%;
  display: flex;
  justify-content: space-between;
  z-index: 10;
  pointer-events: none;
}

.pond-focus-text-img {
  width: 25vw;
  max-width: 380px;
  height: auto;
  opacity: 0;
  transition: opacity 2s ease, transform 2s ease;
  pointer-events: none;
}

.left-text {
  transform: translateX(-40px);
}

.right-text {
  transform: translateX(40px);
}

.pond-focus-text-img.visible {
  opacity: 1;
  transform: translateX(0);
}

.pond-focus-video-wrapper {
  position: absolute;
  bottom: -15% !important;
  left: 0;
  width: 100vw;
  height: 60vh;
  z-index: 15;
  transition: filter 2s ease;
}

body.zoom-stage-6 .pond-focus-container.focus-area {
  transform: scale(1.1);
  transition: transform 5s cubic-bezier(0.19, 1, 0.22, 1);
}

body.zoom-stage-6 .focus-area .pond-focus-bg,
body.zoom-stage-6 .focus-area .pond-focus-tree {
  filter: brightness(0.3) blur(2px);
}

.pond-focus-video {
  width: 100%;
  height: 550px;
  object-fit: cover;
  mix-blend-mode: screen;
  filter: brightness(1.2);
  transition: filter 2s ease;
}

.pond-focus-video.glow {
  filter: brightness(1.6) drop-shadow(0 0 40px rgba(100, 255, 255, 0.9));
}

#stage-6-next-wrapper {
  bottom: 32%;
  right: 20%;
  left: auto;
  transform: none;
}

/* Hide Pond Focus when moving to Deep Jungle */
body.zoom-stage-7 .pond-focus-screen {
  opacity: 0;
  transform: scale(1.5);
  pointer-events: none;
  transition: opacity 2.5s ease-in, transform 3.5s cubic-bezier(0.19, 1, 0.22, 1);
}

/* --- High Resolution Optimizations (2033x1064 and similar) --- */
@media screen and (min-width: 2033px) {
  .intro-prompt {
    font-size: 4.5rem;
    letter-spacing: 10px;
  }

  .text-img {
    max-width: 800px;
  }



  .t-arrow {
    position: absolute;
    bottom: 29%;
    left: 49%;

  }

  .tree-component {

    transform: translateY(50px) !important;

  }



  .night-img {
    max-width: 450px;
  }

  .explore-img {
    max-width: 400px;
  }

  .explore-btn-img {
    max-width: 700px;
  }

  .next-btn-img {
    width: 280px;
  }

  .final-magic-tree-container {
    max-width: 750px;
    max-height: 380px;
    /* z-index: 999; */
    transform: translateY(-20px);
  }

  .ripple-1 {
    width: 100%;
    height: 750px;
    transform: translateY(55px);
  }

  .mid-magic-tree {
    max-width: 650px;
    transform: translateY(-41px);
  }

  .magical-tree-center-wrapper {

    top: 44%;

  }

  .magical-tree-center {
    max-width: 380px;
    transform: translateY(80px) translateX(-60px);
  }

  body.zoom-stage-5 .j1-2 {
    transform: translateY(550px);
  }

  body.zoom-stage-5 .j1-1 {
    transform: translateY(500px);
  }

  .rock-video-1 {
    max-width: 450px;
  }

  .rock-video-2 {
    max-width: 420px;
  }

  .deep-magic-tree {
    transform: translateX(-150px) translateY(-70px);
    max-width: 450px;
  }

  .deep-jungle-text {
    max-width: 550px;
  }

  .ud-text-tr,
  .ud-text-bl {
    max-width: 550px;
  }

  .pond-focus-tree-wrapper {
    max-width: 400px;
  }

  .pond-focus-text-img {
    max-width: 500px;
  }

  .pond-focus-video {
    transform: translateY(100px);

  }

  .ultra-magic-tree {

    transform: translatex(100px) translateY(55px) !important;

  }

  .final-tree-center {
    max-width: 300px;
    transform: translateY(110px) translateX(-100px);
  }

  .final-tree-left {
    max-width: 220px;
  }

  .final-tree-right {
    transform: translateY(-250px) translateX(240px);
    max-width: 220px;
  }

  .final-rock-1,
  .final-rock-2 {
    max-width: 450px;


  }

  .final-rocks-left {

    bottom: -11%;

  }

  /* Scaling up the star field effect for ultra-wide */
  .star {
    box-shadow: 0 0 15px rgba(255, 255, 255, 0.9), 0 0 30px rgba(255, 255, 255, 0.5);
  }

  .play-btn-img {
    width: 180px;
  }

  .second-last-text {
    max-width: 550px;
  }
}

/* --- Tablet Optimizations (768px to 1024px) --- */
@media screen and (max-width: 1024px) {
  .text-img {
    width: 70vw;
  }

  .text-img2 {
    width: 70vw;
  }

  .tree-component {
    width: 40vw;
    max-width: 250px;
  }

  .magical-tree-center {
    width: 50vw;
    transform: translateY(-40px) translateX(0);
  }

  .deep-magic-tree {
    width: 60vw;
    transform: translateX(-80px) translateY(-30px) rotate(-14deg);
  }

  .ultra-magic-tree {
    width: 85vw;
    transform: translateX(50px) translateY(-20px) rotate(14deg);
  }

  .next-btn-img {
    width: 160px;
  }
}

/* --- Mobile Optimizations (up to 768px) --- */
@media screen and (max-width: 768px) {
  .intro-prompt {
    font-size: 2rem;
    letter-spacing: 3px;
  }

  /* Center and scale text images */
  .text-img,
  .text-img2,
  .night-img,
  .explore-img,
  .mid-jungle-text,
  .deep-jungle-text,
  .ud-text-tr,
  .ud-text-bl,
  .ultrax-text-center,
  .ultrax-text-right,
  .second-last-text {
    width: 85vw !important;
    max-width: 320px !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
  }

  .text-group {
    transform: translateY(40px);
  }

  /* Explore Button Scaling */
  .explore-btn-img {
    width: 60vw;
    max-width: 300px;
    transform: translateY(-20px);
  }

  /* Tree Placement Corrections for Mobile */
  .final-magic-tree-wrapper {
    bottom: 30vh;
  }

  .final-magic-tree {
    transform: translateX(0) translateY(-20px) !important;
    width: 80vw;
    max-width: 300px;
  }

  .mid-tree-wrapper {
    top: 55%;
    left: 50%;
    transform: translate(-50%, -50%);
  }

  .mid-magic-tree {
    width: 80vw;
    max-width: 350px;
  }

  .magical-tree-center-wrapper {
    top: 45%;
    left: 50%;
  }

  .magical-tree-center {
    width: 70vw;
    max-width: 280px;
    transform: translateY(-30px) translateX(0);
  }

  .pond-focus-tree-wrapper {
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 60vw;
  }

  .pond-focus-tree {
    width: 100%;
    transform: none;
  }

  .pond-focus-text-container {
    top: 15%;
    flex-direction: column;
    align-items: center;
    gap: 20px;
  }

  .pond-focus-text-img {
    width: 70vw;
    max-width: 250px;
    transform: none !important;
  }

  .deep-magic-tree-wrapper {
    top: 40%;
    left: 50%;
  }

  .deep-magic-tree {
    width: 80vw;
    max-width: 300px;
    transform: translateX(0) translateY(0) rotate(0);
  }

  .deep-right-tree {
    width: 70vw;
    max-width: 280px;
    transform: translateY(20px) translateX(0);
  }

  .ultra-magic-tree-wrapper {
    top: 45%;
    left: 50%;
  }

  .ultra-magic-tree {
    width: 95vw;
    max-width: 400px;
    transform: translateX(0) translateY(0) rotate(0) !important;
  }

  .ultra-half-tree {
    width: 50vw;
    max-width: 120px;
  }

  /* Next Buttons Repositioning */
  .next-btn-wrapper {
    bottom: 10%;
    width: 120px;
  }

  .next-btn-img {
    width: 100%;
  }

  #stage-4-next-wrapper {
    top: auto;
    bottom: 5%;
    left: 50%;
    transform: translateX(-50%);
  }

  #stage-5-next-wrapper {
    bottom: 10%;
    right: 50%;
    transform: translateX(50%);
  }

  #stage-6-next-wrapper {
    bottom: 25%;
    right: 50%;
    transform: translateX(50%);
  }

  #stage-8-next-wrapper {
    bottom: 10%;
    right: 50%;
    transform: translateX(50%);
  }

  #stage-9-next-wrapper {
    bottom: 10%;
    right: 50%;
    transform: translateX(50%);
  }

  /* Final Screen Corrections */
  .final-trees-group {
    top: 40%;
    gap: -20vw;
  }

  .final-tree-center {
    width: 50vw;
    transform: translateY(40px) translateX(0);
  }

  .final-tree-left {
    width: 35vw;
    transform: translateY(-20px) translateX(10px);
  }

  .final-tree-right {
    width: 35vw;
    transform: translateY(-100px) translateX(-10px);
  }

  .final-rocks-left {
    bottom: -5%;
    left: 50%;
    transform: translateX(-50%);
    width: 90vw;
    justify-content: center;
  }

  .final-rock-1,
  .final-rock-2 {
    width: 45%;
  }

  /* Rock Videos Stage 5 */
  .rock-video-1 {
    left: 5%;
    width: 40vw;
  }

  .rock-video-2 {
    left: 50%;
    width: 45vw;
  }

  /* Star Field Scaling */
  .star {
    width: 3px !important;
    height: 3px !important;
  }

  /* Parallax and Component scale for Mobile */
  .tree-component {
    width: 50vw;
    max-width: 250px;
  }

  .tree-component-small {
    width: 15vw;
    max-width: 80px;
  }

  /* Ensure parallax images cover the tall mobile screen */
  .parallax-layer .full-img {
    height: 100%;
    width: auto;
    min-width: 100vw;
    object-fit: cover;
  }
}