/* Звук и картинки формата 2 в плеере (задача quiz2-media; контракт quiz-skill 4.3, вид — mockups/decisions.md «audio»).
   Разметка и вид слайда — scripts/quiz/v2/slides.css; здесь только состояния, которые ставит player/media.js:
   .v2-audio--loading (ждём звук), --playing (звучит), --failed (звук не играет: кнопка скрыта, видна .v2-fallback). */

/* кнопка скрыта атрибутом hidden — slides.css задаёт ей display, поэтому скрытие явное */
section.v2 .v2-audio button[hidden] {
  display: none !important;
}

section.v2 .v2-audio button {
  transition: transform 160ms cubic-bezier(0.2, 0, 0, 1), box-shadow 160ms cubic-bezier(0.2, 0, 0, 1);
}

section.v2 .v2-audio button:active {
  transform: scale(0.98);
}

section.v2 .v2-audio--loading button {
  cursor: progress;
  opacity: 0.75;
}

/* звучит: кольцо акцента пульсирует, как у «▶» видео формата 1 */
section.v2 .v2-audio--playing button {
  animation: v2-audio-pulse 1.2s ease-in-out infinite;
}

@keyframes v2-audio-pulse {
  0%,
  100% {
    box-shadow: 0 0 0 0 color-mix(in oklch, var(--accent) 45%, transparent);
  }
  50% {
    box-shadow: 0 0 0 18px color-mix(in oklch, var(--accent) 0%, transparent);
  }
}

@media (prefers-reduced-motion: reduce) {
  section.v2 .v2-audio button {
    transition: none;
  }
  section.v2 .v2-audio--playing button {
    animation: none;
    box-shadow: 0 0 0 8px color-mix(in oklch, var(--accent) 35%, transparent);
  }
}

/* замена видна при ошибке звука или видео со звуком (hidden снят плеером); у картинки-замены — блоком */
section.v2 .v2-audio--failed .v2-fallback,
section.v2 .v2-fallback[data-fallback-for]:not([hidden]) {
  display: block;
}

/* <audio> плеера живёт в слое медиа без своего вида */
.media-layer audio {
  display: none;
}
