body {
    font-family: 'Nunito', sans-serif;
    background-color: #fff5f9;
    color: #6b21a8;
    overflow-x: hidden;
}

/* Mobile menu positioning fix */
#mobile-menu {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 50;
}

/* Prevent navbar layout shift on mobile */
@media (max-width: 768px) {
    nav .flex {
        position: relative;
    }
    
    #mobile-menu-button {
        position: relative;
        z-index: 51;
    }
}

h1, h2, h3, h4 {
    font-family: 'Fredoka One', cursive;
}

.blossom {
    position: absolute;
    width: 20px;
    height: 20px;
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="%23f9a8d4"><path d="M12 2C13.1 2 14 2.9 14 4S13.1 6 12 6 10 5.1 10 4 10.9 2 12 2m3.5 6.5c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5S14 6.17 14 7s.67 1.5 1.5 1.5M15 15c0-.55-.45-1-1-1h-4c-.55 0-1 .45-1 1v1.5c0 1.66 1.34 3 3 3s3-1.34 3-3V15M6 8c-.83 0-1.5.67-1.5 1.5S5.17 11 6 11s1.5-.67 1.5-1.5S6.83 8 6 8m3 13c-.55 0-1-.45-1-1v-1.5c0-1.66 1.34-3 3-3s3 1.34 3 3V20c0 .55-.45 1-1 1H9m9-5c0 .55.45 1 1 1s1-.45 1-1v-1.5c0-1.66-1.34-3-3-3s-3 1.34-3 3V15m-3.5-8.5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5S13 8.33 13 7.5 12.33 6 11.5 6z"/></svg>');
    background-size: contain;
    opacity: 0.7;
    animation: falling linear infinite;
    z-index: 0;
}

@keyframes falling {
    0% {
        transform: translate(0, -10px) rotate(0deg);
        opacity: 0;
    }
    10% {
        opacity: 0.7;
    }
    100% {
        transform: translate(var(--end-x), 100vh) rotate(360deg);
        opacity: 0;
    }
}

.glow:hover {
    box-shadow: 0 0 15px #f9a8d4;
}

.bounce {
    animation: bounce 2s infinite;
}

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

.card {
    transition: transform 0.3s ease;
}

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