/* SmartGen Shared Animations */

/* Scroll Reveal */
.reveal-on-scroll {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.reveal-on-scroll.is-visible {
    opacity: 1;
    transform: translateY(0);
}

/* Panel Entrance */
.panel-entrance {
    animation: slideIn 0.4s ease-out forwards;
}

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

/* Success Animation for Copy Button */
.copy-success {
    animation: successPulse 0.5s ease-out;
}

@keyframes successPulse {
    0% { transform: scale(1); }
    50% { transform: scale(1.05); background-color: #059669; }
    100% { transform: scale(1); }
}

/* Height Transition for Mode Switching */
.smooth-height {
    transition: height 0.3s ease-in-out;
    overflow: hidden;
}

/* Loading Pulse */
.loading-pulse {
    animation: pulse 1.5s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

@keyframes pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: .5; }
}

/* Respect prefers-reduced-motion */
@media (prefers-reduced-motion: reduce) {
    .reveal-on-scroll,
    .panel-entrance,
    .copy-success,
    .smooth-height,
    .loading-pulse {
        animation: none !important;
        transition: none !important;
        opacity: 1 !important;
        transform: none !important;
    }
}
