/* DOYJO Design Enhancer — Effects */
.djde-fx{
	--djde-delay: var(--djde-delay, 0ms);
}

.djde-reveal{
	opacity: 0;
	transform: translate3d(0, var(--djde-reveal-y, 14px), 0) scale(var(--djde-reveal-scale, 1));
	filter: blur(var(--djde-reveal-blur, 0px));
	clip-path: var(--djde-reveal-clip, inset(0 0 0 0));
	will-change: opacity, transform, filter, clip-path;

	transition-property: opacity, transform, filter, clip-path;
	transition-duration: var(--djde-dur, 450ms);
	transition-timing-function: var(--djde-ease, cubic-bezier(.2,.8,.2,1));
	transition-delay: calc(var(--djde-delay, 0ms) + (var(--djde-i, 0) * var(--djde-stagger, 60ms)));
}

.djde-reveal.is-revealed{
	opacity: 1;
	transform: translate3d(0,0,0) scale(1);
	filter: blur(0px);
	clip-path: inset(0 0 0 0);
}

/* Reveal styles (design language) */
.djde-reveal--glide{
	--djde-reveal-y: 14px;
}
.djde-reveal--bloom{
	--djde-reveal-y: 10px;
	--djde-reveal-scale: .985;
}
.djde-reveal--haze{
	--djde-reveal-y: 10px;
	--djde-reveal-scale: .99;
	--djde-reveal-blur: 10px;
}
.djde-reveal--snap{
	--djde-reveal-y: 6px;
	--djde-reveal-scale: .96;
}
.djde-reveal--curtain{
	--djde-reveal-y: 0px;
	--djde-reveal-clip: inset(0 0 100% 0);
}
.djde-reveal--curtain.is-revealed{
	--djde-reveal-clip: inset(0 0 0 0);
}

/* Hover polish */
.djde-hover{
	transition:
		transform var(--djde-dur, 450ms) var(--djde-ease, cubic-bezier(.2,.8,.2,1)),
		box-shadow var(--djde-dur, 450ms) var(--djde-ease, cubic-bezier(.2,.8,.2,1)),
		filter var(--djde-dur, 450ms) var(--djde-ease, cubic-bezier(.2,.8,.2,1));
}

.djde-hover--lift:hover{
	transform: translate3d(0,-4px,0);
	box-shadow: var(--djde-shadow-hover, 0 16px 42px rgba(0,0,0,.14));
}

.djde-hover--glow:hover{
	box-shadow:
		0 0 0 1px color-mix(in srgb, currentColor 20%, transparent),
		var(--djde-shadow-hover, 0 16px 42px rgba(0,0,0,.14));
}

.djde-hover--zoom img,
.djde-hover--zoom picture,
.djde-hover--zoom figure{
	transition: transform var(--djde-dur, 450ms) var(--djde-ease, cubic-bezier(.2,.8,.2,1));
	will-change: transform;
}
.djde-hover--zoom:hover img,
.djde-hover--zoom:hover picture,
.djde-hover--zoom:hover figure{
	transform: scale(1.03);
}

.djde-hover--underline a{
	background-image: linear-gradient(currentColor, currentColor);
	background-position: 0 100%;
	background-repeat: no-repeat;
	background-size: 0% 2px;
	transition: background-size 250ms var(--djde-ease, cubic-bezier(.2,.8,.2,1));
}
.djde-hover--underline:hover a{
	background-size: 100% 2px;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
	.djde-reveal{
		opacity: 1 !important;
		transform: none !important;
		filter: none !important;
		clip-path: inset(0 0 0 0) !important;
		transition: none !important;
		will-change: auto !important;
	}
	.djde-hover{
		transition: none !important;
	}
}
