.feedback-spark {
  position: fixed;
  z-index: 1000;
  pointer-events: none;
  width: 9px;
  height: 9px;
  margin: -4px;
  border: 1px solid #eac986;
  border-radius: 50%;
  box-shadow: 0 -10px 0 -3px #f9dfab, 9px 5px 0 -3px #ccbaf0, -9px 5px 0 -3px #eac986;
  animation: feedback-spark .42s ease-out both;
}
@keyframes feedback-spark {
  to { transform: scale(3); opacity: 0; }
}
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .station-actions .button,
  .cabinet-action,
  [data-gift-open],
  [data-gift-download],
  [data-gift-cabinet],
  [data-passport-open],
  .key-claim,
  .station-next {
    transition: translate .2s ease, scale .18s ease, box-shadow .2s, background-color .2s;
  }
  :is(.station-actions .button, .cabinet-action, [data-gift-open], [data-gift-download],
    [data-gift-cabinet], [data-passport-open], .key-claim):hover {
    translate: 0 -3px;
    box-shadow: 3px 5px 0 #b5955b55;
  }
  .station-next:hover { translate: 3px 0; }
  button:active, .button:active { scale: .96; }
}
.journey-token.is-earned .token-art {
  filter: drop-shadow(0 0 10px #f5d47655);
}
@media (prefers-reduced-motion: reduce) {
  .feedback-spark { display: none; }
}
