/* Custom styles for Ma lettre au père noël */

/* Borel font */
.borel {
    font-family: 'Borel', cursive;
}

/* Smooth scrolling */
html {
    scroll-behavior: smooth;
}

/* Focus visible for accessibility */
button:focus-visible,
a:focus-visible,
input:focus-visible {
    outline: 2px solid #dc2626;
    outline-offset: 2px;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}

/* Print styles */
@media print {
    .no-print {
        display: none !important;
    }

    body {
        background: white !important;
        color: black !important;
    }

    a {
        text-decoration: underline;
    }

    .shadow-lg,
    .shadow-xl,
    .shadow-2xl {
        box-shadow: none !important;
    }
}

/* Snowfall animation */
@keyframes snowfall {
    0% {
        transform: translateY(-10vh) translateX(0) rotate(0deg);
        opacity: 1;
    }
    50% {
        transform: translateY(50vh) translateX(20px) rotate(360deg);
    }
    100% {
        transform: translateY(110vh) translateX(-20px) rotate(720deg);
        opacity: 0.3;
    }
}

.snow-container {
    position: absolute;
    inset: 0;
    overflow: hidden;
    pointer-events: none;
}

.snowflake {
    position: absolute;
    top: -10px;
    background: white;
    border-radius: 50%;
    opacity: 0.8;
    animation: snowfall linear infinite;
    box-shadow: 0 0 5px rgba(255, 255, 255, 0.5);
}

