/* Text Animation */
.antra-animation,
.antra-animation span {
    animation-duration: 0.3s;
    animation-fill-mode: both;
}

.antra-animation span {
    display: inline-block;
}

/* Fade Effect */
.antra-fadeIn {
    animation-name: asFadeIn;
}

@keyframes asFadeIn {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

.antra-fadeInLeft {
    animation-name: asFadeInLeft;
}

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

    to {
        opacity: 1;
    }
}

.antra-fadeInRight {
    animation-name: asFadeInRight;
}

@keyframes asFadeInRight {
    from {
        opacity: 0;
        transform: translateX(50px);
    }

    to {
        opacity: 1;
    }
}

.antra-fadeInDown {
    animation-name: asFadeInTop;
}

@keyframes asFadeInTop {
    from {
        opacity: 0;
        transform: translateY(-50px);
    }

    to {
        opacity: 1;
    }
}

.antra-fadeInUp {
    animation-name: asFadeInBottom;
}

@keyframes asFadeInBottom {
    from {
        opacity: 0;
        transform: translateY(50px);
    }

    to {
        opacity: 1;
    }
}

/* Move From Effect */
.antra-moveFromLeft {
    animation-name: asMoveFromLeft;
}

@keyframes asMoveFromLeft {
    from {
        visibility: hidden;
        transform: translateX(-50px);
    }

    to {
        visibility: visible;
    }
}

.antra-moveFromRight {
    animation-name: asMoveFromRight;
}

@keyframes asMoveFromRight {
    from {
        visibility: hidden;
        transform: translateX(50px);
    }

    to {
        visibility: visible;
    }
}

.antra-moveFromTop {
    animation-name: asMoveFromTop;
}

@keyframes asMoveFromTop {
    from {
        visibility: hidden;
        transform: translateY(-50px);
    }

    to {
        visibility: visible;
    }
}

.antra-moveFromBottom {
    animation-name: asMoveFromBottom;
}

@keyframes asMoveFromBottom {
    from {
        visibility: hidden;
        transform: translateY(50px);
    }

    to {
        visibility: visible;
    }
}

/* Blur Effect */

.antra-blurIn {
    animation-name: asBlurIn;
}

@keyframes asBlurIn {
    from {
        filter: blur(20px);
        opacity: 0;
    }
}

.antra-blurInLeft {
    animation-name: asBlurInLeft;
}

@keyframes asBlurInLeft {
    from {
        transform: translateX(50px);
        filter: blur(20px);
        opacity: 0;
    }
}

.antra-blurInRight {
    animation-name: asBlurInRight;
}

@keyframes asBlurInRight {
    from {
        transform: translateX(-50px);
        filter: blur(20px);
        opacity: 0;
    }
}

.antra-blurInTop {
    animation-name: asBlurInTop;
}

@keyframes asBlurInTop {
    from {
        transform: translateY(50px);
        filter: blur(20px);
        opacity: 0;
    }
}

.antra-blurInBottom {
    animation-name: asBlurInBottom;
}

@keyframes asBlurInBottom {
    from {
        transform: translateY(-50px);
        filter: blur(20px);
        opacity: 0;
    }
}

/* Zoom Effect */
.antra-zoomIn {
    animation-name: asZoomIn;
}

@keyframes asZoomIn {
    from {
        transform: scale(5);
        opacity: 0;
    }
}

.antra-zoomInLeft {
    animation-name: asZoomInLeft;
}

@keyframes asZoomInLeft {
    from {
        transform: scale(5) translateX(-50%);
        opacity: 0;
    }
}

.antra-zoomInRight {
    animation-name: asZoomInRight;
}

@keyframes asZoomInRight {
    from {
        transform: scale(5) translateX(50%);
        opacity: 0;
    }
}

.antra-zoomInTop {
    animation-name: asZoomInTop;
}

@keyframes asZoomInTop {
    from {
        transform: scale(10) translateY(-50%);
        opacity: 0;
    }
}

.antra-zoomInBottom {
    animation-name: asZoomInBottom;
}

@keyframes asZoomInBottom {
    from {
        transform: scale(10) translateY(50%);
        opacity: 0;
    }
}

