.site-logo {
  position: relative;
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  color: #000;
  cursor: pointer;
  transform-origin: center;
}

.logo-text {
  display: block;
  line-height: 0;
  transition: transform 260ms ease;
}

.logo-wordmark {
  width: 94.114px;
  height: 27.661px;
  display: block;
}

.logo-sparkle {
  position: absolute;
  left: 72.5px;
  top: -7px;
  right: auto;
  width: 14px;
  height: 14px;
  transform-origin: center;
  animation: logoSparklePulse 7s ease-in-out infinite;
  pointer-events: none;
}

.logo-sparkle img,
.logo-sparkle svg {
  width: 100%;
  height: 100%;
  display: block;
}

@keyframes logoSparklePulse {
  0%,
  86%,
  100% {
    transform: scale(1) rotate(0deg);
    opacity: 0.82;
    filter: drop-shadow(0 0 0 rgba(139, 92, 246, 0));
  }
  89% {
    transform: scale(1.28) rotate(14deg);
    opacity: 1;
    filter: drop-shadow(0 0 10px rgba(139, 92, 246, 0.55));
  }
  92% {
    transform: scale(0.96) rotate(-4deg);
    opacity: 0.9;
    filter: drop-shadow(0 0 4px rgba(139, 92, 246, 0.25));
  }
  95% {
    transform: scale(1.06) rotate(2deg);
    opacity: 1;
  }
}

@keyframes logoSparkleHover {
  0% {
    transform: scale(1) rotate(0deg);
    opacity: 0.82;
  }
  48% {
    transform: scale(1.32) rotate(14deg);
    opacity: 1;
    filter: drop-shadow(0 0 10px rgba(139, 92, 246, 0.55));
  }
  72% {
    transform: scale(0.96) rotate(-4deg);
  }
  100% {
    transform: scale(1) rotate(0deg);
    opacity: 1;
  }
}

@media (hover: hover) {
  .site-logo:hover .logo-sparkle {
    animation: logoSparkleHover 520ms cubic-bezier(0.34, 1.56, 0.64, 1) both;
  }

  .site-logo:hover .logo-text {
    transform: translateY(-1px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .logo-sparkle,
  .site-logo:hover .logo-sparkle {
    animation: none !important;
    transform: none !important;
    filter: none !important;
    opacity: 1 !important;
  }

  .logo-text,
  .site-logo:hover .logo-text {
    transition: none !important;
    transform: none !important;
  }
}
