/* Gold Stars full-screen page loader. */
.no-js #gs-page-loader {
	display: none;
}

.gs-loader {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: grid;
	place-items: center;
	background:
		radial-gradient(circle at 28% 24%, rgba(212, 168, 67, 0.2), transparent 32%),
		radial-gradient(circle at 72% 76%, rgba(26, 107, 122, 0.18), transparent 34%),
		#fbf5ea;
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transition: opacity 600ms cubic-bezier(0.22, 1, 0.36, 1), visibility 0s linear 600ms;
}

.gs-loader.is-hiding {
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
}

.gs-loader.is-active {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transition-duration: 200ms;
	transition-delay: 0s;
}

.gs-loader__stage {
	position: relative;
	inline-size: clamp(190px, 42vw, 320px);
	aspect-ratio: 1;
	display: grid;
	place-items: center;
}

.gs-loader__morph {
	position: absolute;
	inset: 0;
	inline-size: 100%;
	block-size: 100%;
	filter: drop-shadow(0 22px 48px rgba(26, 37, 64, 0.18));
	animation: gs-loader-rotate 9s linear infinite;
}

.gs-loader__blobs {
	position: relative;
	inline-size: 100%;
	block-size: 100%;
	transform-origin: center;
}

.gs-loader__blob {
	position: absolute;
	inset: 14%;
	display: block;
	border-radius: 52% 48% 60% 40% / 44% 58% 42% 56%;
	opacity: 0.86;
	mix-blend-mode: multiply;
	transform-origin: center;
	will-change: transform, border-radius;
}

.gs-loader__blob--gold {
	background: #d4a843;
	animation: gs-loader-morph-a 4.8s ease-in-out infinite alternate, gs-loader-pulse 2.6s ease-in-out infinite;
}

.gs-loader__blob--teal {
	inset: 18% 10% 10% 18%;
	background: #1a6b7a;
	animation: gs-loader-morph-b 5.4s ease-in-out infinite alternate, gs-loader-pulse 3s ease-in-out infinite reverse;
}

.gs-loader__blob--navy {
	inset: 11% 20% 20% 11%;
	background: #1a2540;
	opacity: 0.72;
	animation: gs-loader-morph-c 5.9s ease-in-out infinite alternate, gs-loader-pulse 3.2s ease-in-out infinite;
}

.gs-loader__logo {
	position: relative;
	z-index: 2;
	display: grid;
	place-items: center;
	inline-size: min(58%, 170px);
	padding: 0.75rem 1rem;
	border: 1px solid rgba(255, 255, 255, 0.72);
	border-radius: 18px;
	background: rgba(255, 255, 255, 0.9);
	box-shadow: 0 12px 34px rgba(26, 37, 64, 0.16);
	animation: gs-loader-logo-pulse 2.2s ease-in-out infinite;
}

.gs-loader__logo img {
	display: block;
	inline-size: 100%;
	block-size: auto;
	object-fit: contain;
}

@keyframes gs-loader-rotate {
	to { transform: rotate(360deg); }
}

@keyframes gs-loader-pulse {
	0%, 100% { transform: scale(0.96); }
	50% { transform: scale(1.05); }
}

@keyframes gs-loader-logo-pulse {
	0%, 100% { transform: scale(0.98); }
	50% { transform: scale(1.03); }
}

@keyframes gs-loader-morph-a {
	0% { border-radius: 54% 46% 63% 37% / 42% 60% 40% 58%; }
	25% { border-radius: 39% 61% 44% 56% / 59% 38% 62% 41%; }
	50% { border-radius: 62% 38% 51% 49% / 45% 55% 35% 65%; }
	75% { border-radius: 46% 54% 39% 61% / 61% 47% 53% 39%; }
	100% { border-radius: 58% 42% 57% 43% / 36% 64% 46% 54%; }
}

@keyframes gs-loader-morph-b {
	0% { border-radius: 41% 59% 58% 42% / 62% 40% 60% 38%; }
	25% { border-radius: 63% 37% 48% 52% / 44% 56% 39% 61%; }
	50% { border-radius: 48% 52% 37% 63% / 56% 34% 66% 44%; }
	75% { border-radius: 59% 41% 64% 36% / 37% 63% 45% 55%; }
	100% { border-radius: 36% 64% 43% 57% / 61% 42% 58% 39%; }
}

@keyframes gs-loader-morph-c {
	0% { border-radius: 60% 40% 42% 58% / 52% 36% 64% 48%; }
	25% { border-radius: 43% 57% 61% 39% / 39% 61% 46% 54%; }
	50% { border-radius: 55% 45% 36% 64% / 64% 43% 57% 36%; }
	75% { border-radius: 38% 62% 52% 48% / 47% 58% 42% 53%; }
	100% { border-radius: 66% 34% 45% 55% / 41% 59% 51% 49%; }
}

@media (prefers-reduced-motion: reduce) {
	.gs-loader,
	.gs-loader * {
		animation: none !important;
		transition: none !important;
	}
}
