.njs-snow-logo {
  position: relative;
  display: inline-flex;
  flex: none;
  align-items: center;
}

.njs-snow-logo__scene {
  position: absolute;
  inset: -4px auto auto 0;
  width: 120%;
  height: calc(100% + 8px);
  max-width: none;
  overflow: visible;
  pointer-events: none;
}

@media (min-width: 993px) {
  .njs-snow-logo {
    margin-inline-end: 30px;
  }
}

.njs-snow-logo__ball,
.njs-snow-logo__held,
.njs-snow-logo__impact {
  opacity: 0;
}

.njs-snow-logo__arm,
.njs-snow-logo__impact {
  transform-origin: 0 0;
}

.njs-snow-logo.is-throwing .njs-snow-logo__arm {
  animation: njs-snow-arm 820ms ease-in-out both;
}

.njs-snow-logo.is-throwing .njs-snow-logo__held {
  animation: njs-snow-held 440ms linear both;
}

.njs-snow-logo.is-throwing .njs-snow-logo__ball {
  animation: njs-snow-flight 440ms linear 430ms forwards;
}

.njs-snow-logo.is-throwing .njs-snow-logo__impact {
  animation: njs-snow-burst 540ms ease-out 865ms both;
}

.njs-snow-logo.is-throwing > img {
  animation: njs-snow-hit 280ms ease-out 865ms both;
}

@keyframes njs-snow-arm {
  0%, 100% { transform: rotate(0deg); }
  39% { transform: rotate(72deg); }
  52% { transform: rotate(-20deg); }
  64% { transform: rotate(-14deg); }
}

@keyframes njs-snow-held {
  0% { opacity: 0; }
  12%, 95% { opacity: 1; }
  100% { opacity: 0; }
}

@keyframes njs-snow-flight {
  0% { transform: translate(153px, 16px); opacity: 1; }
  34% { transform: translate(143px, 10px); opacity: 1; }
  62% { transform: translate(135px, 13px); opacity: 1; }
  97% { transform: translate(125px, 23px); opacity: 1; }
  100% { transform: translate(124px, 24px); opacity: 0; }
}

@keyframes njs-snow-burst {
  0% { transform: scale(.4); opacity: 0; }
  15% { transform: scale(.9); opacity: 1; }
  44% { transform: scale(1.22); opacity: .9; }
  100% { transform: translateY(2px) scale(1.65); opacity: 0; }
}

@keyframes njs-snow-hit {
  0%, 100% { transform: translateX(0); }
  20% { transform: translateX(-1.5px); }
  48% { transform: translateX(1px); }
  74% { transform: translateX(-.5px); }
}

@media (prefers-reduced-motion: reduce) {
  .njs-snow-logo.is-throwing > img,
  .njs-snow-logo.is-throwing [class^="njs-snow-logo__"] {
    animation: none !important;
  }
}
