/* Live decorative background (Louloudia gia Gennisi) — fixed behind every
   page, not just the homepage hero. Lives as a sibling of #wrapper (which
   the theme sets to overflow:clip, so a fixed layer cannot live inside it),
   so #wrapper's own background must be made transparent to let it show
   through — it was the same solid cream as the page background anyway. */
#wrapper {
	background-color: transparent;
}

/* Brighter base behind the glows (was cream #FAF9F7). */
html body {
	background-color: #FFFDFE;
}

.nvm-live-bg {
	position: fixed;
	inset: 0;
	overflow: hidden;
	z-index: -1;
	pointer-events: none;
}

.nvm-live-bg__glow {
	position: absolute;
	width: 66vw;
	height: 66vw;
	max-width: 820px;
	max-height: 820px;
	right: -12vw;
	top: -18vw;
	border-radius: 50%;
	background: radial-gradient(circle at 50% 50%, rgba(255, 110, 170, 0.55), rgba(255, 190, 220, 0.6) 50%, rgba(255, 190, 220, 0) 75%);
	filter: blur(6px) saturate(1.35) brightness(1.05);
	animation: nvm-glow-breathe 16s ease-in-out infinite alternate;
	will-change: transform, opacity;
}

.nvm-live-bg__glow--secondary {
	right: auto;
	left: -14vw;
	top: auto;
	bottom: -20vw;
	width: 50vw;
	height: 50vw;
	max-width: 600px;
	max-height: 600px;
	background: radial-gradient(circle at 50% 50%, rgba(120, 180, 255, 0.6), rgba(170, 210, 255, 0.45) 45%, rgba(170, 210, 255, 0) 70%);
	animation-duration: 20s;
	animation-delay: -6s;
}

.nvm-live-bg__glow--tertiary {
	right: auto;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	width: 80vw;
	height: 80vw;
	max-width: 980px;
	max-height: 980px;
	background: radial-gradient(circle at 50% 50%, rgba(255, 150, 200, 0.28), rgba(255, 150, 200, 0) 70%);
	animation: nvm-glow-breathe-center 24s ease-in-out infinite alternate;
	animation-delay: -10s;
}

@keyframes nvm-glow-breathe {
	0% {
		transform: translate3d(0, 0, 0) scale(1);
		opacity: 0.8;
	}
	100% {
		transform: translate3d(-2%, 3%, 0) scale(1.18);
		opacity: 1;
	}
}

@keyframes nvm-glow-breathe-center {
	0% {
		transform: translate(-50%, -50%) scale(1);
		opacity: 0.7;
	}
	100% {
		transform: translate(-50%, -50%) scale(1.14);
		opacity: 1;
	}
}

.nvm-live-bg__petal {
	position: absolute;
	top: 100%;
	left: var(--nvm-x, 50%);
	width: var(--nvm-size, 24px);
	height: var(--nvm-size, 24px);
	color: var(--nvm-color, #FBE1EA);
	opacity: 0;
	animation: nvm-petal-drift var(--nvm-duration, 18s) ease-in-out infinite;
	animation-delay: var(--nvm-delay, 0s);
}

.nvm-live-bg__petal svg {
	display: block;
	width: 100%;
	height: 100%;
	filter: drop-shadow(0 2px 6px rgba(36, 29, 34, 0.12)) saturate(1.6);
}

.nvm-live-bg__petal--heart svg {
	filter: drop-shadow(0 1px 4px rgba(36, 29, 34, 0.1));
}

@keyframes nvm-petal-drift {
	0% {
		transform: translate3d(0, 0, 0) rotate(0deg);
		opacity: 0;
	}
	8% {
		opacity: var(--nvm-opacity, 0.75);
	}
	50% {
		transform: translate3d(var(--nvm-sway, 28px), -58vh, 0) rotate(160deg);
		opacity: var(--nvm-opacity, 0.75);
	}
	92% {
		opacity: 0;
	}
	100% {
		transform: translate3d(calc(var(--nvm-sway, 28px) * -1), -118vh, 0) rotate(320deg);
		opacity: 0;
	}
}

@media (max-width: 680px) {
	.nvm-live-bg__petal:nth-child(n + 10) {
		display: none;
	}
	.nvm-live-bg__glow {
		width: 92vw;
		height: 92vw;
	}
	.nvm-live-bg__glow--tertiary {
		display: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.nvm-live-bg__glow,
	.nvm-live-bg__petal {
		animation: none !important;
	}
	.nvm-live-bg__petal {
		opacity: var(--nvm-opacity, 0.5);
		top: var(--nvm-x, 40%);
	}
	.nvm-live-bg__glow {
		opacity: 0.9;
	}
}

/* Stand-out pass: petals more visible (JS sets --nvm-opacity inline, so boost via transform-free filter + min opacity). */
.nvm-live-bg__petal {
	transform-origin: center;
	scale: 1.35;
}
@keyframes nvm-petal-drift {
	0% { transform: translate3d(0, 0, 0) rotate(0deg); opacity: 0; }
	8% { opacity: 1; }
	50% { transform: translate3d(var(--nvm-sway, 28px), -58vh, 0) rotate(160deg); opacity: 1; }
	92% { opacity: 0; }
	100% { transform: translate3d(calc(var(--nvm-sway, 28px) * -1), -118vh, 0) rotate(320deg); opacity: 0; }
}
