.christmas-party {
	position: fixed;
	inset: 0;
	z-index: 30;
	pointer-events: none;
	overflow: hidden;
}

.christmas-party__water,
.christmas-party__santa {
	display: none;
}

.christmas-party__mobile-santa {
	position: absolute;
	right: 10px;
	bottom: -90px;
	width: clamp(340px, 50vw, 400px);
	aspect-ratio: 500 / 538;
	transform: translateY(105%);
	pointer-events: none;
	will-change: transform;
}

a.christmas-party__mobile-santa {
	pointer-events: auto;
	cursor: pointer;
}

.christmas-party__mobile-santa.is-visible {
	animation: christmas-party-mobile-enter 0.9s cubic-bezier(0.22, 1, 0.36, 1) forwards;
	animation-delay: 0.8s;
}

.christmas-party__mobile-santa .christmas-party__frame {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
	opacity: 0;
}

.christmas-party__mobile-santa .christmas-party__frame:nth-child(1) {
	animation: christmas-party-mobile-frame-1 0.96s steps(1, end) infinite;
}

.christmas-party__mobile-santa .christmas-party__frame:nth-child(2) {
	animation: christmas-party-mobile-frame-2 0.96s steps(1, end) infinite;
}

.christmas-party__mobile-santa .christmas-party__frame:nth-child(3) {
	animation: christmas-party-mobile-frame-3 0.96s steps(1, end) infinite;
}

.christmas-party__mobile-santa .christmas-party__frame:nth-child(4) {
	animation: christmas-party-mobile-frame-4 0.96s steps(1, end) infinite;
}

@keyframes christmas-party-mobile-enter {
	from {
		transform: translateY(105%);
	}

	to {
		transform: translateY(0);
	}
}

@keyframes christmas-party-mobile-frame-1 {
	0%, 24.99% { opacity: 1; }
	25%, 100% { opacity: 0; }
}

@keyframes christmas-party-mobile-frame-2 {
	0%, 24.99% { opacity: 0; }
	25%, 49.99% { opacity: 1; }
	50%, 100% { opacity: 0; }
}

@keyframes christmas-party-mobile-frame-3 {
	0%, 49.99% { opacity: 0; }
	50%, 74.99% { opacity: 1; }
	75%, 100% { opacity: 0; }
}

@keyframes christmas-party-mobile-frame-4 {
	0%, 74.99% { opacity: 0; }
	75%, 100% { opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
	.christmas-party__mobile-santa {
		transform: translateY(0);
	}

	.christmas-party__mobile-santa.is-visible {
		animation: none;
	}

	.christmas-party__mobile-santa .christmas-party__frame {
		animation: none;
		opacity: 0;
	}

	.christmas-party__mobile-santa .christmas-party__frame:first-child {
		opacity: 1;
	}
}
