/*
* LRC Creative - Animations Stylesheet
* Author: Llewellyn Reinecke
* Website: www.lrcreative.co.za
*/

/* ===== KEYFRAMES ===== */
@keyframes fadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

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

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

@keyframes pulse {
    0% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.05);
    }
    100% {
        transform: scale(1);
    }
}

@keyframes rotateIn {
    from {
        transform: rotate(-90deg) scale(0.3);
        opacity: 0;
    }
    to {
        transform: rotate(0) scale(1);
        opacity: 1;
    }
}

@keyframes slideInRight {
    from {
        transform: translateX(50px);
        opacity: 0;
    }
    to {
        transform: translateX(0);
        opacity: 1;
    }
}

@keyframes slideInLeft {
    from {
        transform: translateX(-50px);
        opacity: 0;
    }
    to {
        transform: translateX(0);
        opacity: 1;
    }
}

/* Logo preloader animation */
#logo-preload {
    animation: logoFadeIn 1s ease-out forwards;
}

@keyframes logoFadeIn {
    0% {
        transform: scale(0.85);
        opacity: 0;
    }
    100% {
        transform: scale(1);
        opacity: 1;
    }
}



/* Section reveal animations */
.reveal {
    position: relative;
    opacity: 0;
    transform: translateY(30px);
    transition: all 1s ease;
}

.reveal.active {
    opacity: 1;
    transform: translateY(0);
}

/* Service card hover effects */
.service-card:hover .service-icon {
    animation: pulse 1s infinite;
}

/* Project slide animations */
.project-slide.active {
    animation: fadeIn 0.5s ease forwards;
}

.project-slide.next {
    animation: slideInRight 0.5s ease forwards;
}

.project-slide.prev {
    animation: slideInLeft 0.5s ease forwards;
}

/* Button hover animations */
.btn {
    position: relative;
    overflow: hidden;
}

.btn::after {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: rgba(255, 255, 255, 0.1);
    transition: all 0.4s ease;
}

.btn:hover::after {
    left: 100%;
}

/* Navigation scroll effect */
.main-nav.nav-scrolled .nav-logo,
.main-nav.nav-scrolled .logo-text,
.main-nav.nav-scrolled .nav-link {
    transform: scale(0.95);
    transition: transform 0.3s ease;
}

/* Fade-in effect for page content */
.page-content {
    opacity: 0;
    animation: fadeIn 1s ease 0.5s forwards;
}

/* Testimonial slide animations */
.testimonial.active {
    animation: fadeIn 1s ease forwards;
}

/* Social icon hover effect */
.social-icons a:hover i {
    animation: pulse 1s ease;
}