/* Flip Effect */
.antra-flipInTop {
    animation-name: asFlipInTop;
}

@keyframes asFlipInTop {
    from {
        transform: perspective(600px);
        opacity: 0;
    }

    30% {
        transform: perspective(600px) rotateX(180deg);
        transform-origin: 0 0;
        animation-timing-function: ease-out;
    }

    to {
        transform: perspective(600px);
    }
}

.antra-flipInBottom {
    animation-name: asFlipInBottom;
}

@keyframes asFlipInBottom {
    from {
        transform: perspective(600px);
        opacity: 0;
    }

    30% {
        transform: perspective(600px) rotateX(180deg);
        transform-origin: bottom;
        animation-timing-function: ease-out;
    }

    to {
        transform: perspective(600px);
    }
}

/* Roll Effect */
.antra-rollFromLeft {
    animation-name: asRollFromLeft;
}

@keyframes asRollFromLeft {
    from {
        transform: translateX(-60px) perspective(600px) rotateY(180deg);
        opacity: 0;
    }
}

.antra-rollFromRight {
    animation-name: asRollFromRight;
}

@keyframes asRollFromRight {
    from {
        transform: translateX(60px) perspective(600px) rotateY(-180deg);
        opacity: 0;
    }
}

.antra-rollFromTop {
    animation-name: asRollFromTop;
}

@keyframes asRollFromTop {
    from {
        transform: translateY(-60px) perspective(600px) rotateX(180deg);
        opacity: 0;
    }
}

.antra-rollFromBottom {
    animation-name: asRollFromBottom;
}

@keyframes asRollFromBottom {
    from {
        transform: translateY(60px) perspective(600px) rotateX(-180deg);
        opacity: 0;
    }
}

/* Rotate Skate Effect */
.antra-rotateSkateInRight {
    animation-name: asRotateSkateInRight;
}

@keyframes asRotateSkateInRight {
    from {
        transform: scaleX(0.2) translateX(100px);
        opacity: 0;
    }
}

.antra-rotateSkateInLeft {
    animation-name: asRotateSkateInLeft;
}

@keyframes asRotateSkateInLeft {
    from {
        transform: scaleX(0.2) translateX(-100px);
        opacity: 0;
    }
}

.antra-rotateSkateInTop {
    animation-name: asRotateSkateInTop;
}

@keyframes asRotateSkateInTop {
    from {
        transform: scaleY(0.2) translateY(-100px);
        opacity: 0;
    }
}

.antra-rotateSkateInBottom {
    animation-name: asRotateSkateInBottom;
}

@keyframes asRotateSkateInBottom {
    from {
        transform: scaleY(0.2) translateY(100px);
        opacity: 0;
    }
}

/* PopUp Effect */
.antra-popUp {
    animation-name: asPopUp;
}

@keyframes asPopUp {
    0% {
        visibility: hidden;
    }

    50% {
        transform: scale(1.1);
        visibility: visible;
    }
}

.antra-popUpLeft {
    animation-name: asPopUpLeft;
}

@keyframes asPopUpLeft {
    0% {
        visibility: hidden;
    }

    50% {
        visibility: visible;
        transform: translateX(-20px) scale(1.1);
        animation-timing-function: ease-in;
    }
}

.antra-popUpRight {
    animation-name: asPopUpRight;
}

@keyframes asPopUpRight {
    0% {
        visibility: hidden;
    }

    50% {
        visibility: visible;
        transform: translateX(20px) scale(1.1);
        animation-timing-function: ease-in;
    }
}

/* Kenburns Top */

.swiper-slide-active .kenburns-top {
	-webkit-animation-name: kenburns-top;
	animation-name: kenburns-top;
}

@-webkit-keyframes kenburns-top {
	0% {
		-webkit-transform: scale(1) translateY(0);
		transform: scale(1) translateY(0);
		-webkit-transform-origin: 50% 16%;
		transform-origin: 50% 16%;
	}

	100% {
		-webkit-transform: scale(1.08) translateY(-15px);
		transform: scale(1.08) translateY(-15px);
		-webkit-transform-origin: top;
		transform-origin: top;
	}
}

