/* Celebration styles isolated for BuddyPress User Tasks */
.bppt-root .bppt-celebration-root,
.bppt-celebration-root {
	position: fixed;
	inset: 0;
	display: grid;
	place-items: center;
	pointer-events: none;
	width: 100vw;
	height: 100vh;
	z-index: 200000;
}

.bppt-celebration-overlay {
	position: fixed;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	pointer-events: none;
	opacity: 0;
	transition: opacity 0.2s ease;
	z-index: 200000;
}

.bppt-celebration-overlay.show { opacity: 1; }

.bppt-celebration-overlay.hide { opacity: 0; }

.bppt-celebration-overlay .bppt-celebration-container {
	position: relative;
	pointer-events: auto;
	transform: scale(0.9) translateY(8px);
	opacity: 0;
}

.bppt-celebration-overlay.show .bppt-celebration-container {
	animation: slideInBounce 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}

.bppt-celebration-overlay.hide .bppt-celebration-container {
	animation: slideOut 0.3s ease forwards;
}

.bppt-celebration-card {
	position: relative;
	background: #ffffff;
	border-radius: 16px;
	border: 1px solid #e5e7eb;
	padding: 24px;
	min-width: 280px;
	box-shadow:
		0 20px 25px -5px rgba(0, 0, 0, 0.1),
		0 10px 10px -5px rgba(0, 0, 0, 0.04),
		0 0 0 1px rgba(0, 0, 0, 0.05);
}

.bppt-celebration-content {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 16px;
}

.bppt-celebration-icon { position: relative; width: 64px; height: 64px; }
.bppt-celebration-ripple { position: absolute; inset: 0; border-radius: 50%; background: rgba(16, 185, 129, 0.2); opacity: 0; }
.bppt-celebration-overlay.show .bppt-celebration-ripple { animation: rippleExpand 0.6s ease-out forwards; }
.bppt-celebration-circle { position: relative; width: 64px; height: 64px; border-radius: 50%; background: #10b981; display: flex; align-items: center; justify-content: center; transform: scale(0); }
.bppt-celebration-overlay.show .bppt-celebration-circle { animation: circlePopIn 0.4s cubic-bezier(0.34, 1.56, 0.64, 1) 0.1s forwards; }
.bppt-celebration-check { width: 32px; height: 32px; stroke: #fff; stroke-width: 3; fill: none; opacity: 0; transform: scale(0); }
.bppt-celebration-overlay.show .bppt-celebration-check { animation: checkmarkPopIn 0.3s cubic-bezier(0.34, 1.56, 0.64, 1) 0.25s forwards; }
.bppt-celebration-particle { position: absolute; top: 50%; left: 50%; width: 6px; height: 6px; border-radius: 50%; background: #34d399; transform: translate(-3px, -3px) scale(0); opacity: 0; }
.bppt-celebration-overlay.show .bppt-celebration-particle { animation: particleBurst 0.8s ease-out 0.2s forwards; }
.bppt-celebration-text { text-align: center; opacity: 0; transform: translateY(4px); }
.bppt-celebration-overlay.show .bppt-celebration-text { animation: textFadeIn 0.3s ease 0.3s forwards; }
.bppt-celebration-text h3 { margin: 0 0 4px 0; color: #111827; font-size: 18px; font-weight: 600; }
.bppt-celebration-text p { margin: 0; color: #6b7280; font-size: 14px; }

@keyframes slideInBounce { to { transform: scale(1) translateY(0); opacity: 1; } }
@keyframes slideOut { to { transform: scale(0.95) translateY(0); opacity: 0; } }
@keyframes rippleExpand { 0% { transform: scale(1); opacity: 0.8; } 100% { transform: scale(2); opacity: 0; } }
@keyframes circlePopIn { to { transform: scale(1); } }
@keyframes checkmarkPopIn { to { opacity: 1; transform: scale(1); } }
@keyframes particleBurst { 0% { opacity: 0; transform: translate(-3px, -3px) scale(0); } 50% { opacity: 1; transform: translate(var(--particle-x), var(--particle-y)) scale(1); } 100% { opacity: 0; transform: translate(var(--particle-x), var(--particle-y)) scale(0); } }
@keyframes textFadeIn { to { opacity: 1; transform: translateY(0); } }

@media (prefers-reduced-motion: reduce) {
    .bppt-celebration-overlay.show .bppt-celebration-container,
    .bppt-celebration-overlay.hide .bppt-celebration-container { animation: none !important; }
    .bppt-celebration-ripple,
    .bppt-celebration-circle,
    .bppt-celebration-check,
    .bppt-celebration-particle,
    .bppt-celebration-text {
		animation: none !important;
		opacity: 1 !important;
		transform: none !important;
	}
}
