/* =========================
   LEAF & AIR RANDOM LAYER
   ========================= */

/* 전체를 덮는 레이어 (여기 안에서 잎/공기들이 날아다님) */
#leaf-air-layer {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 4;  /* tree(3)보다 위, bubble(5)보다 살짝 아래로 조절해도 됨 */
  overflow: visible;
}

/* 전체를 덮는 레이어 (여기 안에서 잎들이 날아다님) */
#leaf-air-layer {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 4;  /* tree(3)보다 위, bubble(5)보다 살짝 아래 */
  overflow: visible;
}

/* 🍃 PNG 잎 공통 스타일 */
.leaf-random {
  position: absolute;
  left: -12vw;
  bottom: var(--leaf-bottom, 50vh);

  height: 44px;     /* 고정 */
  width: auto;
  object-fit: contain;

  pointer-events: none;
  opacity: 0;
  z-index: 4;
  filter: drop-shadow(0 0 6px rgba(0, 0, 0, 0.15));

  animation-name: leaf-float;
  animation-timing-function: ease-out;
  animation-iteration-count: infinite;
}


/* PNG 타입 3개 (파일명은 실제 저장한 이름으로 변경해줘) */
.leaf-type-1 {
  content: url("/src/leaf1.png");
}

.leaf-type-2 {
  content: url("/src/leaf2.png");
}

.leaf-type-3 {
  content: url("/src/leaf3.png");
}

/* 왼쪽 → 오른쪽으로 날아가는 모션 */
/* 🌿 더 자연스러운 왼쪽 → 오른쪽 나뭇잎 이동 */
@keyframes leaf-float {
  0% {
    transform: translateX(0)
               translateY(0)
               rotate(var(--leaf-rot-start, -20deg));
    opacity: 0;
  }

  10% {
    opacity: 1;
  }

  30% {
    /* 첫 번째 흔들림 */
    transform: translateX(25vw)
               translateY(calc(var(--leaf-sway, 2vh) * 0.7))
               rotate(var(--leaf-rot-mid, 60deg));
    opacity: 1;
  }

  55% {
    /* 두 번째 흔들림 - 조금 반대 방향으로 */
    transform: translateX(55vw)
               translateY(calc(var(--leaf-sway, 2vh) * -0.5))
               rotate(calc(var(--leaf-rot-mid, 60deg) + 40deg));
    opacity: 0.9;
  }

  75% {
    /* 세 번째 흔들림 */
    transform: translateX(85vw)
               translateY(calc(var(--leaf-sway, 2vh) * 1))
               rotate(calc(var(--leaf-rot-end, 260deg) - 30deg));
    opacity: 0.7;
  }

  100% {
    /* 최종 도착 */
    transform: translateX(130vw)
               translateY(0)
               rotate(calc(var(--leaf-rot-end, 260deg) + 20deg));
    opacity: 0;
  }
}



/* 💨 랜덤 공기 / 빛 입자 기본 스타일 */
.air-random {
  position: absolute;
  width: var(--air-size, 18px);
  height: var(--air-size, 18px);
  border-radius: 50%;
  background: radial-gradient(circle at 30% 30%,
    #eaffff,
    #4fe3ff 40%,
    transparent 70%);
  filter: blur(3px);
  opacity: 0;
  pointer-events: none;
}

/* =========================
   AIR PATHS (공기 경로)
   ========================= */

/* 공기 경로 1 */
@keyframes air-path-1 {
  0% {
    transform: translate(0, 0) scale(var(--air-scale, 1));
    opacity: 0;
  }
  15% {
    opacity: 0.8;
  }
  50% {
    transform: translate(18vw, 6vh) scale(var(--air-scale, 1.1));
    opacity: 1;
  }
  80% {
    transform: translate(32vw, 7vh) scale(calc(var(--air-scale, 1) * 0.8));
    opacity: 0.6;
  }
  100% {
    transform: translate(38vw, 8vh) scale(calc(var(--air-scale, 1) * 0.6));
    opacity: 0;
  }
}

/* 공기 경로 2 (조금 더 위쪽) */
@keyframes air-path-2 {
  0% {
    transform: translate(0, 0) scale(var(--air-scale, 1));
    opacity: 0;
  }
  20% {
    opacity: 0.8;
  }
  55% {
    transform: translate(16vw, 10vh) scale(var(--air-scale, 1.2));
    opacity: 1;
  }
  85% {
    transform: translate(30vw, 12vh) scale(calc(var(--air-scale, 1) * 0.8));
    opacity: 0.5;
  }
  100% {
    transform: translate(36vw, 11vh) scale(calc(var(--air-scale, 1) * 0.6));
    opacity: 0;
  }
}

/* 공기 경로 3 (더 아래쪽) */
@keyframes air-path-3 {
  0% {
    transform: translate(0, 0) scale(var(--air-scale, 1));
    opacity: 0;
  }
  10% {
    opacity: 0.8;
  }
  45% {
    transform: translate(14vw, 2vh) scale(var(--air-scale, 1.05));
    opacity: 1;
  }
  80% {
    transform: translate(28vw, 4vh) scale(calc(var(--air-scale, 1) * 0.8));
    opacity: 0.5;
  }
  100% {
    transform: translate(36vw, 5vh) scale(calc(var(--air-scale, 1) * 0.6));
    opacity: 0;
  }
}
