/* ============================================
   Custom Animations
   ============================================ */

@keyframes pulse-soft {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.04); }
}

@keyframes fade-up {
    from { opacity: 0; transform: translateY(28px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes float-y {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-6px); }
}

.about__floating {
    animation: float-y 4s ease-in-out infinite;
}

.about-video__play {
    animation: pulse-soft 2.4s ease-in-out infinite;
}

/* AOS overrides — slightly subtler */
[data-aos] {
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}

/* Owl Carousel RTL nav arrow tweaks */
.owl-carousel .owl-nav button.owl-prev,
.owl-carousel .owl-nav button.owl-next {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background-color: var(--white) !important;
    color: var(--primary) !important;
    border: 1px solid rgba(0, 0, 0, 0.06) !important;
    transition: var(--transition);
}

.owl-carousel .owl-nav button.owl-prev:hover,
.owl-carousel .owl-nav button.owl-next:hover {
    background-color: var(--primary) !important;
    color: var(--white) !important;
}

.owl-carousel .owl-dots {
    margin-top: 24px !important;
}

.owl-carousel .owl-dots .owl-dot span {
    width: 10px !important;
    height: 10px !important;
    background-color: var(--dot-inactive) !important;
    transition: var(--transition);
    margin: 0 4px !important;
}

.owl-carousel .owl-dots .owl-dot.active span {
    background-color: var(--primary) !important;
    width: 26px !important;
    border-radius: 5px !important;
}

/* Loader / page fade */
body.is-loading {
    opacity: 0;
}

body {
    transition: opacity 0.5s ease;
}

/* Active state for projects filter */
.project-card.is-hidden {
    display: none !important;
}
