.ec-image-swap-wrapper {
	position: relative;
	display: inline-block;
	overflow: hidden;
	}
	.ec-image-swap-wrapper img {
	width: 100%;
	height: auto;
	display: block;
	transition: all 0.6s ease;
	}
	.ec-image-swap-wrapper .ec-is-image-h {
	position: absolute;
	top: 0; left: 0;
	width: 100%; height: 100%;
	opacity: 0;
	}
	.ec-image-swap-wrapper:hover .ec-is-image-h {
	opacity: 1;
	}
	.ec-image-swap-wrapper:hover .ec-is-image-n {
	opacity: 0;
	}
	.ec-image-swap-wrapper.ec-is-fade img { transition: opacity 0.5s ease; }
	.ec-image-swap-wrapper.ec-is-zoom:hover .ec-is-image-h { transform: scale(1.1); }
	.ec-image-swap-wrapper.ec-is-zoom-out:hover .ec-is-image-n { transform: scale(0.9); }
	.ec-image-swap-wrapper.ec-is-slide-left .ec-is-image-h { transform: translateX(100%); }
	.ec-image-swap-wrapper.ec-is-slide-left:hover .ec-is-image-h { transform: translateX(0); }
	.ec-image-swap-wrapper.ec-is-slide-right .ec-is-image-h { transform: translateX(-100%); }
	.ec-image-swap-wrapper.ec-is-slide-right:hover .ec-is-image-h { transform: translateX(0); }
	.ec-image-swap-wrapper.ec-is-slide-up .ec-is-image-h { transform: translateY(100%); }
	.ec-image-swap-wrapper.ec-is-slide-up:hover .ec-is-image-h { transform: translateY(0); }
	.ec-image-swap-wrapper.ec-is-slide-down .ec-is-image-h { transform: translateY(-100%); }
	.ec-image-swap-wrapper.ec-is-slide-down:hover .ec-is-image-h { transform: translateY(0); }
	.ec-image-swap-wrapper.ec-is-rotate-in .ec-is-image-h {
	transform: rotate(180deg) scale(0.5);
	opacity: 0;
	}
	.ec-image-swap-wrapper.ec-is-rotate-in:hover .ec-is-image-h {
	transform: rotate(0) scale(1);
	opacity: 1;
	}
	.ec-image-swap-wrapper.ec-is-flip-x img { backface-visibility: hidden; }
	.ec-image-swap-wrapper.ec-is-flip-x .ec-is-image-n { transform: rotateY(0); }
	.ec-image-swap-wrapper.ec-is-flip-x:hover .ec-is-image-n { transform: rotateY(180deg); }
	.ec-image-swap-wrapper.ec-is-flip-x .ec-is-image-h { transform: rotateY(-180deg); opacity: 1; }
	.ec-image-swap-wrapper.ec-is-flip-x:hover .ec-is-image-h { transform: rotateY(0); }
	.ec-image-swap-wrapper.ec-is-flip-y .ec-is-image-n { transform: rotateX(0); }
	.ec-image-swap-wrapper.ec-is-flip-y:hover .ec-is-image-n { transform: rotateX(180deg); }
	.ec-image-swap-wrapper.ec-is-flip-y .ec-is-image-h { transform: rotateX(-180deg); }
	.ec-image-swap-wrapper.ec-is-flip-y:hover .ec-is-image-h { transform: rotateX(0); }
	.ec-image-swap-wrapper.ec-is-blur .ec-is-image-h { filter: blur(10px); }
	.ec-image-swap-wrapper.ec-is-blur:hover .ec-is-image-h { filter: blur(0); opacity: 1; }
	.ec-image-swap-wrapper.ec-is-gray .ec-is-image-n { filter: grayscale(100%); }
	.ec-image-swap-wrapper.ec-is-gray:hover .ec-is-image-h { filter: grayscale(0%); }
	.ec-image-swap-wrapper.ec-is-bright .ec-is-image-n { filter: brightness(70%); }
	.ec-image-swap-wrapper.ec-is-bright:hover .ec-is-image-h { filter: brightness(120%); }
	.ec-image-swap-wrapper.ec-is-sepia .ec-is-image-n { filter: sepia(100%); }
	.ec-image-swap-wrapper.ec-is-sepia:hover .ec-is-image-h { filter: sepia(0%); }
	.ec-image-swap-wrapper.ec-is-contrast .ec-is-image-n { filter: contrast(50%); }
	.ec-image-swap-wrapper.ec-is-contrast:hover .ec-is-image-h { filter: contrast(120%); }
	.ec-image-swap-wrapper.ec-is-scale-rotate:hover .ec-is-image-h {
	transform: scale(1.2) rotate(10deg);
	}
	.ec-image-swap-wrapper.ec-is-skew .ec-is-image-h { transform: skewX(20deg); opacity: 0; }
	.ec-image-swap-wrapper.ec-is-skew:hover .ec-is-image-h { transform: skewX(0); opacity: 1; }
	.ec-image-swap-wrapper.ec-is-curtain-left .ec-is-image-h { clip-path: inset(0 100% 0 0); }
	.ec-image-swap-wrapper.ec-is-curtain-left:hover .ec-is-image-h { clip-path: inset(0 0 0 0); }
	.ec-image-swap-wrapper.ec-is-curtain-right .ec-is-image-h { clip-path: inset(0 0 0 100%); }
	.ec-image-swap-wrapper.ec-is-curtain-right:hover .ec-is-image-h { clip-path: inset(0 0 0 0); }
	.ec-image-swap-wrapper.ec-is-curtain-top .ec-is-image-h { clip-path: inset(100% 0 0 0); }
	.ec-image-swap-wrapper.ec-is-curtain-top:hover .ec-is-image-h { clip-path: inset(0 0 0 0); }
	.ec-image-swap-wrapper.ec-is-curtain-bottom .ec-is-image-h { clip-path: inset(0 0 100% 0); }
	.ec-image-swap-wrapper.ec-is-curtain-bottom:hover .ec-is-image-h { clip-path: inset(0 0 0 0); }
	.ec-image-swap-wrapper.ec-is-circle .ec-is-image-h { clip-path: circle(0% at 50% 50%); }
	.ec-image-swap-wrapper.ec-is-circle:hover .ec-is-image-h { clip-path: circle(150% at 50% 50%); }
	.ec-image-swap-wrapper.ec-is-diamond .ec-is-image-h { clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%); }
	.ec-image-swap-wrapper.ec-is-diamond:hover .ec-is-image-h { clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); }
	.ec-image-swap-wrapper.ec-is-ripple:hover .ec-is-image-h {
	animation: ec-is-ripple 1s ease forwards;
	}
	@keyframes ec-is-ripple {
	from { transform: scale(0); opacity: 0; }
	to { transform: scale(1); opacity: 1; }
	}
	.ec-image-swap-wrapper.ec-is-pulse:hover .ec-is-image-h {
	animation: ec-is-pulse 0.6s ease forwards;
	}
	@keyframes ec-is-pulse {
	0% { transform: scale(0.8); opacity: 0; }
	100% { transform: scale(1); opacity: 1; }
	}
	.ec-image-swap-wrapper.ec-is-bounce:hover .ec-is-image-h {
	animation: ec-is-bounce 0.6s ease forwards;
	}
	@keyframes ec-is-bounce {
	0% { transform: scale(0.5); opacity: 0; }
	70% { transform: scale(1.2); opacity: 1; }
	100% { transform: scale(1); }
	}
	.ec-image-swap-wrapper.ec-is-rotate3d-y .ec-is-image-n { transform: perspective(600px) rotateY(0); }
	.ec-image-swap-wrapper.ec-is-rotate3d-y:hover .ec-is-image-n { transform: perspective(600px) rotateY(180deg); }
	.ec-image-swap-wrapper.ec-is-rotate3d-y .ec-is-image-h { transform: perspective(600px) rotateY(-180deg); }
	.ec-image-swap-wrapper.ec-is-rotate3d-y:hover .ec-is-image-h { transform: perspective(600px) rotateY(0); }
	.ec-image-swap-wrapper.ec-is-rotate3d-x .ec-is-image-n { transform: perspective(600px) rotateX(0); }
	.ec-image-swap-wrapper.ec-is-rotate3d-x:hover .ec-is-image-n { transform: perspective(600px) rotateX(180deg); }
	.ec-image-swap-wrapper.ec-is-rotate3d-x .ec-is-image-h { transform: perspective(600px) rotateX(-180deg); }
	.ec-image-swap-wrapper.ec-is-rotate3d-x:hover .ec-is-image-h { transform: perspective(600px) rotateX(0); }
	.ec-image-swap-wrapper.ec-is-tilt:hover .ec-is-image-h { transform: rotate(-5deg) scale(1.1); }
	.ec-image-swap-wrapper.ec-is-zoom-rotate:hover .ec-is-image-h { transform: scale(1.2) rotate(-10deg); }
	.ec-image-swap-wrapper.ec-is-flash:hover .ec-is-image-h {
	animation: ec-is-flash 0.6s ease forwards;
	}
	@keyframes ec-is-flash {
	0% { opacity: 0; }
	50% { opacity: 1; }
	100% { opacity: 1; }
	}
	.ec-image-swap-wrapper.ec-is-shake:hover .ec-is-image-h {
	animation: ec-is-shake 0.5s ease;
	}
	@keyframes ec-is-shake {
	0%,100% { transform: translateX(0); }
	25% { transform: translateX(-5px); }
	50% { transform: translateX(5px); }
	75% { transform: translateX(-5px); }
	}
	.ec-image-swap-wrapper.ec-is-swing:hover .ec-is-image-h {
	animation: ec-is-swing 0.6s ease;
	}
	@keyframes ec-is-swing {
	20% { transform: rotate(10deg); }
	40% { transform: rotate(-10deg); }
	60% { transform: rotate(5deg); }
	80% { transform: rotate(-5deg); }
	100% { transform: rotate(0deg); }
	}
	.ec-image-swap-wrapper.ec-is-wave .ec-is-image-h {
	clip-path: polygon(0 100%, 100% 100%, 100% 100%, 0 100%);
	}
	.ec-image-swap-wrapper.ec-is-wave:hover .ec-is-image-h {
	clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
	}
	.ec-image-swap-wrapper.ec-is-pixelate .ec-is-image-h { filter: blur(15px); }
	.ec-image-swap-wrapper.ec-is-pixelate:hover .ec-is-image-h { filter: blur(0); }
	.ec-image-swap-wrapper.ec-is-gradient::after {
	content: "";
	position: absolute; inset: 0;
	background: linear-gradient(45deg, #ff4081, #2196f3);
	opacity: 0;
	transition: opacity 0.6s;
	}
	.ec-image-swap-wrapper.ec-is-gradient:hover::after { opacity: 0.4; }
	.ec-image-swap-wrapper.ec-is-half-slide .ec-is-image-h { clip-path: inset(0 50% 0 50%); }
	.ec-image-swap-wrapper.ec-is-half-slide:hover .ec-is-image-h { clip-path: inset(0 0 0 0); }
	.ec-image-swap-wrapper.ec-is-half-vertical .ec-is-image-h { clip-path: inset(50% 0 50% 0); }
	.ec-image-swap-wrapper.ec-is-half-vertical:hover .ec-is-image-h { clip-path: inset(0 0 0 0); }
	.ec-image-swap-wrapper.ec-is-corner .ec-is-image-h { clip-path: polygon(0 0, 0 0, 0 0, 0 0); }
	.ec-image-swap-wrapper.ec-is-corner:hover .ec-is-image-h { clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); }
	.ec-image-swap-wrapper.ec-is-tilt-shadow:hover .ec-is-image-h {
	transform: rotate(5deg);
	box-shadow: 10px 20px 40px rgba(0,0,0,0.5);
	}
	.ec-image-swap-wrapper.ec-is-split-diagonal .ec-is-image-h {
	clip-path: polygon(0 0, 0 0, 0 100%, 0 100%);
	}
	.ec-image-swap-wrapper.ec-is-split-diagonal:hover .ec-is-image-h {
	clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
	transition: clip-path 0.7s ease-in-out;
	}
	.ec-image-swap-wrapper.ec-is-spiral .ec-is-image-h {
	transform: scale(0) rotate(720deg);
	opacity: 0;
	}
	.ec-image-swap-wrapper.ec-is-spiral:hover .ec-is-image-h {
	transform: scale(1) rotate(0);
	opacity: 1;
	transition: all 1s ease-in-out;
	}
	.ec-image-swap-wrapper.ec-is-zoom-flip .ec-is-image-h {
	transform: rotate3d(1,1,0,90deg) scale(0.5);
	opacity: 0;
	}
	.ec-image-swap-wrapper.ec-is-zoom-flip:hover .ec-is-image-h {
	transform: rotate3d(1,1,0,0deg) scale(1);
	opacity: 1;
	transition: all 0.8s ease-in-out;
	}
	.ec-image-swap-wrapper.ec-is-csh .ec-is-image-h {
	filter: contrast(200%) saturate(150%) hue-rotate(90deg);
	opacity: 0;
	}
	.ec-image-swap-wrapper.ec-is-csh:hover .ec-is-image-h {
	opacity: 1;
	mix-blend-mode: screen;
	transition: all 0.6s ease;
	}
	.ec-image-swap-wrapper.ec-is-split-h .ec-is-image-h {
	clip-path: polygon(0 0, 0 0, 0 100%, 0 100%);
	}
	.ec-image-swap-wrapper.ec-is-split-h:hover .ec-is-image-h {
	clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
	transition: clip-path 0.7s ease;
	}
	.ec-image-swap-wrapper.ec-is-split-v .ec-is-image-h {
	clip-path: polygon(0 0, 100% 0, 100% 0, 0 0);
	}
	.ec-image-swap-wrapper.ec-is-split-v:hover .ec-is-image-h {
	clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
	transition: clip-path 0.7s ease;
	}
	.ec-image-swap-wrapper.ec-is-overlay-glow::after {
	content: "";
	position: absolute; inset: 0;
	background: radial-gradient(circle, rgba(255,255,255,0.6) 0%, transparent 70%);
	opacity: 0;
	transition: opacity 0.6s ease;
	}
	.ec-image-swap-wrapper.ec-is-overlay-glow:hover::after { opacity: 1; }
	.ec-image-swap-wrapper.ec-is-ripple-mask .ec-is-image-h {
	-webkit-mask-image: radial-gradient(circle at center, black 0%, transparent 70%);
	-webkit-mask-repeat: no-repeat;
	-webkit-mask-position: center;
	-webkit-mask-size: 0% 0%;
	transition: -webkit-mask-size 0.8s ease;
	}
	.ec-image-swap-wrapper.ec-is-ripple-mask:hover .ec-is-image-h {
	-webkit-mask-size: 200% 200%;
	}
	.ec-image-swap-wrapper.ec-is-wave-curtain .ec-is-image-h {
	clip-path: polygon(0 100%, 25% 95%, 50% 100%, 75% 95%, 100% 100%, 100% 0, 0 0);
	}
	.ec-image-swap-wrapper.ec-is-wave-curtain:hover .ec-is-image-h {
	clip-path: polygon(0 90%, 25% 85%, 50% 90%, 75% 85%, 100% 90%, 100% 0, 0 0);
	transition: clip-path 1s ease-in-out;
	}
	.ec-image-swap-wrapper.ec-is-neon-flicker .ec-is-image-h {
	opacity: 0;
	filter: drop-shadow(0 0 5px #0ff) drop-shadow(0 0 15px #0ff);
	}
	.ec-image-swap-wrapper.ec-is-neon-flicker:hover .ec-is-image-h {
	opacity: 1;
	animation: ec-is-flicker 1s infinite;
	}
	@keyframes ec-is-flicker {
	0%, 19%, 21%, 23%, 25%, 54%, 56%, 100% { opacity: 1; }
	20%, 24%, 55% { opacity: 0; }
	}
	.ec-image-swap-wrapper.ec-is-fire .ec-is-image-h {
	filter: brightness(120%) saturate(150%) hue-rotate(20deg);
	opacity: 0;
	}
	.ec-image-swap-wrapper.ec-is-fire:hover .ec-is-image-h {
	opacity: 1;
	animation: ec-is-fireglow 1.2s infinite alternate;
	}
	@keyframes ec-is-fireglow {
	from { filter: brightness(120%) saturate(150%) hue-rotate(20deg); }
	to { filter: brightness(150%) saturate(200%) hue-rotate(40deg); }
	}
	.ec-image-swap-wrapper.ec-is-circle2 .ec-is-image-h {
	clip-path: circle(0% at 50% 50%);
	transition: clip-path 0.6s ease-in-out;
	}
	.ec-image-swap-wrapper.ec-is-circle2:hover .ec-is-image-h {
	clip-path: circle(150% at 50% 50%);
	}
	.ec-image-swap-wrapper.ec-is-triangle .ec-is-image-h {
	clip-path: polygon(50% 50%, 50% 50%, 50% 50%);
	transition: clip-path 0.6s ease-in-out;
	}
	.ec-image-swap-wrapper.ec-is-triangle:hover .ec-is-image-h {
	clip-path: polygon(50% 0, 100% 100%, 0 100%);
	}
	.ec-image-swap-wrapper.ec-is-split-vertical .ec-is-image-h {
	clip-path: polygon(50% 0, 50% 0, 50% 100%, 50% 100%);
	transition: clip-path 0.6s ease-in-out;
	}
	.ec-image-swap-wrapper.ec-is-split-vertical:hover .ec-is-image-h {
	clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
	}
	.ec-image-swap-wrapper.ec-is-hexagon .ec-is-image-h {
	clip-path: polygon(50% 0%, 93% 25%, 93% 75%, 50% 100%, 7% 75%, 7% 25%);
	transform: scale(0);
	transition: transform 0.6s ease-in-out;
	}
	.ec-image-swap-wrapper.ec-is-hexagon:hover .ec-is-image-h {
	transform: scale(1);
	}
	.ec-image-swap-wrapper.ec-is-pentagon .ec-is-image-h {
	clip-path: polygon(50% 0, 100% 38%, 82% 100%, 18% 100%, 0 38%);
	transform: scale(0);
	transition: transform 0.6s ease-in-out;
	}
	.ec-image-swap-wrapper.ec-is-pentagon:hover .ec-is-image-h {
	transform: scale(1);
	}
	.ec-image-swap-wrapper.ec-is-star .ec-is-image-h {
	clip-path: polygon(50% 0%, 61% 35%, 98% 35%,
						68% 57%, 79% 91%, 50% 70%,
						21% 91%, 32% 57%, 2% 35%,
						39% 35%);
	transform: scale(0);
	transition: transform 0.6s ease-in-out;
	}
	.ec-image-swap-wrapper.ec-is-star:hover .ec-is-image-h {
	transform: scale(1);
	}
	.ec-image-swap-wrapper.ec-is-rhombus .ec-is-image-h {
	clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0 50%);
	transform: scale(0);
	transition: transform 0.6s ease-in-out;
	}
	.ec-image-swap-wrapper.ec-is-rhombus:hover .ec-is-image-h {
	transform: scale(1);
	}
	.ec-image-swap-wrapper.ec-is-parallelogram .ec-is-image-h {
	clip-path: polygon(25% 0, 100% 0, 75% 100%, 0 100%);
	transform: translateX(-100%);
	transition: transform 0.6s ease-in-out;
	}
	.ec-image-swap-wrapper.ec-is-parallelogram:hover .ec-is-image-h {
	transform: translateX(0);
	}
	.ec-image-swap-wrapper.ec-is-octagon .ec-is-image-h {
	clip-path: polygon(30% 0, 70% 0, 100% 30%, 100% 70%,
						70% 100%, 30% 100%, 0 70%, 0 30%);
	transform: scale(0);
	transition: transform 0.6s ease-in-out;
	}
	.ec-image-swap-wrapper.ec-is-octagon:hover .ec-is-image-h {
	transform: scale(1);
	}