/* ── Scroll Reveal (fade-in) ── */
[data-visible="false"] {
    opacity: 0;
    transform: translateY(2rem);
    transition: none;
}

[data-visible="true"] {
    opacity: 1;
    transform: translateY(0);
    transition: all 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}

[data-visible="true"][data-stagger="1"] { transition-delay: 100ms; }
[data-visible="true"][data-stagger="2"] { transition-delay: 200ms; }
[data-visible="true"][data-stagger="3"] { transition-delay: 300ms; }
[data-visible="true"][data-stagger="4"] { transition-delay: 400ms; }
[data-visible="true"][data-stagger="5"] { transition-delay: 500ms; }
[data-visible="true"][data-stagger="6"] { transition-delay: 600ms; }

/* ── Utilities ── */
.no-scrollbar::-webkit-scrollbar { 
    display: none; 
}
.no-scrollbar { 
    -ms-overflow-style: none; 
    scrollbar-width: none; 
}

/* ── Nav Link Active ── */
.nav-link.active {
    color: #742fe5;
}
.mobile-link.active {
    color: #742fe5;
    background: rgba(116, 47, 229, 0.05);
}
.mobile-link.active span:first-child {
    background: #742fe5;
    color: white;
}

/* ── Card Hover Lift ── */
.card-hover {
    transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1),
                box-shadow 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}
.card-hover:hover {
    transform: translateY(-4px);
    box-shadow: 0 20px 40px -12px rgba(116, 47, 229, 0.15);
}

/* ── Mobile Menu ── */
#mobile-menu {
    overscroll-behavior: contain;
}

#mobile-menu .mobile-link {
    -webkit-tap-highlight-color: transparent;
}

/* Thin custom scrollbar for mobile nav */
#mobile-menu nav::-webkit-scrollbar {
    width: 3px;
}
#mobile-menu nav::-webkit-scrollbar-thumb {
    background: #e2e8f0;
    border-radius: 10px;
}

/* ── Base Theme Variables ── */
:root {
    --font-sans: "Inter", system-ui, -apple-system, sans-serif;
    --color-primary: #742fe5;
    --safe-area-bottom: env(safe-area-inset-bottom, 0px);
}

body {
    font-family: var(--font-sans);
}

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