.hero-join-button {
  padding: 19px 34px;
  font-size: 13px;
  animation: join-glow 1.8s ease-in-out infinite;
  transform-origin: center;
}

@keyframes join-glow {
  0%, 100% {
    transform: scale(.98);
    box-shadow: 0 8px 22px rgba(255, 212, 0, .2);
  }

  50% {
    transform: scale(1.06);
    box-shadow: 0 0 18px rgba(255, 230, 109, .85), 0 0 42px rgba(255, 212, 0, .55), 0 14px 38px rgba(215, 171, 85, .35);
  }
}

.card-machine-slot {
  position: absolute;
  left: 116px;
  bottom: 52px;
  z-index: 5;
  width: 270px;
  height: 30px;
  border: 2px solid rgba(255, 212, 0, .72);
  border-radius: 50%;
  background: linear-gradient(#060606, #19150a 55%, #020202);
  box-shadow: inset 0 5px 10px #000, 0 0 25px rgba(255, 212, 0, .3);
  transform: perspective(180px) rotateX(58deg);
}

.card-back {
  transform-origin: 50% 100%;
  animation: card-emerge-back 6s cubic-bezier(.22, .8, .32, 1) infinite;
}

.card-front {
  transform-origin: 50% 100%;
  animation: card-emerge-front 6s cubic-bezier(.22, .8, .32, 1) .28s infinite;
}

.playing-card span,
.playing-card i {
  animation: card-mark-shine 2.2s ease-in-out infinite;
}

.chip-one {
  animation: logo-shine 2.4s ease-in-out infinite;
}

@keyframes card-emerge-back {
  0%, 7% { opacity: 0; transform: translate(92px, 360px) rotate(0) scale(.42); }
  25%, 82% { opacity: 1; transform: translate(0, 0) rotate(-16deg) scale(1); }
  94%, 100% { opacity: 0; transform: translate(14px, -18px) rotate(-19deg) scale(1.03); }
}

@keyframes card-emerge-front {
  0%, 7% { opacity: 0; transform: translate(-78px, 320px) rotate(0) scale(.45); }
  25%, 82% { opacity: 1; transform: translate(0, 0) rotate(13deg) scale(1); }
  94%, 100% { opacity: 0; transform: translate(-10px, -20px) rotate(16deg) scale(1.03); }
}

@keyframes card-mark-shine {
  0%, 65%, 100% { filter: brightness(1); text-shadow: none; }
  76% { filter: brightness(1.7); text-shadow: 0 0 7px #fff4a5, 0 0 18px #ffd400, 0 0 32px rgba(255, 212, 0, .75); }
}

@keyframes logo-shine {
  0%, 100% { transform: rotate(-10deg) scale(1); filter: brightness(1); }
  50% { transform: rotate(-10deg) scale(1.05); filter: brightness(1.45); box-shadow: 0 20px 40px rgba(0, 0, 0, .5), inset 0 0 0 8px #fff0a8, 0 0 30px rgba(255, 212, 0, .8); }
}

@media (prefers-reduced-motion: reduce) {
  .hero-join-button {
    animation: none;
  }

  .playing-card,
  .playing-card span,
  .playing-card i,
  .chip-one {
    animation: none;
  }
}
