#replay {
  display: block;
  margin: 20px auto;
  padding: 12px 28px;
  font-size: 20px;
  border: none;
  border-radius: 10px;
  background: #3a86ff;
  color: white;
  cursor: pointer;
}
#replay:hover { background: #2667cc; }
body { margin: 0; background: #111; font-family: sans-serif; }
#stage { position: relative; width: 960px; max-width: 100%; aspect-ratio: 960 / 600; margin: 10px auto 0; border: 3px solid #333; box-sizing: content-box; }
#stage canvas { position: absolute; inset: 0; width: 100%; height: 100%; }
#game { cursor: crosshair; }
#replay[hidden] { display: none; }
#shopBtn { position: fixed; top: 16px; left: 16px; padding: 10px 20px; font-size: 18px; border: none; border-radius: 10px; background: #ffb703; color: #222; cursor: pointer; font-weight: bold; }
#shop { position: fixed; inset: 0; background: rgba(0,0,0,.7); display: flex; align-items: center; justify-content: center; }
#shop[hidden] { display: none; }
#shopBox { background: #1b2433; color: #fff; padding: 20px; border-radius: 14px; width: min(720px, 94vw); max-height: 90vh; overflow: auto; }
#shopBox h2 { margin: 0 0 12px; }
#shopCoins { float: right; color: #ffe14d; }
#shopList { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.gunCard { background: #2a3550; border-radius: 10px; padding: 10px; border: 2px solid transparent; }
.gunCard.equipped { border-color: #3fe05a; }
.gunCard b { display: block; font-size: 18px; }
.gunCard small { color: #bbb; display: block; margin: 4px 0 8px; }
.gunCard button, #shopClose { padding: 6px 14px; border: none; border-radius: 8px; background: #3a86ff; color: #fff; font-size: 15px; cursor: pointer; }
.gunCard button:disabled { background: #555; cursor: not-allowed; }
#shopClose { display: block; margin: 14px auto 0; }
