.vinyl-player {
  --blue: #7297d5;
  --coral: #ed795e;
  --gold: #ddc258;
  position: relative;
  pointer-events: auto;
  font: 13px/1.4 'Space Grotesk', sans-serif;
}
.vinyl-player button, .vinyl-player input { font: inherit; }
.vinyl-player button { cursor: pointer; }
.vinyl-player [hidden] { display: none !important; }
.vinyl-player button:focus-visible, .vinyl-player input:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 4px;
}
.vinyl-trigger {
  display: grid;
  place-items: center;
  width: 72px;
  height: 72px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: none;
}
.vinyl {
  position: relative;
  display: grid;
  place-items: center;
  width: 68px;
  height: 68px;
  border: 0;
  isolation: isolate;
  box-shadow: inset 0 0 0 3px #f1ece1;
  border-radius: 50%;
  background: #171d27;
  animation: vinyl-turn 14s linear infinite paused;
  will-change: transform;
}
.vinyl-grooves {
  opacity: .35;
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}
.vinyl i {
  position: relative;
  z-index: 2;
  width: 36%;
  height: 36%;
  border-radius: 50%;
  background: conic-gradient(var(--blue), #f1ece1, var(--coral), var(--blue));
}
.vinyl::after {
  z-index: 3;
  content: '';
  position: absolute;
  width: 5px;
  height: 5px;
  background: #12151b;
  border-radius: 50%;
}
.vinyl-player.playing .vinyl { animation-play-state: running; }
@keyframes vinyl-turn { to { transform: rotate(360deg); } }
.track-panel {
  position: absolute;
  right: 0;
  top: calc(100% + 10px);
  width: 370px;
  max-width: calc(100vw - 44px);
  padding: 20px;
  border: 0;
  border-radius: 0;
  background: #f1ece1;
  color: #12151b;
  color-scheme: light;
  box-shadow: 7px 7px 0 var(--blue);
}
.track-panel::before {
  content: '';
  position: absolute;
  bottom: 100%;
  right: 0;
  width: 100%;
  height: 14px;
}
.track-choice {
  display: flex;
  align-items: center;
  gap: 14px;
  width: 100%;
  min-height: 76px;
  padding: 16px 0;
  border: 0;
  border-top: 1px solid #12151b35;
  border-radius: 0;
  text-align: left;
  background: none;
  color: #12151b;
}
.track-choice:hover, .track-choice[aria-pressed=true] { background: #dedacf; }

.track-symbol {
  flex: none;
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border: 0;
  border-radius: 50%;
  color: #12151b;
  background: var(--track-color);
}
.player-icon { display: block; width: 24px; height: 24px; fill: currentColor; }
.track-info { flex: 1; min-width: 0; }
.track-name { display: block; font-size: 14px; font-weight: 500; }
.track-game { display: block; font-size: 11px; color: #4e5867; margin-top: 4px; }
.track-duration { font: 11px ui-monospace, monospace; color: #4e5867; }
.transport {
  display: flex;
  gap: 7px;
  align-items: center;
  border-top: 1px solid #12151b35;
  margin: 0;
  padding-top: 12px;
}
.playback-toggle {
  display: grid;
  place-items: center;
  flex: none;
  width: 44px;
  height: 44px;
  color: #12151b;
  border: 0;
  background: none;
}
.transport input { accent-color: var(--blue); min-width: 0; flex: 1; width: 100%; }
.elapsed { flex: none; font: 11px ui-monospace, monospace; color: #4e5867; }
.playback-error { color: #9b3522; font-size: 12px; margin: 10px; }
@media (max-width: 590px) {
  .vinyl-trigger { width: 62px; height: 62px; }
  .vinyl { width: 60px; height: 60px; }
  .track-panel { padding: 16px; }
  .track-choice { gap: 10px; }
  .track-name { font-size: 12px; }
}
@media (prefers-reduced-motion: reduce) { .vinyl { animation: none; } }

.volume-control { display: flex; align-items: center; gap: 5px; flex: 0 0 78px; min-width: 0; color: #4e5867; }
.volume-control svg { width: 18px; height: 18px; flex: none; }
.volume-control input { width: 55px; margin: 0; }

.player-masthead { display: flex; gap: 6px; align-items: center; padding: 4px 0 18px; }
.player-masthead i { display: block; width: 15px; height: 15px; background: var(--coral); border-radius: 50%; }
.player-masthead i:nth-child(2) { background: var(--blue); border-radius: 0; }
.player-masthead i:nth-child(3) { background: var(--gold); border-radius: 0; clip-path: polygon(50% 0, 100% 100%, 0 100%); }
.track-choice:nth-child(2) .track-symbol { border-radius: 0; }
.track-choice:nth-child(3) .track-symbol { border-radius: 23px 23px 0 0; }
.track-panel button:focus-visible, .track-panel input:focus-visible { outline-color: #12151b; }
