/*
 * TIPIcms - lekka warstwa animacji "reveal"
 * Zastepuje animate.min.css (~54 KB) + wow.min.js (~5 KB).
 * Zawiera wylacznie keyframes faktycznie uzywane przez systemowy theme
 * (klasy .wow z widokow oraz .animate-in slidera z main.css/responsive.css).
 * Ujawnianie realizuje IntersectionObserver w js/main.js.
 */

/* Stan poczatkowy tylko gdy JS jest aktywny (klasa dodawana w <head>).
   Bez JS elementy .wow pozostaja widoczne (brak "znikajacej" tresci). */
.wow-ready .wow {
    visibility: hidden;
}

.wow-ready .wow.animated {
    visibility: visible;
}

.animated {
    animation-duration: 1s;
    animation-fill-mode: both;
}

.fadeIn {
    animation-name: fadeIn;
}

.fadeInUp {
    animation-name: fadeInUp;
}

.fadeInDown {
    animation-name: fadeInDown;
}

.fadeInLeft {
    animation-name: fadeInLeft;
}

.fadeInRight {
    animation-name: fadeInRight;
}

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

@keyframes fadeInUp {
    from { opacity: 0; transform: translate3d(0, 100%, 0); }
    to { opacity: 1; transform: translate3d(0, 0, 0); }
}

@keyframes fadeInDown {
    from { opacity: 0; transform: translate3d(0, -100%, 0); }
    to { opacity: 1; transform: translate3d(0, 0, 0); }
}

@keyframes fadeInLeft {
    from { opacity: 0; transform: translate3d(-100%, 0, 0); }
    to { opacity: 1; transform: translate3d(0, 0, 0); }
}

@keyframes fadeInRight {
    from { opacity: 0; transform: translate3d(100%, 0, 0); }
    to { opacity: 1; transform: translate3d(0, 0, 0); }
}

/* Uzywane przez .animate-in slidera w main.css */
@keyframes fadeInLeftBig {
    from { opacity: 0; transform: translate3d(-2000px, 0, 0); }
    to { opacity: 1; transform: translate3d(0, 0, 0); }
}

@keyframes slideInLeft {
    from { transform: translate3d(-100%, 0, 0); visibility: visible; }
    to { transform: translate3d(0, 0, 0); }
}

@keyframes bounceIn {
    from, 20%, 40%, 60%, 80%, to {
        animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
    }
    0% { opacity: 0; transform: scale3d(0.3, 0.3, 0.3); }
    20% { transform: scale3d(1.1, 1.1, 1.1); }
    40% { transform: scale3d(0.9, 0.9, 0.9); }
    60% { opacity: 1; transform: scale3d(1.03, 1.03, 1.03); }
    80% { transform: scale3d(0.97, 0.97, 0.97); }
    to { opacity: 1; transform: scale3d(1, 1, 1); }
}

/* Poszanowanie preferencji ograniczenia ruchu */
@media (prefers-reduced-motion: reduce) {
    .wow-ready .wow {
        visibility: visible !important;
    }

    .animated,
    .animate-in .slide-text,
    .animate-in .slider-house,
    .animate-in [class^="slider-"] {
        animation: none !important;
    }
}
