/* Custom Styles & Tactile Animations for vthread Live Scores */

@keyframes pointPulse {
  0% { transform: scale(1); }
  50% { transform: scale(1.08); filter: brightness(1.2); }
  100% { transform: scale(1); }
}

@keyframes flashBorder {
  0%, 100% { border-color: rgba(99, 102, 241, 0.4); }
  50% { border-color: rgba(99, 102, 241, 1); box-shadow: 0 0 25px rgba(99, 102, 241, 0.35); }
}

.score-pulse {
  animation: pointPulse 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.winner-card {
  animation: flashBorder 2s infinite ease-in-out;
}

@keyframes liveGlow {
  0%, 100% {
    box-shadow: 0 0 15px rgba(16, 185, 129, 0.2), 0 0 30px rgba(99, 102, 241, 0.15);
  }
  50% {
    box-shadow: 0 0 25px rgba(16, 185, 129, 0.4), 0 0 45px rgba(99, 102, 241, 0.3);
  }
}

.live-card-glow {
  animation: liveGlow 3s infinite ease-in-out;
}

.past-match-card {
  transition: transform 0.15s ease, border-color 0.15s ease, background-color 0.15s ease;
}

.past-match-card:hover {
  transform: translateY(-2px);
  border-color: rgba(99, 102, 241, 0.5);
  background-color: rgba(15, 23, 42, 0.95);
}

/* Touch optimization for mobile gym scoring */
button {
  user-select: none;
  -webkit-user-select: none;
  touch-action: manipulation;
}

/* Custom scrollbars */
::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}
::-webkit-scrollbar-track {
  background: #020617;
}
::-webkit-scrollbar-thumb {
  background: #334155;
  border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
  background: #475569;
}
