@layer pano-plugin {
/* src/theme/views/OpeningEffect.svelte */
.countdown-timer-opening-effect__particle.svelte-k0t4e1 {
    position: absolute;
    will-change: transform, opacity;
  }

  .countdown-timer-opening-effect__particle-confetti.svelte-k0t4e1 {
    width: var(--size);
    height: calc(var(--size) * 0.6);
    background: var(--color);
    border-radius: 2px;
    animation: svelte-k0t4e1-countdown-timer-confetti-fall var(--duration) var(--delay) ease-in forwards;
    opacity: 0;
  }

  @keyframes svelte-k0t4e1-countdown-timer-confetti-fall {
    0% {
      opacity: 1;
      transform: translateY(0) translateX(0) rotate(var(--rotation));
    }
    100% {
      opacity: 0;
      transform: translateY(calc(var(--end-y) * 1vh)) translateX(var(--drift)) rotate(calc(var(--rotation) + var(--spin)));
    }
  }

  .countdown-timer-opening-effect__particle-fireworks.svelte-k0t4e1 {
    width: var(--size);
    height: var(--size);
    background: var(--color);
    border-radius: 50%;
    box-shadow: 0 0 6px var(--color), 0 0 12px var(--color);
    animation: svelte-k0t4e1-countdown-timer-firework-burst var(--duration) var(--delay) ease-out forwards;
    opacity: 0;
  }

  @keyframes svelte-k0t4e1-countdown-timer-firework-burst {
    0% {
      opacity: 1;
      transform: translateX(0) translateY(0) scale(0.3);
    }
    30% {
      opacity: 1;
      transform: translateX(calc(var(--drift) * 0.5px)) translateY(calc((var(--end-y) - 50%) * 0.5vh)) scale(1.2);
    }
    100% {
      opacity: 0;
      transform: translateX(var(--drift)) translateY(calc((var(--end-y) - 50%) * 1vh)) scale(0);
    }
  }

  .countdown-timer-opening-effect__particle-sparkle.svelte-k0t4e1 {
    width: var(--size);
    height: var(--size);
    background: var(--color);
    border-radius: 50%;
    box-shadow: 0 0 4px var(--color), 0 0 8px var(--color), 0 0 16px var(--color);
    animation: svelte-k0t4e1-countdown-timer-sparkle-twinkle var(--duration) var(--delay) ease-in-out 3 forwards;
    opacity: 0;
  }

  @keyframes svelte-k0t4e1-countdown-timer-sparkle-twinkle {
    0%, 100% {
      opacity: 0;
      transform: scale(0.3);
    }
    50% {
      opacity: 1;
      transform: scale(1);
    }
  }
}
