.azza-enhanced-block,
.azza-hover,
.azza-animate {
	backface-visibility: hidden;
}

.azza-animate {
	--azza-animation-duration: 720ms;
	opacity: 0;
	transition-duration: var(--azza-animation-duration);
	transition-property: opacity, transform, filter, clip-path;
	transition-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
	will-change: opacity, transform, filter;
}

.azza-duration-fast {
	--azza-animation-duration: 420ms;
}

.azza-duration-normal {
	--azza-animation-duration: 720ms;
}

.azza-duration-slow {
	--azza-animation-duration: 1100ms;
}

.azza-animation-fade-in {
	transform: none;
}

.azza-animation-fade-up {
	transform: translate3d(0, 32px, 0);
}

.azza-animation-fade-down {
	transform: translate3d(0, -32px, 0);
}

.azza-animation-fade-left {
	transform: translate3d(32px, 0, 0);
}

.azza-animation-fade-right {
	transform: translate3d(-32px, 0, 0);
}

.azza-animation-zoom-in {
	transform: scale(0.92);
}

.azza-animation-zoom-out {
	transform: scale(1.08);
}

.azza-animation-flip-x {
	transform: perspective(900px) rotateX(18deg);
	transform-origin: center;
}

.azza-animation-flip-y {
	transform: perspective(900px) rotateY(-18deg);
	transform-origin: center;
}

.azza-animation-bounce {
	transform: translate3d(0, 24px, 0) scale(0.98);
}

.azza-animation-pulse {
	transform: scale(0.98);
}

.azza-animation-rotate-in {
	transform: rotate(-4deg) scale(0.96);
	transform-origin: center;
}

.azza-animation-blur-in {
	filter: blur(18px);
	transform: scale(1.015);
}

.azza-animation-blur-up {
	filter: blur(24px);
	transform: translate3d(0, 64px, 0) scale(0.96);
}

.azza-animation-blur-zoom {
	filter: blur(28px) brightness(1.12);
	transform: scale(0.78);
}

.azza-animation-soft-reveal {
	filter: saturate(0.35) contrast(0.9);
	transform: translate3d(0, 18px, 0);
}

.azza-animation-clip-reveal {
	clip-path: inset(0 100% 0 0 round 10px);
	transform: translate3d(18px, 0, 0);
}

.azza-animation-skew-reveal {
	transform: translate3d(-46px, 20px, 0) skewX(10deg);
}

.azza-animation-elastic-pop {
	transform: scale(0.82);
	transform-origin: center;
}

.azza-animation-spotlight {
	filter: brightness(1.8) saturate(0.4) blur(16px);
	transform: scale(0.94);
}

.azza-is-visible {
	opacity: 1;
	filter: none;
	transform: none;
	clip-path: inset(0 0 0 0 round 0);
}

.azza-animation-bounce.azza-is-visible {
	animation: azza-bounce-in var(--azza-animation-duration) cubic-bezier(0.22, 1, 0.36, 1) both;
}

.azza-animation-pulse.azza-is-visible {
	animation: azza-pulse-in var(--azza-animation-duration) ease-out both;
}

.azza-animation-elastic-pop.azza-is-visible {
	animation: azza-elastic-pop var(--azza-animation-duration) cubic-bezier(0.16, 1, 0.3, 1) both;
}

.azza-animation-spotlight.azza-is-visible {
	animation: azza-spotlight-in var(--azza-animation-duration) ease-out both;
}

.azza-animation-blur-in.azza-is-visible {
	animation: azza-blur-in var(--azza-animation-duration) cubic-bezier(0.22, 1, 0.36, 1) both;
}

.azza-animation-blur-up.azza-is-visible {
	animation: azza-blur-up var(--azza-animation-duration) cubic-bezier(0.16, 1, 0.3, 1) both;
}

.azza-animation-blur-zoom.azza-is-visible {
	animation: azza-blur-zoom var(--azza-animation-duration) cubic-bezier(0.16, 1, 0.3, 1) both;
}

.azza-animation-soft-reveal.azza-is-visible {
	animation: azza-soft-reveal var(--azza-animation-duration) ease-out both;
}

.azza-animation-clip-reveal.azza-is-visible {
	animation: azza-clip-reveal var(--azza-animation-duration) cubic-bezier(0.16, 1, 0.3, 1) both;
}

.azza-animation-skew-reveal.azza-is-visible {
	animation: azza-skew-reveal var(--azza-animation-duration) cubic-bezier(0.16, 1, 0.3, 1) both;
}

.azza-animation-rotate-in.azza-is-visible {
	animation: azza-rotate-in var(--azza-animation-duration) cubic-bezier(0.16, 1, 0.3, 1) both;
}

@keyframes azza-bounce-in {
	0% {
		opacity: 0;
		transform: translate3d(0, 32px, 0) scale(0.96);
	}

	58% {
		opacity: 1;
		transform: translate3d(0, -7px, 0) scale(1.015);
	}

	100% {
		opacity: 1;
		transform: none;
	}
}

@keyframes azza-pulse-in {
	0% {
		opacity: 0;
		filter: saturate(0.85);
		transform: scale(0.98);
	}

	45% {
		opacity: 1;
		transform: scale(1.018);
	}

	70% {
		transform: scale(0.996);
	}

	100% {
		opacity: 1;
		filter: none;
		transform: none;
	}
}

