/* 夏祭り：広場中央の大太鼓。バチは描かず、革・鋲・胴・木製台座で立体感を出す。 */
.matsuri-taiko {
  width: 27%;
  max-width: 142px;
  z-index: 2;
  cursor: pointer; /* 叩いて盆踊りタイムへ */
}
/* タップ判定：打面(tk-head)＝ドン／縁・胴(tk-rim,tk-shell)＝カッ。
   飾り（影・脚・台・桟・革の内円・鋲・紋）は判定を透過させ、面か縁に当てる。 */
.matsuri-taiko .tk-shadow,
.matsuri-taiko .tk-leg,
.matsuri-taiko .tk-base,
.matsuri-taiko .tk-crossbar,
.matsuri-taiko .tk-head-inner,
.matsuri-taiko .tk-stud,
.matsuri-taiko .tk-crest,
.matsuri-taiko .tk-bachi { pointer-events: none; }
.matsuri-taiko .tk-head,
.matsuri-taiko .tk-rim,
.matsuri-taiko .tk-shell,
.matsuri-taiko .tk-shell-back { pointer-events: all; }
.matsuri-taiko svg {
  overflow: visible;
  filter: drop-shadow(0 7px 8px rgba(0, 0, 0, .38));
}
.matsuri-taiko .tk-shadow { fill: rgba(14, 8, 12, .34); }
.matsuri-taiko .tk-shell-back {
  fill: #4b1715;
  stroke: #2d0d0c;
  stroke-width: 2.5;
}
.matsuri-taiko .tk-shell {
  fill: url(#tk-shell-grad);
  stroke: #571b18;
  stroke-width: 2.5;
}
.matsuri-taiko .tk-rim {
  fill: #641d19;
  stroke: #35100f;
  stroke-width: 3;
}
.matsuri-taiko .tk-head {
  fill: url(#tk-head-grad);
  stroke: #b28d55;
  stroke-width: 2;
}
.matsuri-taiko .tk-head-inner {
  fill: none;
  stroke: rgba(126, 87, 41, .34);
  stroke-width: 1.5;
}
.matsuri-taiko .tk-studs .tk-stud {
  fill: #e4b844;
  stroke: #7e5817;
  stroke-width: .7;
}
.matsuri-taiko .tk-leg,
.matsuri-taiko .tk-base,
.matsuri-taiko .tk-crossbar {
  fill: url(#tk-wood-grad);
  stroke: #24130d;
  stroke-width: 1.5;
}
.matsuri-taiko .tk-crest {
  fill: rgba(181, 50, 38, .14);
  stroke: rgba(132, 45, 31, .24);
  stroke-width: 1;
}
.matsuri-taiko.beat svg { animation: taikoBeatRefined .24s ease; }
@keyframes taikoBeatRefined {
  0%, 100% { transform: scale(1); }
  38% { transform: scale(1.055); }
}

/* 既存のバチ要素が残っていても表示しない。 */
.matsuri-taiko .tk-bachi { display: none; }

/* 盆踊りのライティング：やぐらを中心に灯る暖色のスポット（ふだんは消灯）。太鼓のドンで点滅する。 */
.matsuri-bon-light {
  position: absolute; width: 165%; height: 165%; z-index: 1; pointer-events: none;
  transform: translate(-50%, -50%);
  background:
    radial-gradient(circle at center, rgba(255, 206, 110, .6), rgba(255, 150, 60, .26) 30%, rgba(255, 120, 50, 0) 58%);
  mix-blend-mode: screen; opacity: 0; transition: opacity .7s ease;
}
.room-stage[data-scene="matsuri"].bon-lit .matsuri-bon-light { opacity: .85; }
.matsuri-bon-light.flash { animation: bonLightFlash .26s ease; }
@keyframes bonLightFlash { 0%, 100% { filter: brightness(1); } 32% { filter: brightness(1.55); } }
/* 盆踊り中は提灯がぱっと明るく灯る */
.room-stage[data-scene="matsuri"].bon-lit .matsuri-lantern { filter: drop-shadow(0 0 8px var(--lc)) brightness(1.18); transition: filter .5s ease; }

/* 盆踊り中にブタが持つ夏祭りの小物（うちわ・わたあめ・りんご飴・ペンライト）。
   柄が体の横にくるよう、低すぎない位置で体に寄せて持たせる。 */
.bon-prop {
  position: absolute; width: 50%; height: 50%;
  right: -4%; bottom: 34%;
  pointer-events: none; z-index: 4;
}
.bon-prop.left-hand { right: auto; left: -4%; }
.bon-prop svg { width: 100%; height: 100%; overflow: visible; display: block;
  filter: drop-shadow(0 1px 1px rgba(80, 40, 55, .3)); }
/* ペンライトは光って見えるようにグロー＋ゆらゆら振る */
.bon-prop.prop-penlight svg { filter: drop-shadow(0 0 5px var(--pl, #46e0ff)) drop-shadow(0 0 9px var(--pl, #46e0ff)); }
.bon-prop.prop-penlight { animation: penlightWave .7s ease-in-out infinite; transform-origin: 50% 90%; }
@keyframes penlightWave { 0%, 100% { transform: rotate(-14deg); } 50% { transform: rotate(14deg); } }
