
@charset "UTF-8";

/* =====================================
   COMMON BASE TARGET
===================================== */
[class*=wcf-starter-animations-] .elementor-widget-container > *, [class*=wcf-starter-animations-] > *, .wcf-target-self[class*=wcf-starter-animations-] {
	will-change: transform, opacity, clip-path;
}

/* =====================================
   COMMON ANIMATION SETTINGS
===================================== */
.wcf-animate[class*=wcf-starter-animations-] .elementor-widget-container > *, .wcf-animate[class*=wcf-starter-animations-] > *, .wcf-animate.wcf-target-self[class*=wcf-starter-animations-] {
	animation-duration: var(--wcf-duration, 700ms);
	animation-delay: var(--wcf-delay, 0ms);
	animation-timing-function: var(--wcf-ease, ease);
	animation-fill-mode: forwards;
}

/* =====================================
   REVEAL ENGINE (FIXED TARGET)
===================================== */

/* Initial Hidden State */
.wcf-starter-animations-reveal .elementor-widget-container > *, .wcf-starter-animations-reveal > *, .wcf-starter-animations-reveal.wcf-target-self {
	opacity: 0;
}

/* Bottom */
.wcf-reveal-bottom.wcf-starter-animations-reveal .elementor-widget-container > *, .wcf-reveal-bottom.wcf-starter-animations-reveal > *, .wcf-reveal-bottom.wcf-starter-animations-reveal.wcf-target-self {
	clip-path: inset(100% 0 0 0);
}

/* Top */
.wcf-reveal-top.wcf-starter-animations-reveal .elementor-widget-container > *, .wcf-reveal-top.wcf-starter-animations-reveal > *, .wcf-reveal-top.wcf-starter-animations-reveal.wcf-target-self {
	clip-path: inset(0 0 100% 0);
}

/* Left */
.wcf-reveal-left.wcf-starter-animations-reveal .elementor-widget-container > *, .wcf-reveal-left.wcf-starter-animations-reveal > *, .wcf-reveal-left.wcf-starter-animations-reveal.wcf-target-self {
	clip-path: inset(0 100% 0 0);
}

/* Right */
.wcf-reveal-right.wcf-starter-animations-reveal .elementor-widget-container > *, .wcf-reveal-right.wcf-starter-animations-reveal > *, .wcf-reveal-right.wcf-starter-animations-reveal.wcf-target-self {
	clip-path: inset(0 0 0 100%);
}

/* Center */
.wcf-reveal-center.wcf-starter-animations-reveal .elementor-widget-container > *, .wcf-reveal-center.wcf-starter-animations-reveal > *, .wcf-reveal-center.wcf-starter-animations-reveal.wcf-target-self {
	clip-path: inset(0 50% 0 50%);
}

/* Animate */
.wcf-animate.wcf-starter-animations-reveal .elementor-widget-container > *, .wcf-animate.wcf-starter-animations-reveal > *, .wcf-animate.wcf-starter-animations-reveal.wcf-target-self {
	animation: wcf-reveal-anim var(--wcf-duration, 700ms) var(--wcf-ease, ease) forwards;
}

@keyframes wcf-reveal-anim {
	to {
		clip-path: inset(0 0 0 0);
		opacity: 1;
	}
}

/* =====================================
   TRANSFORM ANIMATIONS
===================================== */

/* Scale Up */
.wcf-starter-animations-scale-up .elementor-widget-container > *, .wcf-starter-animations-scale-up > *, .wcf-starter-animations-scale-up.wcf-target-self {
	transform: scale(var(--wcf-scale-start, .6));
	opacity: var(--wcf-scale-opacity, 0);
	transform-origin: var(--wcf-scale-origin, center);
}

.wcf-animate.wcf-starter-animations-scale-up .elementor-widget-container > *, .wcf-animate.wcf-starter-animations-scale-up > *, .wcf-animate.wcf-starter-animations-scale-up.wcf-target-self {
	animation-name: wcf-scale-up;
}

@keyframes wcf-scale-up {
	to {
		transform: scale(var(--wcf-scale-end, 1));
		opacity: 1;
	}
}

/* Rotate In */
.wcf-starter-animations-rotate-in .elementor-widget-container > *, .wcf-starter-animations-rotate-in > *, .wcf-starter-animations-rotate-in.wcf-target-self {
	transform: rotate(-45deg);
	opacity: 0;
}

