/*基本設定*/
body {
  background-color: black;
  color: lime;
  font-family: 'Press Start 2P', cursive;
  text-align: center;
  padding: 2em;
  margin: 0;
}

/*キャラクター + 吹き出し*/
.avatar-box {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1em;
  margin-bottom: 2em;
}

.avatar {
  width: 100px;
  image-rendering: pixelated;
  animation: float 2s ease-in-out infinite;
}

@keyframes float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
}

.speech-bubble {
  background-color: #222;
  border: 2px solid #0f0;
  padding: 1em;
  max-width: 300px;
  animation: fadeIn 1.5s ease forwards;
}

/*ボタン*/
button, .retro-btn {
  font-family: 'Press Start 2P', cursive;
  background-color: #222;
  color: #0f0;
  border: 2px solid #0f0;
  padding: 1em 2em;
  margin: 1em;
  text-decoration: none;
  display: inline-block;
  transition: all 0.3s ease;
}

button:hover, .retro-btn:hover {
  background-color: #0f0;
  color: #000;
}

#start-btn {
  animation: blink 1s step-start infinite;
}

@keyframes blink { 50% { opacity: 0; } }

#bgm-controls {
  margin-top: 1em;
}

/*レイアウト・アニメーション*/
.hidden { display: none; }

.fade-in { animation: fadeIn 1s ease forwards; }

@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }

.button-grid { display: flex; flex-direction: column; align-items: center; }

/*モバイル対応*/
@media (max-width: 600px) {
  button, .retro-btn { font-size: 0.8rem; padding: 0.8em 1.5em; }
}

.content-img {
  width: 80%;
  max-width: 400px;
  display: block;
  margin: 0 auto 1em auto;
  border: 2px solid #0f0;
  image-rendering: pixelated; /* レトロ感を出す場合 */
}
