@font-face {
    font-family: 'Lilita One';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/lilitaone/v17/i7dPIFZ9Zz-WBtRtedDbYEF8RQ.woff2) format('woff2');
}

body {
    font-family: 'Lilita One', cursive;
}

/* Scrollbar */
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: #1e3a8a; }
::-webkit-scrollbar-thumb { background: #fbbf24; border-radius: 4px; }

/* Text Strokes */
.text-stroke-sm { -webkit-text-stroke: 1.5px black; paint-order: stroke fill; text-shadow: 0 1px 0 #000; }
.text-stroke { -webkit-text-stroke: 3px black; paint-order: stroke fill; text-shadow: 0 1.75px 0 #000; }
.text-stroke-md { -webkit-text-stroke: 4.5px black; paint-order: stroke fill; text-shadow: 0 2.5px 0 #000; }
.text-stroke-lg { -webkit-text-stroke: 7px black; paint-order: stroke fill; text-shadow: 0 3.5px 0 #000; }

/* Animations */
.animate-fade-in { animation: fadeIn .3s ease-out forwards; }
.animate-scale-in { animation: scaleIn .3s ease-out forwards; }

@keyframes fadeIn { 0% { opacity: 0; } 100% { opacity: 1; } }
@keyframes scaleIn { 0% { transform: scale(.95); opacity: 0; } 100% { transform: scale(1); opacity: 1; } }

@keyframes float-logo {
    0%, 100% { transform: translateY(0px) scale(1) rotate(0deg); }
    50% { transform: translateY(-8px) scale(1.03) rotate(1deg); }
}
.animate-float-logo { animation: float-logo 4s ease-in-out infinite; }

@keyframes float-icon {
    0%, 100% { transform: translateY(0px) rotate(-2deg); }
    50% { transform: translateY(-2px) rotate(2deg); }
}
.animate-float-icon { animation: float-icon 3s ease-in-out infinite; }

@keyframes scroll-bg {
    0% { background-position: 0 0; }
    100% { background-position: 360px 360px; }
}
.animate-scroll-bg { animation: scroll-bg 25s linear infinite; }

@keyframes pulse-adult {
    0% { transform: scale(1); box-shadow: 0 0 10px rgba(220, 38, 38, 0.4); }
    50% { transform: scale(1.05); box-shadow: 0 0 25px rgba(220, 38, 38, 0.8); }
    100% { transform: scale(1); box-shadow: 0 0 10px rgba(220, 38, 38, 0.4); }
}
.animate-pulse-adult { animation: pulse-adult 2s infinite; }

/* Custom Error Toast */
#toast-container { position: fixed; top: 20px; left: 50%; transform: translateX(-50%); z-index: 9999; display: flex; flex-direction: column; gap: 10px; width: 90%; max-width: 350px; pointer-events: none; }
.custom-toast { background: #fff; border: 3px solid #ef4444; border-radius: 12px; padding: 12px 16px; box-shadow: 0 6px 0 rgba(239,68,68,0.25); color: #1f2a44; font-weight: 800; font-size: 14px; font-family: 'Lilita One', cursive; letter-spacing: 1px; display: flex; align-items: center; gap: 12px; animation: slideDownFade 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards; pointer-events: auto; }
.custom-toast i { font-size: 20px; color: #ef4444; }
@keyframes slideDownFade { 0% { opacity: 0; transform: translateY(-30px) scale(0.9); } 100% { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes fadeOutUp { 0% { opacity: 1; transform: translateY(0) scale(1); } 100% { opacity: 0; transform: translateY(-20px) scale(0.9); } }

/* Cards Specific */
.card-item {
    background: #8436f5; position: relative; overflow: hidden;
    border: 3px solid #5b24b8; border-radius: 1.25rem;
    box-shadow: 0 4px 0 #411887;
    transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
    cursor: pointer; display: flex; flex-direction: column; align-items: center; padding: 12px;
}
.card-item:hover { transform: scale(1.05) translateY(-4px); box-shadow: 0 8px 0 #411887; }
.card-item:active { transform: scale(0.95) translateY(4px); box-shadow: none; }