.bgm-toggle{
  position: fixed; 
  right: 18px; 
  bottom: calc(env(safe-area-inset-bottom) + 18px);
  display: inline-flex; 
  align-items: center; 
  gap: 8px;
  padding: 10px 12px; 
  border-radius: 999px;
  background: rgba(20,24,26,.75);
  border: 1px solid rgba(46,196,182,.25);
  color: #cfe; 
  font-size: 14px;
  box-shadow: 0 6px 18px rgba(0,0,0,.25), inset 0 0 0 1px rgba(255,255,255,.02);
  backdrop-filter: blur(6px);
  cursor: pointer; 
  user-select: none;
  transition:
    bottom .38s cubic-bezier(.2,.75,.2,1),
    transform .38s cubic-bezier(.2,.75,.2,1),
    box-shadow .38s ease,
    background .25s ease;
  will-change: bottom, transform;
  z-index: 60;
}
.bgm-toggle:hover{ transform: translateY(-2px); background: rgba(20,24,26,.9); }
.bgm-toggle:active{ transform: translateY(-1px) scale(.99); }
.bgm-toggle .label{ letter-spacing:.2px; opacity:.95; }

.bgm-toggle.is-floating{
  transform: translateY(-4px) scale(1.03);
  box-shadow: 0 8px 28px rgba(0,255,240,.08),
              0 2px 8px rgba(0,0,0,.35);
}

.bgm-toggle .eq rect{ 
  fill: var(--accent, #2EC4B6); 
  opacity:.7; 
}

.bgm-toggle.on .eq rect{
  animation: bar 1.2s ease-in-out infinite;
}
.bgm-toggle.on .eq rect:nth-child(2){ animation-delay: .12s; }
.bgm-toggle.on .eq rect:nth-child(3){ animation-delay: .24s; }

@keyframes bar{
  0%,100%{ transform: scaleY(1); transform-origin: 50% 50%; opacity:.8; }
  50%{ transform: scaleY(1.5); opacity:1; }
}

@media (prefers-reduced-motion: reduce){
  .bgm-toggle{ transition:none; }
  .bgm-toggle.on .eq rect{ animation:none; }
}