/* Generate random positions and sizes for snowflakes */
.snowflake:nth-child(1) { left: 2%; width: 8px; height: 8px; animation-duration: 8s; animation-delay: 0s; }
.snowflake:nth-child(2) { left: 5%; width: 5px; height: 5px; animation-duration: 12s; animation-delay: 1s; }
.snowflake:nth-child(3) { left: 8%; width: 10px; height: 10px; animation-duration: 10s; animation-delay: 0.5s; }
.snowflake:nth-child(4) { left: 12%; width: 6px; height: 6px; animation-duration: 14s; animation-delay: 2s; }
.snowflake:nth-child(5) { left: 15%; width: 4px; height: 4px; animation-duration: 9s; animation-delay: 0.2s; }
.snowflake:nth-child(6) { left: 18%; width: 7px; height: 7px; animation-duration: 11s; animation-delay: 3s; }
.snowflake:nth-child(7) { left: 22%; width: 9px; height: 9px; animation-duration: 8s; animation-delay: 1.5s; }
.snowflake:nth-child(8) { left: 25%; width: 5px; height: 5px; animation-duration: 13s; animation-delay: 0.8s; }
.snowflake:nth-child(9) { left: 28%; width: 6px; height: 6px; animation-duration: 10s; animation-delay: 2.5s; }
.snowflake:nth-child(10) { left: 32%; width: 8px; height: 8px; animation-duration: 9s; animation-delay: 0.3s; }
.snowflake:nth-child(11) { left: 35%; width: 4px; height: 4px; animation-duration: 12s; animation-delay: 1.8s; }
.snowflake:nth-child(12) { left: 38%; width: 7px; height: 7px; animation-duration: 11s; animation-delay: 0.6s; }
.snowflake:nth-child(13) { left: 42%; width: 10px; height: 10px; animation-duration: 8s; animation-delay: 2.2s; }
.snowflake:nth-child(14) { left: 45%; width: 5px; height: 5px; animation-duration: 14s; animation-delay: 1.2s; }
.snowflake:nth-child(15) { left: 48%; width: 6px; height: 6px; animation-duration: 10s; animation-delay: 0.9s; }
.snowflake:nth-child(16) { left: 52%; width: 8px; height: 8px; animation-duration: 9s; animation-delay: 3.5s; }
.snowflake:nth-child(17) { left: 55%; width: 4px; height: 4px; animation-duration: 13s; animation-delay: 0.4s; }
.snowflake:nth-child(18) { left: 58%; width: 7px; height: 7px; animation-duration: 11s; animation-delay: 2.8s; }
.snowflake:nth-child(19) { left: 62%; width: 9px; height: 9px; animation-duration: 8s; animation-delay: 1.1s; }
.snowflake:nth-child(20) { left: 65%; width: 5px; height: 5px; animation-duration: 12s; animation-delay: 0.7s; }
.snowflake:nth-child(21) { left: 68%; width: 6px; height: 6px; animation-duration: 10s; animation-delay: 3.2s; }
.snowflake:nth-child(22) { left: 72%; width: 8px; height: 8px; animation-duration: 9s; animation-delay: 1.6s; }
.snowflake:nth-child(23) { left: 75%; width: 4px; height: 4px; animation-duration: 14s; animation-delay: 0.1s; }
.snowflake:nth-child(24) { left: 78%; width: 7px; height: 7px; animation-duration: 11s; animation-delay: 2.4s; }
.snowflake:nth-child(25) { left: 82%; width: 10px; height: 10px; animation-duration: 8s; animation-delay: 1.9s; }
.snowflake:nth-child(26) { left: 85%; width: 5px; height: 5px; animation-duration: 13s; animation-delay: 0.5s; }
.snowflake:nth-child(27) { left: 88%; width: 6px; height: 6px; animation-duration: 10s; animation-delay: 3.8s; }
.snowflake:nth-child(28) { left: 92%; width: 8px; height: 8px; animation-duration: 9s; animation-delay: 1.3s; }
.snowflake:nth-child(29) { left: 95%; width: 4px; height: 4px; animation-duration: 12s; animation-delay: 2.1s; }
.snowflake:nth-child(30) { left: 98%; width: 7px; height: 7px; animation-duration: 11s; animation-delay: 0.8s; }
.snowflake:nth-child(31) { left: 3%; width: 6px; height: 6px; animation-duration: 10s; animation-delay: 4s; }
.snowflake:nth-child(32) { left: 10%; width: 9px; height: 9px; animation-duration: 8s; animation-delay: 2.6s; }
.snowflake:nth-child(33) { left: 20%; width: 5px; height: 5px; animation-duration: 13s; animation-delay: 1.4s; }
.snowflake:nth-child(34) { left: 30%; width: 7px; height: 7px; animation-duration: 9s; animation-delay: 3.1s; }
.snowflake:nth-child(35) { left: 40%; width: 4px; height: 4px; animation-duration: 12s; animation-delay: 0.2s; }
.snowflake:nth-child(36) { left: 50%; width: 8px; height: 8px; animation-duration: 10s; animation-delay: 2.9s; }
.snowflake:nth-child(37) { left: 60%; width: 6px; height: 6px; animation-duration: 11s; animation-delay: 1.7s; }
.snowflake:nth-child(38) { left: 70%; width: 10px; height: 10px; animation-duration: 8s; animation-delay: 3.6s; }
.snowflake:nth-child(39) { left: 80%; width: 5px; height: 5px; animation-duration: 14s; animation-delay: 0.6s; }
.snowflake:nth-child(40) { left: 90%; width: 7px; height: 7px; animation-duration: 9s; animation-delay: 2.3s; }
.snowflake:nth-child(41) { left: 7%; width: 6px; height: 6px; animation-duration: 12s; animation-delay: 4.2s; }
.snowflake:nth-child(42) { left: 17%; width: 8px; height: 8px; animation-duration: 10s; animation-delay: 1s; }
.snowflake:nth-child(43) { left: 27%; width: 4px; height: 4px; animation-duration: 11s; animation-delay: 3.4s; }
.snowflake:nth-child(44) { left: 37%; width: 9px; height: 9px; animation-duration: 8s; animation-delay: 0.9s; }
.snowflake:nth-child(45) { left: 47%; width: 5px; height: 5px; animation-duration: 13s; animation-delay: 2.7s; }
.snowflake:nth-child(46) { left: 57%; width: 7px; height: 7px; animation-duration: 9s; animation-delay: 1.5s; }
.snowflake:nth-child(47) { left: 67%; width: 6px; height: 6px; animation-duration: 12s; animation-delay: 3.9s; }
.snowflake:nth-child(48) { left: 77%; width: 8px; height: 8px; animation-duration: 10s; animation-delay: 0.4s; }
.snowflake:nth-child(49) { left: 87%; width: 4px; height: 4px; animation-duration: 11s; animation-delay: 2s; }
.snowflake:nth-child(50) { left: 97%; width: 10px; height: 10px; animation-duration: 8s; animation-delay: 3.3s; }

/* Card hover effects */
.toy-card {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.toy-card:hover {
    transform: scale(1.05);
}

/* Modal animation */
.modal-enter {
    animation: modalFadeIn 0.3s ease;
}

@keyframes modalFadeIn {
    from {
        opacity: 0;
        transform: scale(0.9);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}

/* Hide scrollbar for gift slots */
.scrollbar-hide::-webkit-scrollbar {
    display: none;
}

.scrollbar-hide {
    -ms-overflow-style: none;
    scrollbar-width: none;
}

/* Gift slots container - show max 10 slots */
.gift-slots-wrapper {
    max-width: 436px; /* 10 slots * 40px + 9 gaps * 4px */
}

@media (min-width: 768px) {
    .gift-slots-wrapper {
        max-width: 632px; /* 10 slots * 56px + 9 gaps * 8px */
    }
}