.wcf-animate.wcf-starter-animations-rotate-in .elementor-widget-container > *, .wcf-animate.wcf-starter-animations-rotate-in > *, .wcf-animate.wcf-starter-animations-rotate-in.wcf-target-self {
	animation-name: wcf-rotate-in;
}

@keyframes wcf-rotate-in {
	to {
		transform: rotate(0);
		opacity: 1;
	}
}

/* Slide Up */

/* Base Slide State */
.wcf-starter-animations-slide .elementor-widget-container > *, .wcf-starter-animations-slide > *, .wcf-starter-animations-slide.wcf-target-self {
	opacity: 0;
}

/* Bottom → Top */
.wcf-slide-bottom.wcf-starter-animations-slide .elementor-widget-container > *, .wcf-slide-bottom.wcf-starter-animations-slide > *, .wcf-slide-bottom.wcf-starter-animations-slide.wcf-target-self {
	transform: translateY(var(--wcf-slide-distance, 60px));
}

/* Top → Bottom */
.wcf-slide-top.wcf-starter-animations-slide .elementor-widget-container > *, .wcf-slide-top.wcf-starter-animations-slide > *, .wcf-slide-top.wcf-starter-animations-slide.wcf-target-self {
	transform: translateY(calc(var(--wcf-slide-distance, 60px) * -1));
}

/* Left → Right */
.wcf-slide-left.wcf-starter-animations-slide .elementor-widget-container > *, .wcf-slide-left.wcf-starter-animations-slide > *, .wcf-slide-left.wcf-starter-animations-slide.wcf-target-self {
	transform: translateX(calc(var(--wcf-slide-distance, 60px) * -1));
}

/* Right → Left */
.wcf-slide-right.wcf-starter-animations-slide .elementor-widget-container > *, .wcf-slide-right.wcf-starter-animations-slide > *, .wcf-slide-right.wcf-starter-animations-slide.wcf-target-self {
	transform: translateX(var(--wcf-slide-distance, 60px));
}

/* Animate */
.wcf-animate.wcf-starter-animations-slide .elementor-widget-container > *, .wcf-animate.wcf-starter-animations-slide > *, .wcf-animate.wcf-starter-animations-slide.wcf-target-self {
	animation: wcf-slide var(--wcf-duration, 700ms) var(--wcf-ease, ease) forwards;
}

@keyframes wcf-slide {
	to {
		transform: translateX(0) translateY(0);
		opacity: 1;
	}
}

/* =========================================
   Skew Reveal (Variable Driven)
========================================= */
.wcf-starter-animations-skew-reveal .elementor-widget-container > *, .wcf-starter-animations-skew-reveal > *, .wcf-starter-animations-skew-reveal.wcf-target-self {
	transform: skewX(var(--wcf-skew-angle, 18deg)) translateX(var(--wcf-skew-distance, -40px));
	opacity: var(--wcf-skew-opacity-start, 0);
	animation-duration: var(--wcf-duration, .6s);
	animation-delay: var(--wcf-skew-delay, 0s);
	animation-timing-function: var(--wcf-skew-ease, ease);
	animation-fill-mode: forwards;
	will-change: transform, opacity;
}

/* Trigger */
.wcf-animate.wcf-starter-animations-skew-reveal .elementor-widget-container > *, .wcf-animate.wcf-starter-animations-skew-reveal > *, .wcf-animate.wcf-starter-animations-skew-reveal.wcf-target-self {
	animation-name: wcf-skew-reveal;
}

/* Keyframes */
@keyframes wcf-skew-reveal {
	to {
		transform: skewX(0deg) translateX(0);
		opacity: 1;
	}
}

/* Flip Animation Base */
.wcf-starter-animations-flip .elementor-widget-container > *, .wcf-starter-animations-flip > *, .wcf-starter-animations-flip.wcf-target-self {
	opacity: 0;
	transform-style: preserve-3d;
	perspective: var(--wcf-flip-perspective, 800px);
	animation-duration: var(--wcf-flip-duration, .6s);
	animation-delay: var(--wcf-flip-delay, 0s);
	animation-timing-function: var(--wcf-flip-ease, ease);
	animation-fill-mode: forwards;
	will-change: transform, opacity;
}

/* X Axis */
.wcf-flip-axis-x.wcf-starter-animations-flip .elementor-widget-container > *, .wcf-flip-axis-x.wcf-starter-animations-flip > *, .wcf-flip-axis-x.wcf-starter-animations-flip.wcf-target-self {
	transform: rotateX(var(--wcf-flip-angle, 90deg));
}

