.ambient-backdrop {
	position: fixed;
	inset: 0;
	pointer-events: none;
	z-index: 1;
	overflow: hidden;
	background: #0b0c0e;
}

.ambient-glow {
	position: absolute;
	border-radius: 50%;
	filter: blur(140px);
	pointer-events: none;
	opacity: 0.14;
	will-change: transform, opacity;
}

.ambient-glow-1 {
	width: 60vw;
	height: 60vh;
	top: -15%;
	left: -10%;
	background: radial-gradient(circle, #32353e 0%, transparent 70%);
	animation: ambient-drift-1 26s ease-in-out infinite alternate;
}

.ambient-glow-2 {
	width: 65vw;
	height: 65vh;
	bottom: -20%;
	right: -10%;
	background: radial-gradient(circle, #22252c 0%, transparent 70%);
	animation: ambient-drift-2 32s ease-in-out infinite alternate;
}

.ambient-mist {
	position: absolute;
	border-radius: 40% 60% 70% 30% / 40% 50% 60% 50%;
	filter: blur(70px);
	pointer-events: none;
	will-change: transform, opacity;
}

.ambient-mist-1 {
	width: 80vw;
	height: 40vh;
	bottom: -10%;
	left: -15%;
	background: radial-gradient(ellipse at center, rgba(42, 45, 54, 0.28) 0%, rgba(20, 22, 27, 0.12) 50%, transparent 75%);
	animation: ambient-mist-drift-1 22s ease-in-out infinite alternate;
}

.ambient-mist-2 {
	width: 75vw;
	height: 45vh;
	bottom: -5%;
	right: -15%;
	background: radial-gradient(ellipse at center, rgba(35, 38, 46, 0.22) 0%, rgba(18, 20, 24, 0.08) 55%, transparent 80%);
	animation: ambient-mist-drift-2 28s ease-in-out infinite alternate;
}

.ambient-vignette {
	position: absolute;
	inset: 0;
	background: radial-gradient(ellipse at 50% 50%, transparent 35%, rgba(6, 7, 9, 0.8) 100%);
	pointer-events: none;
}

.ambient-grain {
	position: absolute;
	inset: 0;
	opacity: 0.035;
	background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");
	pointer-events: none;
}

@keyframes ambient-drift-1 {
	0% {
		transform: translate(0, 0) scale(1);
		opacity: 0.12;
	}

	50% {
		transform: translate(8vw, 6vh) scale(1.08);
		opacity: 0.18;
	}

	100% {
		transform: translate(4vw, 12vh) scale(0.96);
		opacity: 0.13;
	}
}

@keyframes ambient-drift-2 {
	0% {
		transform: translate(0, 0) scale(1);
		opacity: 0.11;
	}

	50% {
		transform: translate(-6vw, -8vh) scale(1.06);
		opacity: 0.16;
	}

	100% {
		transform: translate(-10vw, -4vh) scale(0.95);
		opacity: 0.1;
	}
}

@keyframes ambient-mist-drift-1 {
	0% {
		transform: translate(0, 0) scale(1);
		opacity: 0.7;
	}

	50% {
		transform: translate(10vw, -4vh) scale(1.12);
		opacity: 0.95;
	}

	100% {
		transform: translate(18vw, -2vh) scale(1.04);
		opacity: 0.65;
	}
}

@keyframes ambient-mist-drift-2 {
	0% {
		transform: translate(0, 0) scale(1);
		opacity: 0.6;
	}

	50% {
		transform: translate(-12vw, -5vh) scale(1.1);
		opacity: 0.9;
	}

	100% {
		transform: translate(-6vw, -1vh) scale(0.98);
		opacity: 0.55;
	}
}