/* ===================== ブヒシューティング ===================== */
.bsh-overlay{position:fixed;inset:0;z-index:1200;background:#0a0819;overflow:hidden;
  font-family:inherit;touch-action:none;user-select:none;-webkit-user-select:none;}
.bsh-stage{position:absolute;inset:0;overflow:hidden;
  background:radial-gradient(130% 90% at 50% 0%,#241b46 0%,#140f2e 55%,#0a0819 100%);}
/* 流れる星（自動縦スクロール：背景が下へ流れる＝上へ飛ぶ） */
.bsh-stars{position:absolute;left:0;right:0;top:-100%;height:200%;pointer-events:none;
  background-repeat:repeat;will-change:transform;}
.bsh-stars.s1{background-image:
  radial-gradient(1.5px 1.5px at 20px 30px,#fff 50%,transparent),
  radial-gradient(1.5px 1.5px at 120px 90px,#cfe0ff 50%,transparent),
  radial-gradient(2px 2px at 200px 160px,#fff 50%,transparent),
  radial-gradient(1.5px 1.5px at 60px 220px,#ffd9ec 50%,transparent);
  background-size:240px 260px;opacity:.9;}
.bsh-stars.s2{background-image:
  radial-gradient(1px 1px at 40px 60px,#9fb0e0 50%,transparent),
  radial-gradient(1px 1px at 160px 20px,#9fb0e0 50%,transparent),
  radial-gradient(1px 1px at 100px 180px,#c0a8e0 50%,transparent);
  background-size:180px 200px;opacity:.6;}

/* 自機 */
.bsh-ship{position:absolute;left:0;top:0;width:66px;height:90px;will-change:transform;z-index:5;
  transform:translate3d(-100px,-100px,0);}
.bsh-ship svg{width:100%;height:100%;display:block;overflow:visible;}
.bsh-ship.hit{animation:bshBlink .16s steps(2) 6;}
@keyframes bshBlink{50%{opacity:.25}}

/* 弾・ビーム・敵・アイテム */
.bsh-bullet{position:absolute;left:0;top:0;width:12px;height:20px;will-change:transform;z-index:4;pointer-events:none;}
.bsh-bullet svg{width:100%;height:100%;display:block;}
.bsh-beam{position:absolute;left:0;top:0;width:26px;will-change:transform,opacity;z-index:4;pointer-events:none;
  background:linear-gradient(180deg,rgba(126,232,255,0) 0%,#7ee8ff 12%,#eafcff 50%,#7ee8ff 88%,rgba(126,232,255,0) 100%);
  border-radius:13px;filter:drop-shadow(0 0 6px rgba(126,232,255,.8));opacity:.95;}
.bsh-beam::after{content:"";position:absolute;inset:0;margin:auto;width:10px;border-radius:6px;background:#fff;opacity:.85;}
.bsh-enemy{position:absolute;left:0;top:0;will-change:transform;z-index:4;}
.bsh-enemy svg{width:100%;height:100%;display:block;overflow:visible;}
.bsh-enemy.hit svg{filter:brightness(2);}
.bsh-enemy.pop{animation:bshPop .34s ease-out forwards;}
@keyframes bshPop{to{transform:scale(1.7) translateZ(0);opacity:0}}
.bsh-eshot{position:absolute;left:0;top:0;width:16px;height:16px;will-change:transform;z-index:4;pointer-events:none;}
.bsh-eshot svg{width:100%;height:100%;display:block;}
.bsh-item{position:absolute;left:0;top:0;width:34px;height:34px;will-change:transform;z-index:4;}
.bsh-item svg{width:100%;height:100%;display:block;}
.bsh-item{animation:bshFloat 1.2s ease-in-out infinite;}
@keyframes bshFloat{50%{filter:brightness(1.35)}}

/* HUD */
.bsh-hud{position:absolute;left:12px;right:12px;top:10px;display:flex;align-items:center;gap:10px;z-index:8;color:#fff;}
.bsh-hearts{display:flex;gap:4px;}
.bsh-hearts svg{width:26px;height:24px;}
.bsh-score{margin-left:auto;font-weight:700;font-size:19px;color:#ffe6f0;text-shadow:0 1px 3px rgba(0,0,0,.5);}
.bsh-weap{display:flex;align-items:center;gap:6px;background:rgba(20,15,46,.6);border:1.5px solid #6b7fc0;
  border-radius:14px;padding:3px 10px;font-size:13px;color:#cfe0ff;}
.bsh-weap svg{width:20px;height:20px;}
.bsh-quit{margin-left:6px;width:38px;height:38px;border-radius:50%;border:none;background:#fff;color:#b0455f;
  font-size:20px;line-height:1;cursor:pointer;box-shadow:0 2px 6px rgba(0,0,0,.3);z-index:9;}

/* ステージ表示・ボスゲージ・バナー・セリフ */
.bsh-stageno{position:absolute;left:14px;top:44px;z-index:8;color:#cfe0ff;font-weight:700;font-size:13px;
  letter-spacing:1px;text-shadow:0 1px 3px rgba(0,0,0,.6);pointer-events:none;}
.bsh-boss{position:absolute;left:14px;right:14px;top:64px;z-index:8;opacity:0;transition:opacity .3s;pointer-events:none;}
.bsh-boss.show{opacity:1;}
.bsh-boss-name{color:#ffd0e0;font-weight:700;font-size:14px;text-shadow:0 1px 3px rgba(0,0,0,.6);margin-bottom:3px;}
.bsh-boss-bar{height:13px;border-radius:7px;background:#2a2350;border:1.5px solid #ff9ec4;overflow:hidden;}
.bsh-boss-bar i{display:block;height:100%;width:100%;background:linear-gradient(90deg,#ff5d8f,#ffd24a);
  transition:width .12s linear;}
.bsh-boss-el{position:absolute;left:0;top:0;width:132px;height:112px;will-change:transform;z-index:5;
  transform:translate3d(-200px,-200px,0);}
.bsh-boss-inner{width:100%;height:100%;}
.bsh-boss-inner svg{width:100%;height:100%;display:block;overflow:visible;}
.bsh-boss-inner.hit svg{filter:brightness(1.9);}
.bsh-boss-inner.dying{animation:bshBossDie 2.4s ease-in forwards;transform-origin:50% 46%;}
@keyframes bshBossDie{0%{filter:brightness(1)}18%{filter:brightness(2.4)}
  100%{transform:scale(.18) rotate(48deg);opacity:0;filter:brightness(3.4)}}
.bsh-banner{position:absolute;left:0;right:0;top:33%;z-index:11;text-align:center;color:#fff;font-weight:800;
  font-size:30px;letter-spacing:1px;text-shadow:0 2px 8px rgba(0,0,0,.7),0 0 18px #ff7aa2;opacity:0;pointer-events:none;}
.bsh-banner.show{animation:bshBanner 1.8s ease-out;}
.bsh-banner.warn{color:#ffe24a;text-shadow:0 2px 8px rgba(0,0,0,.7),0 0 18px #ff3b3b;}
@keyframes bshBanner{0%{opacity:0;transform:scale(.6)}15%{opacity:1;transform:scale(1)}72%{opacity:1}
  100%{opacity:0;transform:scale(1.12)}}
.bsh-talk{position:absolute;left:50%;top:29%;transform:translateX(-50%);z-index:11;max-width:82vw;
  background:rgba(20,15,46,.92);border:2px solid #ff9ec4;border-radius:14px;padding:10px 16px;color:#fff;
  font-size:15px;text-align:center;opacity:0;transition:opacity .25s;pointer-events:none;box-shadow:0 6px 20px rgba(0,0,0,.5);}
.bsh-talk.show{opacity:1;}
.bsh-talk b{color:#ffd0e0;display:block;font-size:12px;margin-bottom:3px;}

/* コントロール（冒険と同じ：左スティック・右ボタン）
   実際の受けは下部の左右ゾーン全体。ボタンは見た目だけ（指が少し外れても操作できる） */
.bsh-controls{position:absolute;left:0;right:0;bottom:0;height:190px;z-index:9;pointer-events:none;}
.bsh-zone{position:absolute;bottom:0;width:50%;height:210px;border:none;background:none;padding:0;margin:0;
  pointer-events:auto;cursor:pointer;touch-action:none;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none;}
.bsh-zone.l{left:0;}
.bsh-zone.r{right:0;}
.bsh-btn{position:absolute;bottom:30px;width:96px;height:74px;border:none;background:none;padding:0;pointer-events:none;-webkit-tap-highlight-color:transparent;}
.bsh-btn svg{width:100%;height:100%;display:block;filter:drop-shadow(0 4px 6px rgba(0,0,0,.4));}
.bsh-stickbtn{left:24px;}
.bsh-firebtn{right:24px;}
.bsh-firebtn:active svg,.bsh-firebtn.on svg{transform:translateY(3px) scale(.96);}
.bsh-stick{position:absolute;left:0;top:0;width:100%;height:100%;}
.bsh-stick-knob{position:absolute;left:50%;top:50%;width:34px;height:34px;margin:-17px 0 0 -17px;border-radius:50%;
  background:radial-gradient(circle at 40% 35%,#fff6,#0000 60%),#ff9dc0;border:2px solid #e07a9c;
  will-change:transform;transition:transform .04s linear;}

/* スタート/結果パネル */
.bsh-panel{position:absolute;inset:0;z-index:12;display:flex;align-items:center;justify-content:center;
  background:rgba(10,8,25,.72);}
.bsh-card{background:linear-gradient(180deg,#2a2350,#1a1436);border:2px solid #6b7fc0;border-radius:20px;
  padding:22px 20px;width:min(86vw,340px);text-align:center;color:#fff;box-shadow:0 10px 40px rgba(0,0,0,.5);}
.bsh-card h2{margin:0 0 4px;font-size:24px;color:#ffd0e0;}
.bsh-card p{margin:6px 0;color:#c7c0e0;font-size:14px;}
.bsh-pilots{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:14px 0;}
.bsh-pilot{width:58px;height:58px;border-radius:14px;border:2px solid #4a4478;background:#1a1640;padding:0;cursor:pointer;overflow:hidden;}
.bsh-pilot.sel{border-color:#ffd166;box-shadow:0 0 0 2px #ffd16688;}
.bsh-pilot svg{width:100%;height:100%;display:block;}
.bsh-go{margin-top:6px;background:#ff7aa2;color:#fff;border:none;border-radius:14px;padding:12px 26px;font-size:18px;font-weight:700;cursor:pointer;}
.bsh-sub{background:#4a4478;color:#fff;border:none;border-radius:12px;padding:9px 20px;font-size:14px;cursor:pointer;margin-top:10px;}
.bsh-best{color:#ffe08a;font-size:13px;margin-top:8px;}

/* ステージ背景（上空から見下ろした地面）：スクロールタイル・地形・雲・アイテムボックス */
.bsh-gscroll{position:absolute;left:0;right:0;top:-220px;bottom:-220px;z-index:0;pointer-events:none;
  will-change:transform;background-repeat:repeat;background-size:100% 220px;}
.bsh-terr{position:absolute;left:0;top:0;z-index:2;pointer-events:none;will-change:transform;
  filter:drop-shadow(0 4px 8px rgba(0,0,0,.22));}
.bsh-terr svg{width:100%;height:100%;display:block;}
.bsh-cloud{position:absolute;left:0;top:0;z-index:6;pointer-events:none;will-change:transform;opacity:.96;}
.bsh-cloud svg{width:100%;height:100%;display:block;}
.bsh-box{position:absolute;left:0;top:0;width:40px;height:40px;z-index:4;will-change:transform;}
.bsh-box svg{width:100%;height:100%;display:block;}
.bsh-box.hit svg{filter:brightness(1.7);}
.bsh-box.pop{animation:bshPop .34s ease-out forwards;}
.bsh-acorn-line{color:#ffd98a;font-weight:700;}
.bsh-ac{width:16px;height:16px;vertical-align:-3px;color:#d8a04a;}
.bsh-contnote{color:#9fb0e0 !important;font-size:12px !important;margin:4px 0 2px !important;}