/* Y Axis */
.wcf-flip-axis-y.wcf-starter-animations-flip .elementor-widget-container > *, .wcf-flip-axis-y.wcf-starter-animations-flip > *, .wcf-flip-axis-y.wcf-starter-animations-flip.wcf-target-self {
	transform: rotateY(var(--wcf-flip-angle, 90deg));
}

/* Trigger */
.wcf-animate.wcf-starter-animations-flip .elementor-widget-container > *, .wcf-animate.wcf-starter-animations-flip > *, .wcf-animate.wcf-starter-animations-flip.wcf-target-self {
	animation-name: wcf-flip;
}

/* Keyframes */
@keyframes wcf-flip {
	to {
		transform: rotateX(0deg) rotateY(0deg);
		opacity: 1;
	}
}

/* Zoom In */
.wcf-starter-animations-zoom-in .elementor-widget-container > *, .wcf-starter-animations-zoom-in > *, .wcf-starter-animations-zoom-in.wcf-target-self {
	transform: scale(1.3);
	opacity: 0;
}

.wcf-animate.wcf-starter-animations-zoom-in .elementor-widget-container > *, .wcf-animate.wcf-starter-animations-zoom-in > *, .wcf-animate.wcf-starter-animations-zoom-in.wcf-target-self {
	animation-name: wcf-zoom-in;
}

@keyframes wcf-zoom-in {
	to {
		transform: scale(1);
		opacity: 1;
	}
}

/* Combo Reveal */
.wcf-starter-animations-combo-reveal .elementor-widget-container > *, .wcf-starter-animations-combo-reveal > *, .wcf-starter-animations-combo-reveal.wcf-target-self {
	transform: translateY(40px) scale(.9);
	opacity: 0;
}

.wcf-animate.wcf-starter-animations-combo-reveal .elementor-widget-container > *, .wcf-animate.wcf-starter-animations-combo-reveal > *, .wcf-animate.wcf-starter-animations-combo-reveal.wcf-target-self {
	animation-name: wcf-combo-reveal;
}

@keyframes wcf-combo-reveal {
	to {
		transform: translateY(0) scale(1);
		opacity: 1;
	}
}

/* Glow Pulse */
.wcf-animate.wcf-starter-animations-text-glow {
	animation: wcf-glow var(--wcf-duration, 2s) var(--wcf-ease, ease-in-out) alternate;
	animation-iteration-count: var(--wcf-iteration, infinite);
}

