/* =================================================================
 * Creative Addons — Motion Effects Base Styles
 * GPU-optimised, prefers-reduced-motion aware.
 * ================================================================*/

/* Reduced motion: disable all motion effects. */
@media (prefers-reduced-motion: reduce) {
	.ca-motion-enabled,
	.ca-scroll-init,
	.ca-reveal-init,
	.ca-sticky-init {
		animation: none !important;
		transition: none !important;
		transform: none !important;
	}
}

/* ------------------------------------------------------------------
 * Scroll Animations — initial (hidden) states
 * ----------------------------------------------------------------*/

.ca-scroll-init {
	transition-property: opacity, transform, filter;
}

/* Fade In */
.ca-scroll--fade-in {
	opacity: 0;
}
.ca-scroll--fade-in.ca-scroll-visible {
	opacity: 1;
}

/* Fade Up */
.ca-scroll--fade-up {
	opacity: 0;
	transform: translate3d(0, 40px, 0);
}
.ca-scroll--fade-up.ca-scroll-visible {
	opacity: 1;
	transform: translate3d(0, 0, 0);
}

/* Fade Down */
.ca-scroll--fade-down {
	opacity: 0;
	transform: translate3d(0, -40px, 0);
}
.ca-scroll--fade-down.ca-scroll-visible {
	opacity: 1;
	transform: translate3d(0, 0, 0);
}

/* Fade Left */
.ca-scroll--fade-left {
	opacity: 0;
	transform: translate3d(40px, 0, 0);
}
.ca-scroll--fade-left.ca-scroll-visible {
	opacity: 1;
	transform: translate3d(0, 0, 0);
}

/* Fade Right */
.ca-scroll--fade-right {
	opacity: 0;
	transform: translate3d(-40px, 0, 0);
}
.ca-scroll--fade-right.ca-scroll-visible {
	opacity: 1;
	transform: translate3d(0, 0, 0);
}

/* Zoom In */
.ca-scroll--zoom-in {
	opacity: 0;
	transform: scale3d(0.85, 0.85, 1);
}
.ca-scroll--zoom-in.ca-scroll-visible {
	opacity: 1;
	transform: scale3d(1, 1, 1);
}

/* Zoom Out */
.ca-scroll--zoom-out {
	opacity: 0;
	transform: scale3d(1.15, 1.15, 1);
}
.ca-scroll--zoom-out.ca-scroll-visible {
	opacity: 1;
	transform: scale3d(1, 1, 1);
}

/* Rotate In */
.ca-scroll--rotate-in {
	opacity: 0;
	transform: rotate3d(0, 0, 1, -10deg) scale3d(0.9, 0.9, 1);
}
.ca-scroll--rotate-in.ca-scroll-visible {
	opacity: 1;
	transform: rotate3d(0, 0, 1, 0deg) scale3d(1, 1, 1);
}

/* Blur In */
.ca-scroll--blur-in {
	opacity: 0;
	filter: blur(12px);
}
.ca-scroll--blur-in.ca-scroll-visible {
	opacity: 1;
	filter: blur(0);
}

/* ------------------------------------------------------------------
 * Sticky Helpers
 * ----------------------------------------------------------------*/

.ca-sticky-init {
	will-change: transform;
}

.ca-sticky-sentinel {
	visibility: hidden;
}

/* ------------------------------------------------------------------
 * Tilt Glare
 * ----------------------------------------------------------------*/

.ca-tilt-glare {
	pointer-events: none;
}
