/* ==========================================================================
   reveal.css — js/reveal.js efektleri (wow.js yerine)
   Elemanlar HTML'de sınıf almaz; reveal.js seçilen elemanlara data-reveal="efekt" koyar,
   ekrana girince data-revealed ekler. Süre / gecikme / mesafe değişkenlerini reveal.js yazar.
   Animasyon "backwards" doldurulur: bitince elemanın kendi hover / transform kuralları aynen çalışır.
   ========================================================================== */

[data-reveal]:not([data-revealed]) {
    opacity: 0;
}

[data-reveal][data-revealed] {
    animation-duration: var(--reveal-duration, 900ms);
    animation-timing-function: cubic-bezier(.22, .61, .36, 1);
    animation-delay: var(--reveal-delay, 0ms);
    animation-fill-mode: backwards;
}

[data-reveal="fade"][data-revealed] { animation-name: reveal-fade; }
[data-reveal="fade-up"][data-revealed] { animation-name: reveal-fade-up; }
[data-reveal="fade-down"][data-revealed] { animation-name: reveal-fade-down; }
[data-reveal="fade-left"][data-revealed] { animation-name: reveal-fade-left; }
[data-reveal="fade-right"][data-revealed] { animation-name: reveal-fade-right; }
[data-reveal="zoom-in"][data-revealed] { animation-name: reveal-zoom-in; }
[data-reveal="zoom-out"][data-revealed] { animation-name: reveal-zoom-out; }
[data-reveal="flip-up"][data-revealed] { animation-name: reveal-flip-up; transform-origin: 50% 100%; }
[data-reveal="blur-in"][data-revealed] { animation-name: reveal-blur-in; }

@keyframes reveal-fade {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes reveal-fade-up {
    from { opacity: 0; transform: translate3d(0, var(--reveal-distance, 40px), 0); }
    to { opacity: 1; transform: translate3d(0, 0, 0); }
}

@keyframes reveal-fade-down {
    from { opacity: 0; transform: translate3d(0, calc(var(--reveal-distance, 40px) * -1), 0); }
    to { opacity: 1; transform: translate3d(0, 0, 0); }
}

/* fade-left: soldan gelir; fade-right: sağdan gelir */
@keyframes reveal-fade-left {
    from { opacity: 0; transform: translate3d(calc(var(--reveal-distance, 40px) * -1.5), 0, 0); }
    to { opacity: 1; transform: translate3d(0, 0, 0); }
}

@keyframes reveal-fade-right {
    from { opacity: 0; transform: translate3d(calc(var(--reveal-distance, 40px) * 1.5), 0, 0); }
    to { opacity: 1; transform: translate3d(0, 0, 0); }
}

@keyframes reveal-zoom-in {
    from { opacity: 0; transform: scale(.88); }
    to { opacity: 1; transform: scale(1); }
}

@keyframes reveal-zoom-out {
    from { opacity: 0; transform: scale(1.08); }
    to { opacity: 1; transform: scale(1); }
}

@keyframes reveal-flip-up {
    from { opacity: 0; transform: perspective(900px) rotateX(16deg) translate3d(0, 30px, 0); }
    to { opacity: 1; transform: perspective(900px) rotateX(0) translate3d(0, 0, 0); }
}

@keyframes reveal-blur-in {
    from { opacity: 0; filter: blur(12px); transform: scale(1.03); }
    to { opacity: 1; filter: blur(0); transform: scale(1); }
}

@media (prefers-reduced-motion: reduce) {
    [data-reveal],
    [data-reveal][data-revealed] {
        opacity: 1 !important;
        animation: none !important;
    }
}
