﻿/* ============================================================
   CDL – Animations Library
   Sauber, modular, ohne Modal-Konflikte
   ============================================================ */

/* -----------------------------------------
   Fade In (sanft – Standard für CDL)
----------------------------------------- */
@keyframes cdl-fade-in {
    0% {
        opacity: 0;
        transform: translateY(4px);
    }

    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

.animate-fade-in {
    animation: cdl-fade-in 0.45s ease-out both;
}

/* -----------------------------------------
   Fade Up (für Cards / Sections)
----------------------------------------- */
@keyframes cdl-fade-up {
    0% {
        opacity: 0;
        transform: translateY(12px);
    }

    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

.animate-fade-up {
    animation: cdl-fade-up 0.6s ease-out both;
}


/* -----------------------------------------
   Fade Down (Hero → smooth appearance)
----------------------------------------- */
@keyframes cdl-fade-down {
    0% {
        opacity: 0;
        transform: translateY(-12px);
    }

    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

.animate-fade-down {
    animation: cdl-fade-down 0.6s ease-out both;
}


/* -----------------------------------------
   Scale In (Buttons, Badges, Mini-Highlights)
----------------------------------------- */
@keyframes cdl-scale-in {
    0% {
        transform: scale(0.92);
        opacity: 0;
    }

    100% {
        transform: scale(1);
        opacity: 1;
    }
}

.animate-scale-in {
    animation: cdl-scale-in 0.35s ease-out both;
}


/* -----------------------------------------
   Soft Glow Pulse (für Premium Badges etc.)
----------------------------------------- */
@keyframes cdl-pulse-soft {
    0% {
        transform: scale(1);
        box-shadow: 0 0 0 rgba(170,108,57,0.0);
    }

    50% {
        transform: scale(1.02);
        box-shadow: 0 0 12px rgba(170,108,57,0.25);
    }

    100% {
        transform: scale(1);
        box-shadow: 0 0 0 rgba(170,108,57,0.0);
    }
}

.animate-pulse-soft {
    animation: cdl-pulse-soft 1.7s ease-in-out infinite;
}


/* -----------------------------------------
   Shine / Glow Sweep (Glass Cards)
----------------------------------------- */
@keyframes cdl-shine {
    0% {
        background-position: 200% 0;
    }

    100% {
        background-position: -200% 0;
    }
}

.animate-shine {
    background: linear-gradient(120deg, rgba(255,255,255,0.10), rgba(255,255,255,0.45), rgba(255,255,255,0.10) );
    background-size: 220% 100%;
    animation: cdl-shine 1.6s linear infinite;
    border-radius: inherit;
}


/* -----------------------------------------
   Minimal Slide-Left / Slide-Right
----------------------------------------- */
@keyframes cdl-slide-left {
    0% {
        opacity: 0;
        transform: translateX(12px);
    }

    100% {
        opacity: 1;
        transform: translateX(0);
    }
}

.animate-slide-left {
    animation: cdl-slide-left 0.5s ease-out both;
}

@keyframes cdl-slide-right {
    0% {
        opacity: 0;
        transform: translateX(-12px);
    }

    100% {
        opacity: 1;
        transform: translateX(0);
    }
}

.animate-slide-right {
    animation: cdl-slide-right 0.5s ease-out both;
}
