/* Pitch Velocity base styles + custom effects */
body {
  background-color: #0a0f14;
  color: #dee3ea;
  -webkit-font-smoothing: antialiased;
}
.material-symbols-outlined {
  font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
  user-select: none;
}
.live-pulse { animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite; }
@keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: .5; } }

.glass-panel {
  background: rgba(48, 53, 59, 0.1);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
}

/* live match card gets an inner neon stroke (per design "Inner Glows") */
.card-live { box-shadow: inset 0 0 0 1px #00ff85; }

/* qualification bar on standings rows */
.qual-bar { box-shadow: inset 3px 0 0 0 #00ff85; }

/* fav star */
.star-on { color: #00ff85; }
.star-off { color: #849584; }

/* thin scrollbars */
::-webkit-scrollbar { height: 8px; width: 8px; }
::-webkit-scrollbar-thumb { background: #30353b; border-radius: 9999px; }
::-webkit-scrollbar-track { background: transparent; }

/* avoid layout shift while fonts load */
.fade-in { animation: fade .25s ease-out; }
@keyframes fade { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }

img.flag { background: #1b2025; }
[hidden] { display: none !important; }
