/* Holiday flair particles — decorative only */
#u-holiday-layer {
  position: fixed;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
  z-index: 9998;
}

#u-holiday-layer .u-particle {
  position: absolute;
  top: -10vh;
  left: 0;
  will-change: transform, opacity;
  opacity: 0.85;
  animation-name: u-fall;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
  pointer-events: none;
  user-select: none;
}

#u-holiday-layer .u-particle--snow {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.9);
  box-shadow: 0 0 8px rgba(125, 211, 252, 0.55);
}

#u-holiday-layer .u-particle--leaf {
  width: 12px;
  height: 12px;
  border-radius: 2px 10px 2px 10px;
  background: linear-gradient(135deg, #f59e0b, #ef4444);
  transform-origin: center;
}

#u-holiday-layer .u-particle--heart {
  font-size: 14px;
  color: #fb7185;
  text-shadow: 0 0 8px rgba(251, 113, 133, 0.5);
}

#u-holiday-layer .u-particle--clover {
  font-size: 14px;
  color: #22c55e;
}

#u-holiday-layer .u-particle--petal {
  width: 10px;
  height: 14px;
  border-radius: 50% 50% 50% 0;
  background: linear-gradient(135deg, #e9d5ff, #c4b5fd);
}

#u-holiday-layer .u-particle--bat {
  font-size: 14px;
  color: #fb923c;
}

#u-holiday-layer .u-firework {
  position: absolute;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  animation: u-burst 1.4s ease-out forwards;
  box-shadow: 0 0 10px currentColor;
}

@keyframes u-fall {
  0% { transform: translate3d(0, -10vh, 0) rotate(0deg); opacity: 0; }
  10% { opacity: 0.9; }
  100% { transform: translate3d(var(--u-drift, 40px), 110vh, 0) rotate(360deg); opacity: 0.15; }
}

@keyframes u-burst {
  0% { transform: translate(0, 0) scale(0.4); opacity: 1; }
  100% { transform: translate(var(--u-fx, 40px), var(--u-fy, -60px)) scale(1); opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
  #u-holiday-layer { display: none !important; }
}