@keyframes kenburns-top {
	0% {
		-webkit-transform: scale(1) translateY(0);
		transform: scale(1) translateY(0);
		-webkit-transform-origin: 50% 16%;
		transform-origin: 50% 16%;
	}

	100% {
		-webkit-transform: scale(1.08) translateY(-15px);
		transform: scale(1.08) translateY(-15px);
		-webkit-transform-origin: top;
		transform-origin: top;
	}
}

/* ══════════════════════════════════════════════════════════
   MOBILE: Reduce aggressive motion on small screens
   Large scale/translate values (e.g. scale(10)) can feel
   jarring on phones — dial them down to gentler values.
══════════════════════════════════════════════════════════ */
@media (max-width: 767px) {

    /* Soften zoom entrance scales */
    @keyframes asZoomIn {
        from { transform: scale(1.5); opacity: 0; }
    }
    @keyframes asZoomInLeft {
        from { transform: scale(1.5) translateX(-20%); opacity: 0; }
    }
    @keyframes asZoomInRight {
        from { transform: scale(1.5) translateX(20%); opacity: 0; }
    }
    @keyframes asZoomInTop {
        from { transform: scale(1.5) translateY(-20%); opacity: 0; }
    }
    @keyframes asZoomInBottom {
        from { transform: scale(1.5) translateY(20%); opacity: 0; }
    }

    /* Soften translate distances */
    @keyframes asFadeInLeft {
        from { opacity: 0; transform: translateX(-24px); }
        to   { opacity: 1; transform: translateX(0); }
    }
    @keyframes asFadeInRight {
        from { opacity: 0; transform: translateX(24px); }
        to   { opacity: 1; transform: translateX(0); }
    }
    @keyframes asFadeInTop {
        from { opacity: 0; transform: translateY(-24px); }
        to   { opacity: 1; transform: translateY(0); }
    }
    @keyframes asFadeInBottom {
        from { opacity: 0; transform: translateY(24px); }
        to   { opacity: 1; transform: translateY(0); }
    }

    /* Soften kenburns on mobile (subtle pan is fine, large scale is not) */
    @keyframes kenburns-top {
        0%   { transform: scale(1)    translateY(0);   transform-origin: 50% 16%; }
        100% { transform: scale(1.03) translateY(-6px); transform-origin: top; }
    }
}

/* ══════════════════════════════════════════════════════════
   ACCESSIBILITY: Honour the OS-level "Reduce Motion" setting.
   This disables ALL animations for users who have opted out —
   applies on any device (desktop, tablet, mobile).
══════════════════════════════════════════════════════════ */
@media (prefers-reduced-motion: reduce) {

    .antra-animation,
    .antra-animation span {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }

    /* Kill all named keyframe animations */
    .antra-fadeIn,
    .antra-fadeInLeft,
    .antra-fadeInRight,
    .antra-fadeInDown,
    .antra-fadeInUp,
    .antra-moveFromLeft,
    .antra-moveFromRight,
    .antra-moveFromTop,
    .antra-moveFromBottom,
    .antra-blurIn,
    .antra-blurInLeft,
    .antra-blurInRight,
    .antra-blurInTop,
    .antra-blurInBottom,
    .antra-zoomIn,
    .antra-zoomInLeft,
    .antra-zoomInRight,
    .antra-zoomInTop,
    .antra-zoomInBottom,
    .antra-flipInTop,
    .antra-flipInBottom,
    .antra-rollFromLeft,
    .antra-rollFromRight,
    .antra-rollFromTop,
    .antra-rollFromBottom,
    .antra-rotateSkateInRight,
    .antra-rotateSkateInLeft,
    .antra-rotateSkateInTop,
    .antra-rotateSkateInBottom,
    .antra-popUp,
    .antra-popUpLeft,
    .antra-popUpRight {
        animation: none !important;
        opacity: 1 !important;
        transform: none !important;
        visibility: visible !important;
        filter: none !important;
    }

    /* Stop kenburns pan on the slider */
    .swiper-slide-active .kenburns-top {
        animation: none !important;
        transform: none !important;
    }
}