/* Base */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

/* Hero animations */
.hero-sub { animation: fadeUp 0.8s ease both; }
.hero-title { animation: fadeUp 0.8s 0.15s ease both; }
.hero-desc { animation: fadeUp 0.8s 0.3s ease both; }
.hero-cta { animation: fadeUp 0.8s 0.45s ease both; }
.hero-stats { animation: fadeUp 0.8s 0.6s ease both; }
.hero-img { animation: fadeIn 1s 0.3s ease both; }
.hero-scroll { animation: fadeIn 1s 0.8s ease both; }

@keyframes fadeUp {
    from { opacity: 0; transform: translateY(24px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

/* Scroll reveal (progressive enhancement) */
@media (prefers-reduced-motion: no-preference) {
    .section-reveal {
        opacity: 0;
        transform: translateY(30px);
        transition: opacity 0.7s ease, transform 0.7s ease;
    }
    .section-reveal.revealed {
        opacity: 1;
        transform: translateY(0);
    }
}

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

/* Navbar transitions */
.nav-text { transition: color 0.3s ease; }
.nav-btn { transition: all 0.3s ease; }
.nav-line { transition: all 0.3s ease; }

/* Mobile menu */
#mobile-menu.open {
    opacity: 1;
    pointer-events: all;
}

/* Custom scrollbar */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: #fafaf8; }
::-webkit-scrollbar-thumb { background: #d4d4d4; border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: #a3a3a3; }

/* Smooth focus */
a:focus-visible, button:focus-visible {
    outline: 2px solid #fbbf24;
    outline-offset: 4px;
    border-radius: 2px;
}
