/* 动态粒子画布 */
#convergence-matrix {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    z-index: -2;
    pointer-events: none;
    opacity: 0.6;
}

/* 星云 */
.nebula {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 60vh;
    background: radial-gradient(ellipse at bottom, rgba(50, 20, 80, 0.7) 0%, rgba(20, 10, 40, 0.4) 40%, transparent 80%);
    pointer-events: none;
    z-index: -1;
    mix-blend-mode: screen;
}

/* 星星 */
.stars {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: transparent;
    pointer-events: none;
    z-index: -1;
    background-image: radial-gradient(2px 2px at 15% 30%, #fff, rgba(0,0,0,0)), radial-gradient(1px 1px at 70% 85%, #fff, rgba(0,0,0,0)), radial-gradient(1px 1px at 45% 55%, #fff, rgba(0,0,0,0)), radial-gradient(3px 3px at 90% 20%, #fff, rgba(0,0,0,0));
    background-repeat: no-repeat;
    background-size: 200px 200px, 100px 100px, 150px 150px, 300px 300px;
    opacity: 0.4;
    animation: twinkle 5s infinite alternate;
}

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

/* 噪点 */
.noise {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0.03;
    z-index: -1;
    pointer-events: none;
    background-image: url('data:image/svg+xml,%3Csvg viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg"%3E%3Cfilter id="noiseFilter"%3E%3CfeTurbulence type="fractalNoise" baseFrequency="0.65" numOctaves="3" stitchTiles="stitch"/%3E%3C/filter%3E%3Crect width="100%25" height="100%25" filter="url(%23noiseFilter)"/%3E%3C/svg%3E');
}