body {
    margin: 0;
    padding: 0;
    height: 100vh;
    width: 100vw;
    overflow: hidden;
    font-family: 'Gaegu', cursive;
    background-image: url('Blue%20Sky.jpg'); 
    background-size: cover;
    background-position: center;
}

.screensaver-viewport {
    width: 100%;
    height: 100%;
    position: relative;
}

/* --- THE TEXT (TOP OF SCREEN) --- */
.bff-text {
    position: absolute;
    top: 2%; 
    left: 50%;
    transform: translateX(-50%);
    font-size: 110px;
    color: #ff4081;
    white-space: nowrap;
    text-shadow: -4px -4px 0 white, 4px -4px 0 white, -4px 4px 0 white, 4px 4px 0 white, 0 0 30px #ffd700;
    z-index: 20;
    animation: floatText 3s ease-in-out infinite;
}

/* --- THE GROUP (BIG & JUMPY) --- */
.grass-zone {
    position: absolute;
    bottom: -2%; 
    left: 50%;
    transform: translateX(-50%);
    width: 1200px; 
}

.squad-jump {
    width: 100%;
    animation: jumpHigh 1.3s ease-in-out infinite;
}

/* --- GOLD SPARKLES --- */
.sparkle-container {
    position: absolute;
    width: 100%;
    height: 100%;
    background-image: 
        radial-gradient(circle, #ffd700 1.5px, transparent 1.5px),
        radial-gradient(circle, #ffffff 1px, transparent 1px);
    background-size: 80px 80px, 150px 150px;
    animation: fallingSparkles 6s linear infinite;
    z-index: 5;
    opacity: 0.7;
}

/* --- ANIMATIONS --- */

@keyframes jumpHigh {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-300px); } 
}

@keyframes fallingSparkles {
    from { background-position: 0 0; }
    to { background-position: 0 1000px; }
}

@keyframes floatText {
    0%, 100% { transform: translate(-50%, 0); }
    50% { transform: translate(-50%, -25px); }
}