/* Passify · Tema Navidad (inyectado por controllers/seasonal_theme.php) */
:root {
	--pfy-x-red: #e11d48;
	--pfy-x-green: #16a34a;
	--pfy-x-gold: #fbbf24;
	--pfy-x-ice: #e0f2fe;
}

::selection { background: rgba(225, 29, 72, .22); }

#pfy-christmas {
	position: fixed;
	inset: 0;
	pointer-events: none;
	z-index: 1035;
	overflow: hidden;
	contain: strict;
}
#pfy-christmas * { pointer-events: none; }

/* Guirnalda de luces */
.pfy-x-lights {
	position: absolute; top: 0; left: 0; right: 0; height: 34px;
}
.pfy-x-lights svg.pfy-x-wire { position: absolute; top: 0; left: 0; width: 100%; height: 26px; overflow: visible; }
.pfy-x-lights svg.pfy-x-wire path { fill: none; stroke: #2b3a2f; stroke-width: 1.4; opacity: .55; }
.pfy-x-bulb {
	position: absolute; top: 0;
	width: 8px; height: 12px; margin-left: -4px;
	border-radius: 50% 50% 50% 50% / 40% 40% 60% 60%;
	background: var(--pfy-x-gold);
	animation: pfyXTwinkle 2.4s ease-in-out infinite;
}
.pfy-x-bulb::before {
	content: ''; position: absolute; top: -3px; left: 1.5px; width: 5px; height: 4px; border-radius: 1px; background: #3f3f46;
}
.pfy-x-bulb.c0 { --c: #f43f5e; }
.pfy-x-bulb.c1 { --c: #22c55e; }
.pfy-x-bulb.c2 { --c: #fbbf24; }
.pfy-x-bulb.c3 { --c: #38bdf8; }
.pfy-x-bulb { background: var(--c); box-shadow: 0 0 6px 1px var(--c), 0 0 14px 1px var(--c); }
@keyframes pfyXTwinkle {
	0%, 100% { opacity: 1; filter: brightness(1.1); }
	50% { opacity: .35; filter: brightness(.7); box-shadow: none; }
}

/* Nieve */
.pfy-x-flake {
	position: absolute; top: -12px;
	border-radius: 50%;
	background: radial-gradient(circle, #fff 0%, rgba(255,255,255,.85) 45%, rgba(255,255,255,0) 72%);
	opacity: 0;
	animation-name: pfyXFall;
	animation-timing-function: linear;
	animation-iteration-count: infinite;
	will-change: transform, opacity;
	filter: drop-shadow(0 0 1px rgba(148, 163, 184, .6));
}
@keyframes pfyXFall {
	0% { transform: translate3d(0, 0, 0); opacity: 0; }
	8% { opacity: var(--pfy-o, .9); }
	50% { transform: translate3d(var(--pfy-sway, 20px), 52vh, 0); }
	92% { opacity: var(--pfy-o, .9); }
	100% { transform: translate3d(0, 104vh, 0); opacity: 0; }
}

/* Estrellas destellando */
.pfy-x-spark {
	position: absolute; width: 14px; height: 14px;
	opacity: 0;
	animation: pfyXSpark 4.5s ease-in-out infinite;
}
.pfy-x-spark svg { width: 100%; height: 100%; display: block; fill: var(--pfy-x-gold); filter: drop-shadow(0 0 4px rgba(251, 191, 36, .8)); }
@keyframes pfyXSpark {
	0%, 70%, 100% { opacity: 0; transform: scale(.4) rotate(0deg); }
	80% { opacity: .9; transform: scale(1) rotate(25deg); }
	90% { opacity: 0; transform: scale(.6) rotate(45deg); }
}

/* Resplandor cálido inferior */
.pfy-x-glow {
	position: absolute; left: 0; right: 0; bottom: -60px; height: 160px;
	background:
		radial-gradient(ellipse 35% 60% at 15% 80%, rgba(225, 29, 72, .10), transparent 70%),
		radial-gradient(ellipse 35% 60% at 50% 85%, rgba(251, 191, 36, .10), transparent 70%),
		radial-gradient(ellipse 35% 60% at 85% 80%, rgba(22, 163, 74, .10), transparent 70%);
	filter: blur(8px);
	animation: pfyXGlow 9s ease-in-out infinite alternate;
}
@keyframes pfyXGlow { to { opacity: .55; transform: translateY(10px); } }

/* Adorno colgante */
.pfy-x-ornament {
	position: absolute; top: 0; right: 7%;
	width: 30px;
	transform-origin: 50% 0;
	animation: pfyXSwing 4.8s ease-in-out infinite;
}
.pfy-x-ornament::before {
	content: ''; position: absolute; left: 50%; top: 0; width: 1px; height: 64px; margin-left: -.5px;
	background: linear-gradient(to bottom, rgba(161, 161, 170, .2), rgba(161, 161, 170, .8));
}
.pfy-x-ornament svg { position: absolute; top: 60px; left: 0; width: 30px; height: 36px; }
@keyframes pfyXSwing { 0%, 100% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } }

@media (max-width: 768px) {
	.pfy-x-ornament { right: 14%; transform: scale(.85); }
	.pfy-x-glow { height: 110px; }
}

@media (prefers-reduced-motion: reduce) {
	#pfy-christmas *, #pfy-christmas *::before { animation: none !important; }
	.pfy-x-flake, .pfy-x-spark { display: none; }
}

@media print { #pfy-christmas { display: none !important; } }
