.dharma__rad-play {
  appearance: none;
  background: transparent;
  color: var(--rice);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  padding: 0;
  transition: background .2s, color .2s;
}

.dharma__rad-play::before {
  margin: 0 0 0 3px;
  border-color: transparent transparent transparent currentColor;
}

.dharma__rad-play:hover {
  background: var(--rice);
  color: var(--ink);
}

.dharma__rad-play.is-playing::before,
.minplayer.is-playing .minplayer__btn::before {
  width: 8px;
  height: 14px;
  margin: 0;
  border: 0;
  border-left: 3px solid currentColor;
  border-right: 3px solid currentColor;
}

.dharma__rad-wave span {
  border-radius: 1px;
  transform-origin: bottom;
  animation: waveA 1.4s infinite ease-in-out;
}

.dharma__rad-wave span:nth-child(1) { height: 30%; animation-delay: 0s; }
.dharma__rad-wave span:nth-child(2) { height: 80%; animation-delay: .15s; }
.dharma__rad-wave span:nth-child(3) { height: 50%; animation-delay: .3s; }
.dharma__rad-wave span:nth-child(4) { height: 95%; animation-delay: .45s; }
.dharma__rad-wave span:nth-child(5) { height: 40%; animation-delay: .6s; }
.dharma__rad-wave span:nth-child(6) { height: 70%; animation-delay: .75s; }
.dharma__rad-wave span:nth-child(7) { height: 25%; animation-delay: .9s; }
.dharma__rad-wave span:nth-child(8) { height: 60%; animation-delay: 1.05s; }
.dharma__rad-wave span:nth-child(9) { height: 85%; animation-delay: 1.2s; }

@keyframes waveA {
  0%, 100% { transform: scaleY(.4); }
  50% { transform: scaleY(1); }
}

.minplayer {
  position: fixed;
  bottom: 24px;
  left: 24px;
  z-index: 40;
  width: min(340px, calc(100vw - 48px));
  background: var(--ink);
  color: var(--rice);
  padding: 12px 16px 12px 12px;
  display: flex;
  align-items: center;
  gap: 14px;
  box-shadow: 0 16px 48px -12px rgba(28, 25, 21, .5);
  transition: transform .3s, opacity .3s;
}

.minplayer.is-hidden {
  transform: translateY(140%);
  opacity: 0;
  pointer-events: none;
}

.minplayer__btn,
.minplayer__close {
  appearance: none;
  background: transparent;
  color: inherit;
  padding: 0;
}

.minplayer__btn {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 1px solid var(--rice);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  flex-shrink: 0;
}

.minplayer__btn::before {
  content: "";
  border-style: solid;
  border-width: 5px 0 5px 9px;
  border-color: transparent transparent transparent currentColor;
  margin-left: 2px;
}

.minplayer__info { min-width: 0; flex: 1; }
.minplayer__info b {
  display: block;
  font-size: 13px;
  letter-spacing: .04em;
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.minplayer__info em {
  display: block;
  margin-top: 3px;
  font-style: normal;
  font-family: var(--font-hei);
  font-size: 9px;
  letter-spacing: .18em;
  color: var(--paper-3);
  text-transform: uppercase;
}

.minplayer__detail {
  color: var(--paper-3);
  font-size: 11px;
  white-space: nowrap;
}

.minplayer__detail:hover { color: var(--rice); }

.minplayer__close {
  position: relative;
  width: 20px;
  height: 20px;
  border: 0;
  cursor: pointer;
  opacity: .5;
  flex-shrink: 0;
}

.minplayer__close:hover { opacity: 1; }
.minplayer__close::before,
.minplayer__close::after {
  content: "";
  position: absolute;
  top: 10px;
  left: 4px;
  width: 12px;
  height: 1px;
  background: var(--rice);
}

.minplayer__close::before { transform: rotate(45deg); }
.minplayer__close::after { transform: rotate(-45deg); }

@media (prefers-reduced-motion: reduce) {
  .dharma__rad-wave span { animation: none; }
  .minplayer { transition: none; }
}
