/* =============================================================================
   NOVA MOTION — hero network + cursor glow + section fade-in
   ============================================================================= */

.nova-bg-network,
.nova-hero-motion {
	position: relative;
	overflow: hidden;
	isolation: isolate;
}

.nova-bg-network > .e-con-inner,
.nova-bg-network > .elementor-container,
section.nova-bg-network > *:not(.nova-hero-cursor-glow):not(.nova-network-canvas),
[data-element_type="e-flexbox"].nova-bg-network > *:not(.nova-hero-cursor-glow):not(.nova-network-canvas),
.nova-bg-network > .elementor-element {
	position: relative;
	z-index: 2;
}

.nova-bg-network .nova-network-canvas {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	z-index: 0;
	pointer-events: none;
	opacity: 0.85;
}

.nova-bg-network::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
}

.nova-hero-motion > .nova-hero-cursor-glow {
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	opacity: 0;
	transition: opacity 0.35s ease;
}

.nova-hero-cursor-glow.is-active {
	opacity: 1;
}

.nova-hero-cursor-glow__orb {
	position: absolute;
	left: 0;
	top: 0;
	width: 240px;
	height: 240px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(254, 197, 64, 0.28) 0%, rgba(254, 197, 64, 0) 62%);
	filter: blur(1px);
	transform: translate(-50%, -50%);
	will-change: left, top;
}

@media (max-width: 767px) {
	.nova-bg-network .nova-network-canvas {
		display: none;
	}

	.nova-bg-network::before {
		content: "";
		position: absolute;
		inset: -30%;
		z-index: 0;
		pointer-events: none;
		opacity: 0.5;
		background:
			radial-gradient(circle at 20% 20%, rgba(254, 197, 64, 0.24) 0%, transparent 50%),
			radial-gradient(circle at 80% 70%, rgba(254, 197, 64, 0.14) 0%, transparent 55%);
		animation: nova-hero-glow-drift 32s ease-in-out infinite alternate;
	}

	.nova-hero-cursor-glow {
		display: none;
	}
}

@keyframes nova-hero-glow-drift {
	0% {
		transform: translate3d(-2%, -1%, 0) scale(1);
	}
	100% {
		transform: translate3d(2%, 1.5%, 0) scale(1.04);
	}
}

@media (prefers-reduced-motion: reduce) {
	.nova-bg-network::before {
		animation: none !important;
	}

	.nova-bg-network .nova-network-canvas,
	.nova-hero-cursor-glow {
		display: none !important;
	}

	.nova-section-reveal {
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
	}
}

/* --- Section scroll fade-in (Elementor pages) --- */
body.nova-motion-page .nova-section-reveal {
	opacity: 0;
	transform: translate3d(0, 28px, 0);
	transition:
		opacity 0.75s cubic-bezier(0.22, 1, 0.36, 1),
		transform 0.75s cubic-bezier(0.22, 1, 0.36, 1);
	will-change: opacity, transform;
	visibility: visible;
}

body.nova-motion-page .nova-section-reveal.is-visible {
	opacity: 1;
	transform: translate3d(0, 0, 0);
}
