/* QAF public / landing motion — presence, not noise */

@media (prefers-reduced-motion: reduce) {
    .qaf-reveal,
    .qaf-hero-in,
    .lp-btn-scroll .qaf-scroll-chevron,
    .lp-nav,
    .pub-nav {
        animation: none !important;
        transition: none !important;
        opacity: 1 !important;
        transform: none !important;
    }
}

/* ── Scroll / entrance reveal ── */
.qaf-reveal {
    opacity: 0;
    transform: translateY(28px);
    transition:
        opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1),
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
    transition-delay: var(--reveal-delay, 0ms);
    will-change: opacity, transform;
}

.qaf-reveal.qaf-reveal-left {
    transform: translateX(-28px);
}

.qaf-reveal.qaf-reveal-right {
    transform: translateX(28px);
}

.qaf-reveal.qaf-reveal-scale {
    transform: translateY(16px) scale(0.96);
}

.qaf-reveal.is-visible {
    opacity: 1;
    transform: none;
}

/* ── Hero load sequence ── */
.qaf-hero-in {
    opacity: 0;
    transform: translateY(22px);
    animation: qafHeroIn 0.85s cubic-bezier(0.22, 1, 0.36, 1) forwards;
    animation-delay: var(--hero-delay, 0ms);
}

.qaf-hero-in.qaf-hero-image-in {
    transform: translateY(36px) scale(0.985);
}

@keyframes qafHeroIn {
    to {
        opacity: 1;
        transform: none;
    }
}

/* ── Nav slide-in ── */
.lp-nav.qaf-nav-ready,
.pub-nav.qaf-nav-ready {
    animation: qafNavIn 0.55s cubic-bezier(0.22, 1, 0.36, 1) both;
}

@keyframes qafNavIn {
    from {
        opacity: 0;
        transform: translateY(-12px);
    }
    to {
        opacity: 1;
        transform: none;
    }
}

/* ── Subtle interactive polish ── */
.lp-nav-links a,
.pub-nav-links a {
    position: relative;
}

.lp-nav-links a::after,
.pub-nav-links a::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: -4px;
    width: 100%;
    height: 2px;
    background: #C6F135;
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.25s ease;
}

.lp-nav-links a:hover::after,
.lp-nav-links a.active::after,
.pub-nav-links a:hover::after,
.pub-nav-links a.active::after {
    transform: scaleX(1);
}

.lp-btn-explore,
.lp-btn-scroll {
    transition: transform 0.25s ease, background 0.25s ease, box-shadow 0.25s ease;
}

.lp-btn-explore:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(198, 241, 53, 0.35);
}

.lp-btn-scroll:hover {
    transform: translateY(2px);
}

.lp-btn-scroll .qaf-scroll-chevron {
    display: inline-block;
    animation: qafBounce 1.6s ease-in-out infinite;
}

@keyframes qafBounce {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(4px); }
}

.lp-feat-card,
.pub-card,
.pub-dark-card,
.team-card {
    transition:
        transform 0.3s cubic-bezier(0.22, 1, 0.36, 1),
        border-color 0.3s ease,
        box-shadow 0.3s ease;
}

.lp-acc-item {
    transition: border-color 0.3s ease, transform 0.35s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.35s ease;
}

.lp-acc-item.is-visible:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.06);
}

.lp-tag {
    transition: transform 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.lp-tag:hover {
    transform: translateY(-2px);
}
