@keyframes fall {
    0% {
        transform: translateY(-10vh) rotate(0deg);
    }
    100% {
        transform: translateY(110vh) rotate(360deg);
    }
}
.snowflake {
    position: absolute;
    background-color: white;
    border-radius: 50%;
    pointer-events: none;
    animation: fall linear infinite;
    opacity: 0.8;
    z-index: 1;
    filter: drop-shadow(0 0 5px rgba(255, 255, 255, 0.7));
}
#start-screen, #quiz-container, #result-screen {
    background-color: rgba(17, 24, 39, 0.7);
    padding: 2rem;
    border-radius: 1rem;
    backdrop-filter: blur(5px);
    border: 1px solid rgba(255, 255, 255, 0.1);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
}
#present:hover .ribbon {
    animation: bounce 0.5s ease infinite alternate;
}

@keyframes bounce {
    from {
        transform: translateY(0);
    }
    to {
        transform: translateY(-10px);
    }
}
/* Glitter animation */
@keyframes glitter {
    0% {
        transform: translateY(0) rotate(0deg);
        opacity: 0;
    }
    10% {
        opacity: 1;
    }
    90% {
        opacity: 1;
    }
    100% {
        transform: translateY(-20px) rotate(360deg);
        opacity: 0;
    }
}

.glitter-particle {
    position: absolute;
    background-color: gold;
    border-radius: 50%;
    pointer-events: none;
    animation: glitter ease-in-out infinite;
    z-index: 5;
}
/* Twinkling lights effect */
@keyframes twinkle {
    0%, 100% {
        opacity: 0.2;
    }
    50% {
        opacity: 1;
    }
}

.light {
    position: absolute;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background-color: rgba(255, 215, 0, 0.8);
    animation: twinkle 3s ease-in-out infinite;
    z-index: 0;
}

/* Present hover effects */
#present {
    transition: transform 0.3s ease;
}
#present:hover {
    transform: scale(1.05) rotate(-2deg);
}

/* Present opening animation */
@keyframes presentOpen {
    0% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.1) rotate(5deg);
    }
    100% {
        transform: scale(0.9) rotate(-5deg);
        opacity: 0;
    }
}

@keyframes lidOpen {
    0% {
        transform: rotateX(0deg);
        top: 0;
    }
    100% {
        transform: rotateX(-45deg);
        top: -20%;
    }
}
@keyframes confetti {
    0% {
        transform: translateY(0) rotate(0deg);
        opacity: 1;
    }
    100% {
        transform: translateY(-100vh) rotate(360deg);
        opacity: 0;
    }
}

@keyframes fullscreenExplosion {
    0% {
        transform: scale(0);
        opacity: 0;
    }
    50% {
        opacity: 1;
    }
    100% {
        transform: scale(1);
        opacity: 0;
    }
}

.fullscreen-animation {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: radial-gradient(circle, rgba(255,215,0,0.8) 0%, rgba(255,0,0,0.8) 100%);
    z-index: 9999;
    pointer-events: none;
    animation: fullscreenExplosion 1s ease-out forwards;
}
.present-opening {
    animation: presentOpen 0.8s forwards;
}

.lid-opening {
    animation: lidOpen 0.8s forwards;
}

.confetti {
    position: absolute;
    width: 8px;
    height: 8px;
    background-color: gold;
    border-radius: 50%;
    animation: confetti 1s ease-out forwards;
    z-index: 100;
    pointer-events: none;
}
#present:hover .glitter-particle {
    animation-play-state: running;
}

.option-btn {
    transition: all 0.3s ease;
}
.option-btn:hover:not(.disabled) {
    transform: translateY(-3px);
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

.correct {
    background-color: #22c55e !important;
    color: white !important;
}

.incorrect {
    background-color: #ef4444 !important;
    color: white !important;
}

.disabled {
    opacity: 0.7;
    cursor: not-allowed;
}