/* A single, bounded canvas handles the photographic objects and foil particles. */
.jfht-celebration-canvas {
	position: fixed !important;
	inset: 0 !important;
	z-index: 2147483646;
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	max-height: none !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	pointer-events: none !important;
	user-select: none;
	contain: strict;
}
.jfas-modal > .jfht-celebration-canvas { z-index: 3; }

/* No rapid flashes. One warm/purple opening glow, followed by the falling party. */
.jfas-modal.jfht-celebrating .jfas-modal-backdrop {
	background:
		radial-gradient(ellipse at 12% 22%, rgba(192,77,18,.37), transparent 44%),
		radial-gradient(ellipse at 91% 48%, rgba(98,42,147,.42), transparent 45%),
		rgba(8,9,20,.82);
}
.jfas-modal.jfht-celebrating .jfas-modal-dialog {
	border-color: rgba(255,185,89,.82);
	box-shadow: 0 25px 100px rgba(0,0,0,.58), 0 0 55px rgba(206,101,27,.26), 0 0 100px rgba(113,54,144,.18);
	animation: jfht-offer-arrive .65s cubic-bezier(.18,.82,.26,1) both;
}
.jfas-modal.jfht-reward-celebrating .jfas-modal-dialog { animation: jfht-reward-glow 1.2s ease-out both; }
.jfht-reward-pop { animation: jfht-reward-pop .7s cubic-bezier(.2,.8,.2,1) both !important; }
@keyframes jfht-offer-arrive {
	0% { transform: translateY(24px) scale(.93); opacity: .2; }
	70% { transform: translateY(-2px) scale(1.008); opacity: 1; }
	100% { transform: translateY(0) scale(1); opacity: 1; }
}
@keyframes jfht-reward-glow {
	0% { box-shadow: 0 25px 90px rgba(0,0,0,.5), 0 0 6px rgba(255,175,66,.6); }
	45% { box-shadow: 0 25px 90px rgba(0,0,0,.5), 0 0 65px rgba(255,156,49,.48), 0 0 110px rgba(146,74,185,.3); }
	100% { box-shadow: 0 25px 90px rgba(0,0,0,.5), 0 0 40px rgba(206,101,27,.22); }
}
@keyframes jfht-reward-pop {
	0% { transform: scale(.88); }
	55% { transform: scale(1.07); }
	100% { transform: scale(1); }
}
@media (max-width: 767px), (max-width: 1024px) and (pointer: coarse) {
	.jfas-modal.jfht-celebrating .jfas-modal-dialog {
		max-height: calc(100dvh - 24px);
		box-shadow: 0 12px 45px rgba(0,0,0,.50), 0 0 30px rgba(206,101,27,.22);
	}
}
@media (prefers-reduced-motion: reduce) {
	.jfas-modal.jfht-celebrating .jfas-modal-dialog,
	.jfht-reward-pop { animation: none !important; }
}
