#fsb-starfield {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 40vh;
	z-index: -1;
	pointer-events: none;
	overflow: hidden;

	/* The actual values are overridden by the inline CSS variables
	   generated by starfield.js. */
	-webkit-mask-image: linear-gradient(
		to bottom,
		#000 0%,
		#000 55%,
		transparent 100%
	);
	mask-image: linear-gradient(
		to bottom,
		#000 0%,
		#000 55%,
		transparent 100%
	);
}

.fsb-star {
	position: absolute;
	display: block;
	border-radius: 50%;
	background: #fff;
	transform: translateZ(0);
	will-change: opacity;
	animation-name: fsb-twinkle;
	animation-timing-function: ease-in-out;
	animation-iteration-count: infinite;
}

@keyframes fsb-twinkle {
	0%, 100% {
		opacity: var(--fsb-max-opacity, 0.8);
	}
	50% {
		opacity: var(--fsb-min-opacity, 0.3);
	}
}

@media (prefers-reduced-motion: reduce) {
	#fsb-starfield.fsb-reduced-motion .fsb-star {
		animation: none !important;
	}
}
