/**
 * AT Elementor Elements — Creative Motion Styles
 *
 * Scoped animation primitives, reveal masking, and clip-path transitions.
 *
 * @package AT_Elementor_Elements
 * @version 3.0.0
 */

/* Reveal Mask Container */
.at-reveal-wrapper {
	position: relative;
	overflow: hidden;
	display: block;
}

.at-reveal-mask {
	position: absolute;
	inset: 0;
	z-index: 2;
	background: currentColor;
	pointer-events: none;
	will-change: transform;
	transform-origin: left center;
}

/* Directional Transform Origins for Reveal */
.at-reveal-mask[data-direction="lr"] {
	transform-origin: left center;
}
.at-reveal-mask[data-direction="rl"] {
	transform-origin: right center;
}
.at-reveal-mask[data-direction="tb"] {
	transform-origin: top center;
}
.at-reveal-mask[data-direction="bt"] {
	transform-origin: bottom center;
}

/* Reveal Target Content */
.at-reveal-content {
	position: relative;
	z-index: 1;
	will-change: opacity, transform;
}

/* Clip-Path Reveal Utilities */
[data-at-clip] {
	will-change: clip-path, -webkit-clip-path;
}

[data-at-clip="left-right"] {
	clip-path: inset(0 100% 0 0);
	-webkit-clip-path: inset(0 100% 0 0);
}

[data-at-clip="bottom-top"] {
	clip-path: inset(100% 0 0 0);
	-webkit-clip-path: inset(100% 0 0 0);
}

[data-at-clip="circle"] {
	clip-path: circle(0% at 50% 50%);
	-webkit-clip-path: circle(0% at 50% 50%);
}

/* Safe initial visibility: elements with fallback class are forced visible */
.at-motion-visible,
.no-js [data-at-motion],
.no-js [data-at-reveal] {
	opacity: 1 !important;
	visibility: visible !important;
	transform: none !important;
	clip-path: none !important;
	-webkit-clip-path: none !important;
}

/* Stagger Item Transition Default */
.at-stagger-item {
	will-change: opacity, transform;
}
