.campo-sky {
    position: absolute;
    inset: 0;
    overflow: hidden;
    pointer-events: none;
}

.campo-wash {
    position: absolute;
    width: 62vw;
    height: 48vh;
    border-radius: 50%;
    filter: blur(8px);
}

.campo-wash--cyan {
    left: -12%;
    bottom: -14%;
    background: radial-gradient(circle, rgba(0, 198, 220, 0.32), rgba(0, 140, 190, 0.08) 42%, transparent 70%);
    animation: campo-cyan 18s ease-in-out infinite alternate;
}

.campo-wash--magenta {
    right: -14%;
    bottom: -8%;
    width: 54vw;
    background: radial-gradient(circle, rgba(255, 60, 180, 0.28), rgba(120, 20, 80, 0.06) 46%, transparent 72%);
    animation: campo-magenta 22s ease-in-out infinite alternate;
}

.campo-streaks {
    position: absolute;
    left: -30%;
    bottom: -8%;
    width: 160%;
    height: var(--streak-h, 54%);
    object-fit: cover;
    object-position: center bottom;
    pointer-events: none;
    -webkit-mask-image: linear-gradient(to top, #000 70%, transparent);
    mask-image: linear-gradient(to top, #000 70%, transparent);
}

.campo-streaks--a { animation: campo-line-a 26s ease-in-out infinite alternate; }
.campo-streaks--b {
    opacity: 0.4;
    animation: campo-line-b 34s ease-in-out infinite alternate;
}
.campo-streaks--c {
    opacity: 0.18;
    bottom: 0;
    animation: campo-line-c 20s ease-in-out infinite alternate;
}

@keyframes campo-cyan {
    from { transform: translate3d(0, 0, 0) scale(1); }
    to { transform: translate3d(14vw, -8vh, 0) scale(1.18); }
}

@keyframes campo-magenta {
    from { transform: translate3d(0, 0, 0) scale(1.05); }
    to { transform: translate3d(-12vw, 6vh, 0) scale(0.9); }
}

@keyframes campo-line-a {
    from { transform: translate3d(-2%, 0, 0); }
    to { transform: translate3d(2.5%, 0.6%, 0); }
}

@keyframes campo-line-b {
    from { transform: translate3d(2%, 0.4%, 0); }
    to { transform: translate3d(-2.5%, -0.3%, 0); }
}

@keyframes campo-line-c {
    from { transform: translate3d(1%, 0, 0); }
    to { transform: translate3d(-1.5%, 0.4%, 0); }
}

@media (prefers-reduced-motion: reduce) {
    .campo-wash,
    .campo-streaks { animation: none; }
}
