.sparkler-light {
    position: absolute;
    width: 9rem;
    height: 9rem;
    margin-left: -4.4rem;
    margin-top: -1.4rem;
    animation: sparkler-light-anim 20s infinite;
  }
  
  .sparkler-light::after {
    content: '';
    display: block;
    border-radius: 50%;
    width: 9rem;
    height: 9rem;
    background-color: rgba(255, 255, 230, 0.05);
    animation: sparkler-light-pulsating 2s infinite linear;
  }
  
  .spark {
    position: absolute;
    width: 0.1rem;
    height: 0.1rem;
    bottom: 4.3rem;
    left: 4.35rem;
    transform: rotate(var(--spark-rotate));
  }
  
  .spark::after {
    content: '';
    display: block;
    position: absolute;
    bottom: 0;
    width: 0.1rem;
    height: 2rem;
    border-radius: 0.1rem;
    opacity: 0;
    background-color: white;
    transform-origin: bottom center;
    animation: sparkler-sparkle 0.5s infinite linear;
    animation-delay: var(--spark-delay);
  }
  
  @keyframes sparkler-light-anim {
    0%   {
      bottom: 11.5rem
    }
    100% {
      bottom: 1.5rem;
    }
  }
  
  @keyframes sparkler-light-pulsating {
    0%   {
      transform: scale(1);
    }
    25%   {
      transform: scale(1.1);
    }
    75%   {
      transform: scale(0.9);
    }
    100% {
      transform: scale(1);
    }
  }
  
  @keyframes sparkler-sparkle {
    0%   {
      transform: translateY(-0.5rem) scaleY(0.25);
      opacity: 0;
    }
    10%   {
      transform: translateY(-1rem) scaleY(0.5);
      opacity: 0.35;
    }
    30%   {
      transform: translateY(-2rem) scaleY(0.5);
      opacity: 0.7;
    }
    50% {
      transform: translateY(-4rem) scaleY(1.5);
      opacity: 0.7;
    }
    51% {
      opacity: 0;
      transform: translateY(-4rem) scaleY(1);
    }
    100% {
      opacity: 0;
      transform: translateY(0) scaleY(0.25);
    }
  }