/* Timings and shine geometry from strike161.ru's slideme animation. */
:is(.hero, .club-section, .events-section, .private-games, .discount-section, .open-games) .btn {
  position: relative;
  overflow: hidden;
  transition: background .3s, color .3s;
}
:is(.hero, .club-section, .events-section, .private-games, .discount-section, .open-games) .btn::after {
  content: '';
  position: absolute;
  width: 30px;
  height: 300px;
  top: -100px;
  left: -40px;
  margin-left: -30px;
  background: #fff;
  transform: rotate(45deg);
  pointer-events: none;
  animation: button-shine 3.5s ease 50ms infinite;
}
:is(.hero, .club-section, .events-section, .private-games, .discount-section, .open-games) .btn:hover {
  background: #fff;
  color: #000;
  transform: none;
}
@keyframes button-shine {
  0% { left: -30px; margin-left: 0; }
  30%, 100% { left: 110%; margin-left: 80px; }
}
@media (prefers-reduced-motion: reduce) {
  :is(.hero, .club-section, .events-section, .private-games, .discount-section, .open-games) .btn { transition: none; }
  :is(.hero, .club-section, .events-section, .private-games, .discount-section, .open-games) .btn::after { animation: none; display: none; }
}
