@keyframes doorOpen {
    0% { transform: perspective(800px) rotateY(0); }
    50% { transform: perspective(800px) rotateY(-90deg); }
    100% { transform: perspective(800px) rotateY(-180deg); }
}

@keyframes doorClose {
    0% { transform: perspective(800px) rotateY(-180deg); }
    50% { transform: perspective(800px) rotateY(-90deg); }
    100% { transform: perspective(800px) rotateY(0); }
}

@keyframes snowflakes {
    0% { transform: translateY(0) rotate(0deg); opacity: 0; }
    10% { opacity: 1; }
    90% { opacity: 1; }
    100% { transform: translateY(100vh) rotate(360deg); opacity: 0; }
}

.door-open {
    animation: doorOpen 1.5s forwards;
}

.door-close {
    animation: doorClose 1.5s forwards;
}

.snowflake {
    position: fixed;
    top: -10px;
    z-index: 9999;
    color: white;
    user-select: none;
    pointer-events: none;
    animation: snowflakes linear;
}

.door:hover .door-front {
    transform: translateY(-5px);
}

.door-front {
    transition: transform 0.3s ease;
}