/* Ambient deep-space atmosphere and shared glow utilities */

body {
    position: relative;
    isolation: isolate;
}

body::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: -2;
    pointer-events: none;
    background:
        radial-gradient(ellipse 70% 45% at 12% 18%, rgba(70, 120, 200, 0.14), transparent 58%),
        radial-gradient(ellipse 55% 40% at 88% 72%, rgba(100, 60, 160, 0.1), transparent 52%),
        radial-gradient(ellipse 45% 35% at 50% 105%, rgba(90, 159, 212, 0.08), transparent 48%);
}

body::after {
    content: "";
    position: fixed;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    opacity: 0.35;
    background-image:
        radial-gradient(1px 1px at 20% 30%, rgba(200, 220, 255, 0.45), transparent),
        radial-gradient(1px 1px at 60% 70%, rgba(200, 220, 255, 0.35), transparent),
        radial-gradient(1px 1px at 80% 20%, rgba(200, 220, 255, 0.3), transparent),
        radial-gradient(1px 1px at 40% 85%, rgba(200, 220, 255, 0.25), transparent),
        radial-gradient(1.5px 1.5px at 75% 45%, rgba(180, 210, 255, 0.4), transparent),
        radial-gradient(1px 1px at 10% 60%, rgba(200, 220, 255, 0.3), transparent),
        radial-gradient(1px 1px at 92% 88%, rgba(200, 220, 255, 0.28), transparent);
    background-size: 100% 100%;
}

@media (prefers-reduced-motion: no-preference) {
    body::after {
        animation: atmosphere-drift 120s linear infinite;
    }
}

@keyframes atmosphere-drift {
    0% { transform: translate3d(0, 0, 0); }
    50% { transform: translate3d(-0.4%, 0.25%, 0); }
    100% { transform: translate3d(0, 0, 0); }
}

@media (prefers-reduced-motion: reduce) {
    body::after {
        animation: none;
    }
}
