/* Gokyuzu ve yagmur */
.sky {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(to bottom, var(--bg-sky-top) 0%, var(--bg-sky-bottom) 100%);
    z-index: -2;
}

/* Yildizlar */
.star {
  position: absolute;
  width: 2px;
  height: 2px;
  background: var(--star-color);
  border-radius: 50%;
  opacity: 0.8;
  animation: twinkle 2s infinite alternate, starMove linear infinite;
}

@keyframes twinkle {
  0% { opacity: 0.3; }
  100% { opacity: 1; }
}

@keyframes starMove {
  0% { transform: translate(0, 0); }
  100% { transform: translate(calc(20px * var(--dirX)), calc(10px * var(--dirY))); }
}

/* Yagmur */
.rain-container {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: -1;
    overflow: hidden;
}

.rain {
    position: absolute;
    top: -50px;
    width: 2px;
    height: 15px;
    background: var(--rain-color);
    animation: fall linear infinite;
}

@keyframes fall {
    0% {
        transform: translateY(-20px);
        opacity: 0.5;
    }
    100% {
        transform: translateY(100vh);
        opacity: 0;
    }
}

/* Kar */
.snow {
    width: 6px;
    height: 6px;
    top: -20px;
    background: var(--snow-color);
    border-radius: 50%;
    position: absolute;
    animation: snowFall 10s linear infinite;
    will-change: transform, opacity;
}

@keyframes snowFall {
    0% {
        transform: translateY(-20px) translateX(0);
        opacity: 0;
    }

    50% {
        transform: translateY(50vh) translateX(8px);
        opacity: 1;
    }

    100% {
        transform: translateY(100vh) translateX(2px);
        opacity: 0;
    }
}

.firework {
  position: absolute;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--color, red);
  transform: translateY(0);
  animation: rise 0.8s ease-out forwards;
}

.explosion {
  position: absolute;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--color, red);
  opacity: 0;
  transform: translate(0,0);
  animation: explode 0.6s ease-out forwards;
}

@keyframes rise {
  0% { transform: translateY(0); opacity:1; }
  80% { transform: translateY(-50vh); opacity:1; }
  100% { transform: translateY(-50vh); opacity:0; }
}

@keyframes explode {
  0% { transform: translate(0,0) scale(1); opacity:1; }
  100% { transform: translate(var(--x,0px), var(--y,0px)) scale(0.5); opacity:0; }
}

.meteor {
  position: absolute;
  width: 2px;
  height: 100px;
  background: linear-gradient(45deg, white, transparent);
  opacity: 0.8;
  transform: rotate(45deg);
  animation: meteorFall1 2s linear forwards;
}

@keyframes meteorFall1 {
  0% {
    transform: translate(0, 0) rotate(315deg);
    opacity: 1;
  }
  100% {
    transform: translate(200px, 200px) rotate(315deg);
    opacity: 0;
  }
}

@keyframes meteorFall2 {
  0% {
    transform: translate(0, 0) rotate(45deg);
    opacity: 1;
  }
  100% {
    transform: translate(-200px, 200px) rotate(45deg);
    opacity: 0;
  }
}