@keyframes wcf-glow {
	from {
		text-shadow: 0 0 5px var(--wcf-glow-color, #fff);
	}
	
	to {
		text-shadow: 0 0 var(--wcf-glow-size, 20px) var(--wcf-glow-color, #00f);
	}
}

/* Pop Scale */
.wcf-starter-animations-text-pop {
	transform: scale(.6);
	opacity: 0;
}

.wcf-animate.wcf-starter-animations-text-pop {
	animation: wcf-text-pop .6s ease forwards;
}

@keyframes wcf-text-pop {
	70% {
		transform: scale(1.1);
	}
	
	100% {
		transform: scale(1);
		opacity: 1;
	}
}

.wcf-starter-animations-text-typewriter .elementor-widget-container > *, .wcf-starter-animations-text-typewriter > *, .wcf-target-self.wcf-starter-animations-text-typewriter {
	overflow: hidden;
	white-space: nowrap;
	width: 0;
}

.wcf-animate.wcf-starter-animations-text-typewriter .elementor-widget-container > *, .wcf-animate.wcf-starter-animations-text-typewriter > *, .wcf-animate.wcf-target-self.wcf-starter-animations-text-typewriter {
	animation: wcf-typewriter var(--wcf-duration, 2s) steps(30) forwards, wcf-caret 1s step-end;
}

@keyframes wcf-typewriter {
	to {
		width: 100%;
	}
}

@keyframes wcf-caret {
	50% {
		border-color: transparent;
	}
}

/* =====================================
   Cinematic Mask Wipe
===================================== */
.wcf-starter-animations-text-mask-wipe .elementor-widget-container > *, .wcf-starter-animations-text-mask-wipe > *, .wcf-target-self.wcf-starter-animations-text-mask-wipe {
	position: relative;
	display: inline-block;
	overflow: hidden;
}

/* Mask layer */
.wcf-starter-animations-text-mask-wipe .elementor-widget-container > *::after, .wcf-starter-animations-text-mask-wipe > *::after, .wcf-target-self.wcf-starter-animations-text-mask-wipe::after {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--wcf-mask-bg, #000);
	transform: translateX(0%);
	z-index: 2;
}

/* Animate */
.wcf-animate.wcf-starter-animations-text-mask-wipe .elementor-widget-container > *::after, .wcf-animate.wcf-starter-animations-text-mask-wipe > *::after, .wcf-animate.wcf-target-self.wcf-starter-animations-text-mask-wipe::after {
	animation: wcf-mask-wipe var(--wcf-duration, 1000ms) var(--wcf-ease, cubic-bezier(.77, 0, .18, 1)) var(--wcf-delay, 0ms) forwards;
}

@keyframes wcf-mask-wipe {
	to {
		transform: translateX(100%);
	}
}

/* Scrollable Select2 Dropdown */
.wcf-select-scroll .select2-results__options {
	max-height: 150px !important;
	overflow-y: auto !important;
}

/* =====================================
   TEXT WAVE (Water Stroke Effect)
===================================== */
.wcf-starter-animations-text-wave .elementor-widget-container > *, .wcf-starter-animations-text-wave > *, .wcf-target-self.wcf-starter-animations-text-wave {
	position: relative;
	color: transparent;
}

/* Animated layer */
.wcf-starter-animations-text-wave .elementor-widget-container > *::after, .wcf-starter-animations-text-wave > *::after, .wcf-target-self.wcf-starter-animations-text-wave::after {
	content: attr(data-text);
	position: absolute;
	left: 0;
	top: 0;
	color: var(--wcf-wave-fill, #03a9f4);
	animation: wcf-wave 4s ease-in-out infinite;
}

@keyframes wcf-wave {
	0%, 100% {
		clip-path: polygon(0% 45%, 16% 44%, 33% 50%, 54% 60%, 70% 61%, 84% 59%, 100% 52%, 100% 100%, 0% 100%);
	}
	
	50% {
		clip-path: polygon(0% 60%, 15% 65%, 34% 66%, 51% 62%, 67% 50%, 84% 45%, 100% 46%, 100% 100%, 0% 100%);
	}
}

/* =====================================
   BACKGROUND CLIP TEXT ANIMATION
===================================== */
.wcf-starter-animations-text-bg-clip .elementor-widget-container > *, .wcf-starter-animations-text-bg-clip > *, .wcf-target-self.wcf-starter-animations-text-bg-clip {
	position: relative;
	color: var(--wcf-bg-text-color, rgba(255, 0, 0, .1));
	background-image: var(--wcf-bg-text-image);
	background-size: var(--wcf-bg-text-size, cover);
	background-repeat: repeat;
	background-position: left 0 top 50%;
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
}

/* Animate only when triggered */
.wcf-animate.wcf-starter-animations-text-bg-clip .elementor-widget-container > *, .wcf-animate.wcf-starter-animations-text-bg-clip > *, .wcf-animate.wcf-target-self.wcf-starter-animations-text-bg-clip {
	animation: wcf-bg-text-animation var(--wcf-bg-speed, 15s) linear infinite;
}

@keyframes wcf-bg-text-animation {
	0% {
		background-position: left 0 top 50%;
	}
	
	50% {
		background-position: left 1500px top 50%;
	}
	
	100% {
		background-position: left 0 top 50%;
	}
}

/* =====================================
   CHARACTER ANIMATION ENGINE (CLEAN)
===================================== */

/* ===============================
   PRESET DEFAULT VALUES
================================ */

/* Revolve */
.wcf-char-preset-revolve {
	--wcf-char-x: -150px;
	--wcf-char-y: -50px;
	--wcf-char-rotate: -180deg;
	--wcf-char-scale: 2;
}

/* Ball Drop */
.wcf-char-preset-ball {
	--wcf-char-x: 0px;
	--wcf-char-y: -200px;
	--wcf-char-rotate: 0deg;
	--wcf-char-scale: 1;
}

/* Slide */
.wcf-char-preset-slide {
	--wcf-char-x: -100px;
	--wcf-char-y: 0px;
	--wcf-char-rotate: 0deg;
	--wcf-char-scale: 1;
}

/* Revolve Drop */
.wcf-char-preset-revolve_drop {
	--wcf-char-x: 0px;
	--wcf-char-y: -150px;
	--wcf-char-rotate: -360deg;
	--wcf-char-scale: 1.5;
}

/* Drop Vanish */
.wcf-char-preset-drop_vanish {
	--wcf-char-x: 0px;
	--wcf-char-y: -250px;
	--wcf-char-rotate: 0deg;
	--wcf-char-scale: .3;
}

/* Twister */
.wcf-char-preset-twister {
	--wcf-char-x: 0px;
	--wcf-char-y: 0px;
	--wcf-char-rotate: -720deg;
	--wcf-char-scale: 1;
}

/* Parent Fix */
[class*=wcf-starter-animations-text-char] .elementor-widget-container > *, [class*=wcf-starter-animations-text-char] > *, .wcf-target-self[class*=wcf-starter-animations-text-char] {
	display: inline-block;
}

/* Initial State */
[class*=wcf-starter-animations-text-char] .elementor-widget-container > * span, [class*=wcf-starter-animations-text-char] > * span, .wcf-target-self[class*=wcf-starter-animations-text-char] span {
	display: inline-block;
	opacity: 0;
	transform: translate(var(--wcf-char-x, -150px), var(--wcf-char-y, 0)) rotate(var(--wcf-char-rotate, -180deg)) scale(var(--wcf-char-scale, 2));
	animation-delay: calc(var(--wcf-stagger, .05s) * var(--i));
	will-change: transform, opacity;
}

/* Animate State */
.wcf-animate[class*=wcf-starter-animations-text-char] .elementor-widget-container > * span, .wcf-animate[class*=wcf-starter-animations-text-char] > * span, .wcf-animate.wcf-target-self[class*=wcf-starter-animations-text-char] span {
	animation-name: wcf-char;
	animation-duration: var(--wcf-duration, .5s);
	animation-timing-function: var(--wcf-ease, ease);
	animation-fill-mode: forwards;
}

/* Keyframe */
@keyframes wcf-char {
	to {
		opacity: 1;
		transform: translate(0, 0) rotate(0deg) scale(1);
	}
}

/* =========================================
   Container Slide Animation (Stable)
========================================= */

/* Initial */
.wcf-starter-animations-slide.e-con {
	opacity: 0;
	animation-duration: var(--wcf-slide-duration, 600ms);
	animation-delay: var(--wcf-slide-delay, 0ms);
	animation-timing-function: var(--wcf-slide-ease, ease);
	animation-fill-mode: forwards;
	will-change: transform, opacity;
}

/* Direction */
.wcf-slide-bottom.wcf-starter-animations-slide.e-con {
	transform: translateY(var(--wcf-slide-distance, 40px));
}

.wcf-slide-top.wcf-starter-animations-slide.e-con {
	transform: translateY(calc(-1 * var(--wcf-slide-distance, 40px)));
}

.wcf-slide-left.wcf-starter-animations-slide.e-con {
	transform: translateX(calc(-1 * var(--wcf-slide-distance, 40px)));
}

.wcf-slide-right.wcf-starter-animations-slide.e-con {
	transform: translateX(var(--wcf-slide-distance, 40px));
}

/* Trigger */
.wcf-animate.wcf-starter-animations-slide.e-con {
	animation-name: wcf-container-slide;
}

@keyframes wcf-container-slide {
	to {
		transform: translateX(0) translateY(0);
		opacity: 1;
	}
}

/* =========================================
   CONTAINER FLIP ANIMATION (SELF ONLY)
========================================= */

/* Initial State */
.wcf-starter-animations-flip.e-con {
	opacity: 0;
	transform-style: preserve-3d;
	perspective: var(--wcf-flip-perspective-container, 800px);
	animation-duration: var(--wcf-duration, 700ms);
	animation-delay: var(--wcf-delay, 0ms);
	animation-timing-function: var(--wcf-ease, ease);
	animation-fill-mode: forwards;
	will-change: transform, opacity;
}

/* Axis X */
.wcf-flip-axis-container-x.wcf-starter-animations-flip.e-con {
	transform: rotateX(var(--wcf-flip-angle-container, 90deg));
}

/* Axis Y */
.wcf-flip-axis-container-y.wcf-starter-animations-flip.e-con {
	transform: rotateY(var(--wcf-flip-angle-container, 90deg));
}

/* Trigger */
.wcf-animate.wcf-starter-animations-flip.e-con {
	animation-name: wcf-container-flip;
}

/* Keyframes */
@keyframes wcf-container-flip {
	to {
		transform: rotateX(0deg) rotateY(0deg);
		opacity: 1;
	}
}
