/* Animated light streaks background
   Cross-fade loop: two layers offset by half-cycle
   Each fades out before reset, so the jump is invisible
   Colors: red (#de2626) + blue (#58a6ff) */

body::before,
body::after {
    content: '';
    position: fixed;
    top: -20vh;
    left: -200vw;
    width: 500vw;
    height: 140vh;
    pointer-events: none;
    z-index: 0;
    background:
        /* Primary red glow */
        linear-gradient(8deg,
            transparent 28%,
            rgba(222,38,38,0) 33%,
            rgba(222,38,38,0.1) 37%,
            rgba(222,38,38,0.22) 39%,
            rgba(222,38,38,0.1) 41%,
            rgba(222,38,38,0) 45%,
            transparent 50%),
        /* Blue glow */
        linear-gradient(-5deg,
            transparent 44%,
            rgba(88,166,255,0) 48%,
            rgba(88,166,255,0.08) 52%,
            rgba(88,166,255,0.16) 54%,
            rgba(88,166,255,0.08) 56%,
            rgba(88,166,255,0) 60%,
            transparent 64%),
        /* Red haze */
        linear-gradient(15deg,
            transparent 20%,
            rgba(222,38,38,0) 24%,
            rgba(222,38,38,0.06) 28%,
            rgba(222,38,38,0.12) 30%,
            rgba(222,38,38,0.06) 32%,
            rgba(222,38,38,0) 36%,
            transparent 40%),
        /* Sharp red streak */
        linear-gradient(6deg,
            transparent 32%,
            rgba(222,38,38,0) 36%,
            rgba(222,38,38,0.08) 38.5%,
            rgba(222,38,38,0.18) 39.5%,
            rgba(222,38,38,0.08) 40.5%,
            rgba(222,38,38,0) 43%,
            transparent 47%),
        /* Sharp blue streak */
        linear-gradient(-3deg,
            transparent 48%,
            rgba(88,166,255,0) 51%,
            rgba(88,166,255,0.06) 53.5%,
            rgba(88,166,255,0.12) 54.5%,
            rgba(88,166,255,0.06) 55.5%,
            rgba(88,166,255,0) 58%,
            transparent 61%),
        /* Deep red wash */
        linear-gradient(11deg,
            transparent 62%,
            rgba(180,30,30,0) 65%,
            rgba(180,30,30,0.05) 68%,
            rgba(180,30,30,0.09) 70%,
            rgba(180,30,30,0.05) 72%,
            rgba(180,30,30,0) 75%,
            transparent 78%);
    animation: sweep 20s linear infinite;
}

body::after {
    animation-delay: -10s;
}

@keyframes sweep {
    0%   { transform: translateX(0);     opacity: 0; }
    8%   {                               opacity: 1; }
    92%  {                               opacity: 1; }
    100% { transform: translateX(150vw); opacity: 0; }
}
