/* Tụng Kinh — mõ area, ripples, controls, volume popover */

.tk-mo-area {
  margin-top: auto;
  padding-top: 16px;
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
  width: 100%;
}
.tk-floating-layer {
  position: absolute;
  bottom: calc(100% - 4px);
  left: 0;
  right: 0;
  height: 160px;
  pointer-events: none;
}
.tk-floating {
  position: absolute;
  bottom: 0;
  white-space: nowrap;
  padding: 6px 16px;
  font-size: 0.9rem;
  font-weight: 600;
  color: #f5d68a;
  background: rgba(0, 0, 0, 0.55);
  border: 1px solid rgba(200, 140, 20, 0.4);
  border-radius: 999px;
  backdrop-filter: blur(6px);
  transform: translateX(-50%) translateY(0) scale(0.75);
  opacity: 0;
  animation: tk-float-up 2.2s ease-out forwards;
}
@keyframes tk-float-up {
  0% { transform: translateX(-50%) translateY(0) scale(0.75); opacity: 0; }
  12% { transform: translateX(-50%) translateY(-12px) scale(1); opacity: 1; }
  75% { opacity: 0.9; }
  100% { transform: translateX(-50%) translateY(-130px) scale(0.88); opacity: 0; }
}

.tk-mo-zone {
  position: relative; background: transparent; border: 0; padding: 12px;
  cursor: pointer; -webkit-tap-highlight-color: transparent;
  transition: transform 0.13s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.tk-mo-zone:focus { outline: none; }
.tk-mo-zone:focus-visible .tk-mo-img {
  filter: drop-shadow(0 0 8px rgba(255, 200, 80, 0.9));
}
.tk-mo-zone.is-strike { transform: scale(0.92); }
.tk-mo-img {
  display: block;
  width: 180px;
  height: 180px;
  object-fit: contain;
  filter: drop-shadow(0 4px 24px rgba(180, 100, 0, 0.55)) drop-shadow(0 0 8px rgba(255, 180, 40, 0.25));
  pointer-events: none;
  animation: tk-mo-float 3.6s ease-in-out infinite;
}
.tk-mo-zone.is-strike .tk-mo-img {
  animation: tk-mo-bounce 0.18s ease-out;
}
@media (max-width: 480px) {
  .tk-mo-img { width: 150px; height: 150px; }
}
@keyframes tk-mo-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }
@keyframes tk-mo-bounce {
  0% { transform: scale(1) rotate(0); }
  40% { transform: scale(0.88) rotate(-4deg); }
  75% { transform: scale(1.06) rotate(2deg); }
  100% { transform: scale(1) rotate(0); }
}
.tk-mo-halo {
  position: absolute;
  inset: -4px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(200, 130, 0, 0.1) 0%, transparent 70%);
  transition: background 0.25s, box-shadow 0.25s;
  pointer-events: none;
}
.tk-mo-zone.is-strike .tk-mo-halo {
  background: radial-gradient(circle, rgba(255, 200, 50, 0.22) 0%, transparent 65%);
  box-shadow: 0 0 0 10px rgba(200, 134, 10, 0.18), 0 0 60px rgba(255, 180, 20, 0.45);
}
.tk-ripple {
  position: absolute;
  width: 12px;
  height: 12px;
  margin-left: -6px;
  margin-top: -6px;
  border-radius: 50%;
  background: rgba(255, 200, 60, 0.5);
  pointer-events: none;
  animation: tk-ripple-expand 0.85s ease-out forwards;
}
@keyframes tk-ripple-expand {
  0% { transform: scale(0); opacity: 1; }
  100% { transform: scale(16); opacity: 0; }
}

.tk-hint {
  margin: 14px 0 0;
  font-size: 11px;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: rgba(200, 140, 40, 0.75);
}

/* ── Controls ────────────────────────────────────────────────────── */
.tk-controls {
  margin-top: 16px;
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: center;
}
.tk-btn {
  font: inherit;
  font-size: 0.85rem;
  font-weight: 600;
  padding: 9px 16px;
  border-radius: 999px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(0, 0, 0, 0.45);
  color: #f0bf60;
  border: 1px solid rgba(200, 140, 20, 0.42);
  backdrop-filter: blur(8px);
  transition: all 0.18s ease;
}
.tk-btn:hover { color: #ffe27a; border-color: rgba(220, 170, 50, 0.7); }
.tk-btn-toggle.is-on {
  background: rgba(140, 80, 0, 0.6);
  color: #fff5c0;
  border-color: rgba(255, 200, 80, 0.65);
  box-shadow: 0 0 14px rgba(220, 160, 0, 0.4);
}
.tk-btn-danger { color: #f08080; border-color: rgba(180, 60, 60, 0.45); }
.tk-btn-danger:hover { color: #ffb0b0; border-color: rgba(220, 80, 80, 0.7); }
.tk-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #6b3a10;
  transition: background 0.2s, box-shadow 0.2s;
}
.tk-btn-toggle.is-on .tk-dot {
  background: #ffd060;
  box-shadow: 0 0 6px 2px rgba(255, 200, 50, 0.7);
}

/* ── Volume popover ──────────────────────────────────────────────── */
.tk-volume-popover {
  margin-top: 14px;
  padding: 12px 16px;
  border-radius: 14px;
  background: rgba(0, 0, 0, 0.7);
  border: 1px solid rgba(200, 140, 20, 0.45);
  backdrop-filter: blur(10px);
}
.tk-volume-row { display: flex; align-items: center; gap: 12px; }
.tk-volume-name {
  font-size: 0.8rem;
  color: rgba(220, 170, 60, 0.85);
  min-width: 64px;
}
.tk-volume-val {
  font-size: 0.78rem;
  font-family: 'JetBrains Mono', monospace;
  color: #f0bf60;
  min-width: 40px;
  text-align: right;
}
.tk-volume-row input[type="range"] {
  flex: 1;
  -webkit-appearance: none;
  appearance: none;
  height: 4px;
  border-radius: 999px;
  background: linear-gradient(to right, #c8860a 0%, #c8860a var(--val, 100%), rgba(80, 40, 0, 0.6) var(--val, 100%));
  cursor: pointer;
}
.tk-volume-row input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 16px; height: 16px; border-radius: 50%;
  background: radial-gradient(circle at 35% 35%, #ffd060, #c8860a);
  box-shadow: 0 0 8px rgba(200, 134, 10, 0.8); cursor: pointer;
}
.tk-volume-row input[type="range"]::-moz-range-thumb {
  width: 16px; height: 16px; border: 0; border-radius: 50%;
  background: radial-gradient(circle at 35% 35%, #ffd060, #c8860a);
  box-shadow: 0 0 8px rgba(200, 134, 10, 0.8); cursor: pointer;
}
