/* ─── Custom Animations ─── */
@keyframes float-slow {
    0%, 100% { transform: translateY(0px); }
    50% { transform: translateY(-10px); }
}
@keyframes float-medium {
    0%, 100% { transform: translateY(0px); }
    50% { transform: translateY(-8px); }
}
@keyframes float-fast {
    0%, 100% { transform: translateY(0px); }
    50% { transform: translateY(-6px); }
}
@keyframes marquee {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}

.animate-float-slow { animation: float-slow 4s ease-in-out infinite; }
.animate-float-medium { animation: float-medium 3s ease-in-out infinite; }
.animate-float-fast { animation: float-fast 2.5s ease-in-out infinite; }
.animate-marquee { animation: marquee 30s linear infinite; }

/* ─── Scroll Reveal ─── */
@media (prefers-reduced-motion: no-preference) {
    .reveal {
        opacity: 0;
        transform: translateY(24px);
        transition: opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1), transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
    }
    .reveal.revealed {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Fallback: always visible when reduced motion */
@media (prefers-reduced-motion: reduce) {
    .reveal {
        opacity: 1;
        transform: none;
    }
}

/* ─── Scrollbar ─── */
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: #faf5f9; }
::-webkit-scrollbar-thumb { background: #d9a8c4; border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: #c57ba5; }

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

/* ─── Selection ─── */
::selection { background: #fbbf24; color: #2b1120; }

/* ─── Mobile Menu Transition ─── */
#mobile-menu {
    animation: slideDown 0.3s cubic-bezier(0.22, 1, 0.36, 1);
}
@keyframes slideDown {
    from { opacity: 0; transform: translateY(-8px); }
    to { opacity: 1; transform: translateY(0); }
}

/* ─── Navbar scroll state ─── */
#site-header.scrolled #site-header > .absolute {
    background: rgba(43, 17, 32, 0.97);
}
