/* ── Base ── */
html { scroll-behavior: smooth; }
body { overflow-x: hidden; }

/* ── Navbar ── */
.nav-link { position: relative; }

#navbar.scrolled {
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(12px);
    box-shadow: 0 4px 30px rgba(107, 58, 110, 0.08);
}

/* ── Float animations ── */
@keyframes float-slow {
    0%, 100% { transform: translateY(0px); }
    50%       { transform: translateY(-12px); }
}
@keyframes float-medium {
    0%, 100% { transform: translateY(0px); }
    50%       { transform: translateY(-8px); }
}
@keyframes float-fast {
    0%, 100% { transform: translateY(0px); }
    50%       { transform: translateY(-16px); }
}

.animate-float-slow    { animation: float-slow    5s ease-in-out infinite; }
.animate-float-medium  { animation: float-medium  4s ease-in-out infinite; }
.animate-float-fast    { animation: float-fast    3.5s ease-in-out infinite; }

/* ── Scroll reveal (progressive enhancement) ── */
@media (prefers-reduced-motion: no-preference) {
    .reveal {
        opacity: 0;
        transform: translateY(32px);
        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);
    }
    .reveal-delay-1 { transition-delay: 0.1s; }
    .reveal-delay-2 { transition-delay: 0.2s; }
    .reveal-delay-3 { transition-delay: 0.3s; }
    .reveal-delay-4 { transition-delay: 0.4s; }
}

/* Fallback: content always visible if JS disabled */
@media not all and (prefers-reduced-motion: no-preference) {
    .reveal { opacity: 1; transform: none; }
}

/* ── Mobile menu ── */
.mobile-link { display: block; }

/* ── Focus styles ── */
a:focus-visible,
button:focus-visible {
    outline: 3px solid #F5C518;
    outline-offset: 2px;
    border-radius: 4px;
}

/* ── Selection ── */
::selection {
    background: #6B3A6E;
    color: #F5C518;
}
