.nvas-target {
	--nvas-sun-rise: 0px;
	--nvas-gradient-start: #0b304d;
	--nvas-gradient-end: #071b2e;
	--nvas-gradient-angle: 180deg;
	--nvas-hill-back-color: #0d2b48;
	--nvas-hill-color: #061423;
	--nvas-sun-inner: #ff8994;
	--nvas-sun-outer: #b81730;
	--nvas-sun-position-x: 74%;
	position: relative !important;
	isolation: isolate;
	overflow: hidden !important;
}

.nvas-target > .nvas-animation {
	position: absolute;
	z-index: 1;
	inset: 0;
	overflow: hidden;
	pointer-events: none;
	background: linear-gradient(
		var(--nvas-gradient-angle),
		var(--nvas-gradient-start),
		var(--nvas-gradient-end)
	);
}

/* Treść sekcji Elementora pozostaje nad animacją. */
.nvas-target > .elementor-container,
.nvas-target > .e-con-inner,
.nvas-target > .elementor-widget,
.nvas-target > .elementor-element:not(.nvas-animation) {
	position: relative;
	z-index: 2;
}

.nvas-sun-track {
	position: absolute;
	z-index: 1;
	left: var(--nvas-sun-position-x);
	bottom: 12%;
	width: clamp(230px, 25vw, 350px);
	aspect-ratio: 1;
	transform: translate(-50%, calc(58% - var(--nvas-sun-rise)));
	will-change: transform;
}

.nvas-sun-track::before {
	content: "";
	position: absolute;
	inset: -35%;
	border-radius: 50%;
	background: radial-gradient(circle, var(--nvas-sun-outer), transparent 70%);
	background: radial-gradient(
		circle,
		color-mix(in srgb, var(--nvas-sun-outer) 32%, transparent),
		color-mix(in srgb, var(--nvas-sun-outer) 10%, transparent) 40%,
		transparent 70%
	);
	animation: nvas-halo-breathe 5.5s ease-in-out infinite;
}

.nvas-sun {
	position: absolute;
	inset: 0;
	border-radius: 50%;
	background: radial-gradient(circle at 34% 28%, var(--nvas-sun-inner), var(--nvas-sun-outer) 100%);
	background: radial-gradient(
		circle at 42% 35%,
		color-mix(in srgb, var(--nvas-sun-inner) 92%, white) 0%,
		var(--nvas-sun-inner) 34%,
		color-mix(in srgb, var(--nvas-sun-inner) 58%, var(--nvas-sun-outer)) 68%,
		var(--nvas-sun-outer) 100%
	);
	box-shadow: 0 0 34px var(--nvas-sun-outer), 0 0 100px rgba(184, 23, 48, 0.32);
	box-shadow:
		0 0 34px color-mix(in srgb, var(--nvas-sun-outer) 74%, transparent),
		0 0 100px color-mix(in srgb, var(--nvas-sun-outer) 32%, transparent);
	animation: nvas-sun-breathe 5.5s ease-in-out infinite;
}

.nvas-hills-svg {
	position: absolute;
	z-index: 2;
	left: -1%;
	bottom: -2%;
	width: 102%;
	height: 34%;
	min-height: 150px;
	overflow: visible;
}

.nvas-hill-path--back {
	fill: var(--nvas-hill-back-color);
}

.nvas-hill-path--front {
	fill: var(--nvas-hill-color);
}

.nvas-custom-hill {
	position: absolute;
	left: -1%;
	bottom: -2%;
	width: 102%;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center bottom;
	mask-position: center bottom;
	-webkit-mask-size: 100% 100%;
	mask-size: 100% 100%;
}

.nvas-custom-hill--back {
	z-index: 2;
	height: 34%;
	min-height: 150px;
	background: var(--nvas-hill-back-color);
}

.nvas-custom-hill--front {
	z-index: 3;
	height: 30%;
	min-height: 130px;
	background: var(--nvas-hill-color);
}

@keyframes nvas-sun-breathe {
	50% {
		transform: scale(1.035);
		filter: saturate(1.12);
	}
}

@keyframes nvas-halo-breathe {
	50% {
		transform: scale(1.1);
		opacity: 0.72;
	}
}

@media (max-width: 820px) {
	.nvas-sun-track {
		opacity: 0.76;
	}
}

@media (max-width: 620px) {
	.nvas-sun-track {
		bottom: 18%;
		width: 220px;
		opacity: 0.64;
	}

	.nvas-hills-svg,
	.nvas-custom-hill--back {
		height: 27%;
		min-height: 100px;
	}

	.nvas-custom-hill--front {
		height: 23%;
		min-height: 88px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.nvas-sun,
	.nvas-sun-track::before {
		animation: none !important;
	}
}