@keyframes azza-elastic-pop {
	0% {
		opacity: 0;
		transform: scale(0.82);
	}

	58% {
		opacity: 1;
		transform: scale(1.055);
	}

	78% {
		transform: scale(0.985);
	}

	100% {
		opacity: 1;
		transform: none;
	}
}

@keyframes azza-spotlight-in {
	0% {
		opacity: 0;
		filter: brightness(1.8) saturate(0.4) blur(16px);
		transform: scale(0.94);
	}

	35% {
		opacity: 0.92;
		filter: brightness(1.45) saturate(0.7) blur(7px);
	}

	70% {
		opacity: 1;
		filter: brightness(1.15) saturate(1.05) blur(1px);
	}

	100% {
		opacity: 1;
		filter: none;
		transform: none;
	}
}

@keyframes azza-blur-in {
	0% {
		opacity: 0;
		filter: blur(18px);
		transform: scale(1.015);
	}

	100% {
		opacity: 1;
		filter: none;
		transform: none;
	}
}

@keyframes azza-blur-up {
	0% {
		opacity: 0;
		filter: blur(24px);
		transform: translate3d(0, 64px, 0) scale(0.96);
	}

	62% {
		opacity: 1;
		filter: blur(4px);
	}

	100% {
		opacity: 1;
		filter: none;
		transform: none;
	}
}

@keyframes azza-blur-zoom {
	0% {
		opacity: 0;
		filter: blur(28px) brightness(1.12);
		transform: scale(0.78);
	}

	55% {
		opacity: 1;
		filter: blur(5px) brightness(1.04);
		transform: scale(1.025);
	}

	100% {
		opacity: 1;
		filter: none;
		transform: none;
	}
}

@keyframes azza-soft-reveal {
	0% {
		opacity: 0;
		filter: saturate(0.35) contrast(0.9);
		transform: translate3d(0, 18px, 0);
	}

	100% {
		opacity: 1;
		filter: none;
		transform: none;
	}
}

@keyframes azza-clip-reveal {
	0% {
		opacity: 0.2;
		clip-path: inset(0 100% 0 0 round 10px);
		transform: translate3d(18px, 0, 0);
	}

	100% {
		opacity: 1;
		clip-path: inset(0 0 0 0 round 0);
		transform: none;
	}
}

@keyframes azza-skew-reveal {
	0% {
		opacity: 0;
		transform: translate3d(-46px, 20px, 0) skewX(10deg);
	}

	58% {
		opacity: 1;
		transform: translate3d(5px, -2px, 0) skewX(-1.5deg);
	}

	100% {
		opacity: 1;
		transform: none;
	}
}

@keyframes azza-rotate-in {
	0% {
		opacity: 0;
		transform: rotate(-8deg) scale(0.9);
	}

	65% {
		opacity: 1;
		transform: rotate(1.5deg) scale(1.015);
	}

	100% {
		opacity: 1;
		transform: none;
	}
}

.azza-hover {
	transition-duration: 260ms;
	transition-property: transform, box-shadow, filter, opacity;
	transition-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
	will-change: transform, filter;
}

.azza-hover-lift:hover,
.azza-hover-lift:focus-within {
	transform: translate3d(0, -7px, 0);
}

.azza-hover-lift-shadow:hover,
.azza-hover-lift-shadow:focus-within {
	box-shadow: 0 22px 55px rgba(15, 23, 42, 0.24);
	filter: saturate(1.03);
	transform: translate3d(0, -11px, 0) scale(1.01);
}

.azza-hover-zoom:hover,
.azza-hover-zoom:focus-within {
	transform: scale(1.035);
}

.azza-hover-tilt:hover,
.azza-hover-tilt:focus-within {
	transform: perspective(900px) rotateX(3deg) rotateY(-4deg) translate3d(0, -4px, 0);
}

.azza-hover-glow:hover,
.azza-hover-glow:focus-within {
	filter: brightness(1.08) saturate(1.18);
	box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.5), 0 0 28px rgba(59, 130, 246, 0.28), 0 24px 60px rgba(59, 130, 246, 0.22);
}

.azza-hover-blur-focus:hover,
.azza-hover-blur-focus:focus-within {
	filter: drop-shadow(0 14px 26px rgba(15, 23, 42, 0.18)) contrast(1.08) saturate(1.12);
	transform: scale(1.018);
}

.azza-hover-float:hover,
.azza-hover-float:focus-within {
	animation: azza-hover-float 1.4s ease-in-out infinite;
}

.azza-hover-press:hover,
.azza-hover-press:focus-within {
	transform: scale(0.985);
}

@keyframes azza-hover-float {
	0%,
	100% {
		transform: translate3d(0, -5px, 0);
	}

	50% {
		transform: translate3d(0, -12px, 0);
	}
}

@media (prefers-reduced-motion: reduce) {
	.azza-animate,
	.azza-hover {
		opacity: 1;
		filter: none;
		transform: none;
		clip-path: none;
		transition: none;
		animation: none !important;
	}
}

@media (max-width: 767px) {
	.azza-disable-mobile {
		opacity: 1;
		filter: none;
		transform: none;
		clip-path: none;
		transition: none;
		animation: none !important;
	}
}
