/* ============================================
   Zustis — Shared Styles
   ============================================ */

/* --- Nav shrink on scroll --- */
nav.nav-scrolled {
    padding-top: 0.75rem !important;
    padding-bottom: 0.75rem !important;
    background: rgba(17, 24, 39, 0.97) !important;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

/* --- Fade-in entrance animations --- */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(24px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

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

@keyframes subtlePulse {
    0%, 100% { opacity: 0.2; }
    50%      { opacity: 0.5; }
}

/* Hero content entrance */
.hero-animate {
    animation: fadeInUp 0.9s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.hero-animate-delay-1 {
    animation: fadeInUp 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.15s both;
}

.hero-animate-delay-2 {
    animation: fadeInUp 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.3s both;
}

.hero-animate-delay-3 {
    animation: fadeInUp 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.45s both;
}

/* Yet-logo trailing dot pulse */
.yet-logo .potential {
    animation: subtlePulse 3s ease-in-out infinite;
}

/* Scroll-reveal for sections */
.reveal {
    opacity: 0;
    transform: translateY(20px);
    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);
}

/* Staggered children inside revealed sections */
.reveal-children > * {
    opacity: 0;
    transform: translateY(16px);
    transition: opacity 0.5s ease, transform 0.5s ease;
}

.reveal-children.revealed > *:nth-child(1) { transition-delay: 0s; opacity: 1; transform: translateY(0); }
.reveal-children.revealed > *:nth-child(2) { transition-delay: 0.08s; opacity: 1; transform: translateY(0); }
.reveal-children.revealed > *:nth-child(3) { transition-delay: 0.16s; opacity: 1; transform: translateY(0); }
.reveal-children.revealed > *:nth-child(4) { transition-delay: 0.24s; opacity: 1; transform: translateY(0); }

/* --- Smooth focus outlines for accessibility --- */
a:focus-visible,
button:focus-visible {
    outline: 2px solid #3b82f6;
    outline-offset: 2px;
    border-radius: 2px;
}

/* --- Better selection color --- */
::selection {
    background: rgba(59, 130, 246, 0.2);
    color: inherit;
}
