/* 星星样式 */
#stars-container {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: -1;
}

.star {
    position: absolute;
    background-color: white;
    border-radius: 50%;
    animation: twinkle 3s infinite ease-in-out;
}

@keyframes twinkle {
    0%, 100% {
        opacity: 0.2;
        transform: scale(0.5);
    }
    50% {
        opacity: 1;
        transform: scale(1);
    }
}

/* 流星样式 */
.meteor {
    position: absolute;
    pointer-events: none;
    transform-origin: left center;
}

.meteor .head {
    position: absolute;
    width: 4px;
    height: 4px;
    background-color: rgba(255, 255, 255, 1);
    border-radius: 50%;
    box-shadow: 0 0 10px 2px rgba(255, 255, 255, 0.8);
    z-index: 2;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
}

.meteor .tail {
    position: absolute;
    height: 2px;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.6));
    border-radius: 50% / 25%;
    z-index: 1;
    top: 50%;
    transform: translateY(-50%);
    opacity: 0;
}

/* 流星动画类 */
.meteor-anim {
    animation: meteor 3s linear forwards;
}

.meteor-anim .head {
    animation: headGlow 3s linear forwards;
}

.meteor-anim .tail {
    animation: tailFade 3s linear forwards;
}

@keyframes meteor {
    0% {
        opacity: 0;
        transform: rotate(var(--angle, 45deg)) translateX(0) scale(0);
    }
    0.1% {
        opacity: 1;
        transform: rotate(var(--angle, 45deg)) translateX(1px) scale(0.1);
    }
    1% {
        opacity: 1;
        transform: rotate(var(--angle, 45deg)) translateX(5px) scale(0.8);
    }
    10% {
        opacity: 1;
        transform: rotate(var(--angle, 45deg)) translateX(50px) scale(1);
    }
    80% {
        opacity: 0.6;
        transform: rotate(var(--angle, 45deg)) translateX(300px) scale(1);
    }
    90% {
        opacity: 0.5;
        transform: rotate(var(--angle, 45deg)) translateX(350px) scale(1);
    }
    95% {
        opacity: 0.8;
        transform: rotate(var(--angle, 45deg)) translateX(375px) scale(1.5);
    }
    100% {
        opacity: 0;
        transform: rotate(var(--angle, 45deg)) translateX(400px) scale(3);
    }
}

@keyframes headGlow {
    0% {
        box-shadow: 0 0 0 0 rgba(255, 255, 255, 0);
    }
    0.1% {
        box-shadow: 0 0 5px 1px rgba(255, 255, 255, 0.5);
    }
    1% {
        box-shadow: 0 0 10px 2px rgba(255, 255, 255, 0.8);
    }
    100% {
        box-shadow: 0 0 15px 3px rgba(255, 255, 255, 0.4);
    }
}

@keyframes tailFade {
    0% {
        opacity: 0;
    }
    0.1% {
        opacity: 0.8;
    }
    1% {
        opacity: 0.8;
    }
    10% {
        opacity: 0.8;
    }
    80% {
        opacity: 0.4;
    }
    90% {
        opacity: 0.3;
    }
    95% {
        opacity: 0.5;
    }
    100% {
        opacity: 0;
    }
}