/* =====================================================
   SANCTA LIMITED — ANIMATIONS
===================================================== */

@keyframes scrollDot {
    0%   { opacity: 0; transform: translate(-50%, 0); }
    30%  { opacity: 1; }
    100% { opacity: 0; transform: translate(-50%, 18px); }
}

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

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

@keyframes fadeInDown {
    from { opacity: 0; transform: translateY(-16px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes scaleIn {
    from { opacity: 0; transform: scale(0.92); }
    to { opacity: 1; transform: scale(1); }
}

/* Hero entrance sequence */
.hero-subtitle { animation: fadeInDown 0.8s ease both 0.1s; }
.hero h1 { animation: fadeInUp 0.9s ease both 0.25s; }
.hero-text { animation: fadeInUp 0.9s ease both 0.4s; }
.hero-buttons { animation: fadeInUp 0.9s ease both 0.55s; }

/* Staggered reveal helper — used by JS scroll-reveal via .reveal class */
.reveal-stagger > * { transition-delay: calc(var(--stagger-index, 0) * 0.08s); }

/* Lightbox */
.lightbox-content { animation: scaleIn 0.3s ease; }

/* Mobile menu */
nav.open .nav-links a {
    animation: fadeInUp 0.5s ease both;
}
nav.open .nav-links li:nth-child(1) a { animation-delay: 0.05s; }
nav.open .nav-links li:nth-child(2) a { animation-delay: 0.1s; }
nav.open .nav-links li:nth-child(3) a { animation-delay: 0.15s; }
nav.open .nav-links li:nth-child(4) a { animation-delay: 0.2s; }
nav.open .nav-links li:nth-child(5) a { animation-delay: 0.25s; }

/* Gallery filter transition */
.gallery-item {
    transition: transform 0.4s ease, opacity 0.4s ease, box-shadow var(--transition, 0.35s ease);
}
.gallery-item.hiding { opacity: 0; transform: scale(0.9); }

/* Counter pulse on complete (subtle) */
.counter.done { animation: fadeIn 0.4s ease; }

@media (prefers-reduced-motion: reduce) {
    .hero-subtitle, .hero h1, .hero-text, .hero-buttons,
    nav.open .nav-links a, .lightbox-content { animation: none !important; }
}
