// =============================================================================
// Shared Animation System (SCSS)
// =============================================================================
// Consolidated keyframes, timing variables, and animation utilities.
// Used by components throughout the admin app.
// =============================================================================

// =============================================================================
//   Shared Slide-In Keyframes
// =============================================================================

@keyframes presszone-comments-slide-in-left {
    from {
        opacity: 0;
        transform: translateX(-20px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes presszone-comments-slide-in-right {
    from {
        opacity: 0;
        transform: translateX(20px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes presszone-comments-slide-in-top {
    from {
        opacity: 0;
        transform: translateY(-20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes presszone-comments-slide-in-bottom {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

// =============================================================================
//   Shared Fade Keyframes
// =============================================================================

@keyframes presszone-comments-fade-in {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

@keyframes presszone-comments-fade-out {
    from {
        opacity: 1;
    }
    to {
        opacity: 0;
    }
}

// =============================================================================
//   Shared Scale Keyframes
// =============================================================================

@keyframes presszone-comments-scale-in {
    from {
        opacity: 0;
        transform: scale(0.8);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}

@keyframes presszone-comments-scale-out {
    from {
        opacity: 1;
        transform: scale(1);
    }
    to {
        opacity: 0;
        transform: scale(0.8);
    }
}

// =============================================================================
//   Shared Rotate Keyframes
// =============================================================================

@keyframes presszone-comments-rotate-in {
    from {
        opacity: 0;
        transform: rotate(-180deg) scale(0.8);
    }
    to {
        opacity: 1;
        transform: rotate(0deg) scale(1);
    }
}

@keyframes presszone-comments-rotate-out {
    from {
        opacity: 1;
        transform: rotate(0deg) scale(1);
    }
    to {
        opacity: 0;
        transform: rotate(180deg) scale(0.8);
    }
}

// =============================================================================
//   Shared Bounce Keyframes
// =============================================================================

@keyframes presszone-comments-bounce-in {
    from {
        opacity: 0;
        transform: translateY(-30px);
    }
    50% {
        transform: translateY(10px);
    }
    75% {
        transform: translateY(-5px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes presszone-comments-bounce-out {
    from {
        opacity: 1;
        transform: translateY(0);
    }
    25% {
        transform: translateY(5px);
    }
    50% {
        transform: translateY(-10px);
    }
    to {
        opacity: 0;
        transform: translateY(30px);
    }
}

// =============================================================================
//   Shared Slide-In Keyframes
// =============================================================================

@keyframes presszone-comments-slide-in-left {
    from {
        opacity: 0;
        transform: translateX(-20px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes presszone-comments-slide-in-right {
    from {
        opacity: 0;
        transform: translateX(20px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes presszone-comments-slide-in-top {
    from {
        opacity: 0;
        transform: translateY(-20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes presszone-comments-slide-in-bottom {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

// =============================================================================
//   Shared Fade Keyframes
// =============================================================================

@keyframes presszone-comments-fade-in {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

@keyframes presszone-comments-fade-out {
    from {
        opacity: 1;
    }
    to {
        opacity: 0;
    }
}

// =============================================================================
//   Shared Scale Keyframes
// =============================================================================

@keyframes presszone-comments-scale-in {
    from {
        opacity: 0;
        transform: scale(0.8);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}

@keyframes presszone-comments-scale-out {
    from {
        opacity: 1;
        transform: scale(1);
    }
    to {
        opacity: 0;
        transform: scale(0.8);
    }
}

// =============================================================================
//   Shared Rotate Keyframes
// =============================================================================

@keyframes presszone-comments-rotate-in {
    from {
        opacity: 0;
        transform: rotate(-180deg) scale(0.8);
    }
    to {
        opacity: 1;
        transform: rotate(0deg) scale(1);
    }
}

@keyframes presszone-comments-rotate-out {
    from {
        opacity: 1;
        transform: rotate(0deg) scale(1);
    }
    to {
        opacity: 0;
        transform: rotate(180deg) scale(0.8);
    }
}

// =============================================================================
//   Shared Bounce Keyframes
// =============================================================================

@keyframes presszone-comments-bounce-in {
    from {
        opacity: 0;
        transform: translateY(-30px);
    }
    50% {
        transform: translateY(10px);
    }
    75% {
        transform: translateY(-5px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes presszone-comments-bounce-out {
    from {
        opacity: 1;
        transform: translateY(0);
    }
    25% {
        transform: translateY(5px);
    }
    50% {
        transform: translateY(-10px);
    }
    to {
        opacity: 0;
        transform: translateY(30px);
    }
}

// =============================================================================
//   Shared Slide-In Keyframes
// =============================================================================

@keyframes presszone-comments-slide-in-left {
    from {
        opacity: 0;
        transform: translateX(-20px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes presszone-comments-slide-in-right {
    from {
        opacity: 0;
        transform: translateX(20px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes presszone-comments-slide-in-top {
    from {
        opacity: 0;
        transform: translateY(-20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes presszone-comments-slide-in-bottom {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}