:root {
  /* 🎛 テーマカラー */
  --bg: #ffffff; /* ← 背景を白に統一 */
  --card: #ffffff;
  --accent: #2563eb; /* 音楽アプリらしい青 */
  --good: #16a34a;
  --bad: #ef4444;

  /* 🧩 基本スケール */
  --space-s: 8px;
  --space-m: 16px;
  --space-l: 24px;
  --radius: 12px;
  --shadow: 0 4px 14px rgba(20,40,80,0.08);
}

/* 🩵 ベース */
body {
  font-family: system-ui, sans-serif;
  background: var(--bg); /* ← 完全に白背景 */
  margin: 0;
  padding: var(--space-l);
  color: #0b1220;
}

.wrap {
  max-width: 960px; /* ← 少し広めに */
  margin: 0 auto;
}

header {
  display: flex;
  align-items: center;
  gap: 12px;
}

h1 {
  font-size: 1.4rem;
  margin: 0;
}

/* 🧱 カード */
.card {
  background: var(--card);
  padding: 32px 24px;
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  margin-top: var(--space-l);
}

/* 🎛 コントロールエリア */
.controls {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 16px;
}

/* 🔘 ボタン（サイズ大きめ・ゆとり重視） */
button {
  background: #fff;
  border: 1px solid #ccc;
  padding: 12px 20px;
  border-radius: 10px;
  cursor: pointer;
  font-size: 1.05rem;
  font-weight: 600;
  transition: background 0.2s, transform 0.1s;
}

button:hover {
  background: #f3f4f6;
}

button.primary {
  background: var(--accent);
  color: white;
  border: none;
  font-size: 1.1rem;
}

button.primary:hover {
  background: #1d4ed8;
}

button:active {
  transform: scale(0.97);
}

/* 📏 行 */
.row {
  display: flex;
  gap: 12px;
  align-items: center;
  flex-wrap: wrap;
}

/* 🧩 選択肢 */
.choices {
  display: flex;
  gap: 10px;
  margin-top: 12px;
  flex-wrap: wrap;
}

.choice {
  min-width: 130px;
  padding: 12px 16px;
  border-radius: 10px;
  border: 1px solid #ddd;
  cursor: pointer;
  background: #fff;
  text-align: center;
  font-weight: 600;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.choice:hover {
  transform: translateY(-3px);
  box-shadow: 0 6px 16px rgba(10,30,80,0.06);
}

/* 📊 ステータス表示 */
.status {
  margin-top: 12px;
  font-weight: 700;
}

.score {
  font-size: 1rem;
}

.hint {
  font-size: 0.95rem;
  margin-top: 8px;
  color: #334155;
}

/* 🎵 オシロスコープなどのキャンバス */
canvas#osc {
  width: 100%;
  height: 240px; /* ← 大きくして迫力アップ */
  background: #0b1220;
  display: block;
  border-radius: 8px;
  margin-top: 12px;
}

/* 📘 補助テキスト */
.small {
  font-size: 0.9rem;
  color: #475569;
}

/* 💬 結果表示 */
.result {
  margin-top: 12px;
  padding: 12px;
  border-radius: 8px;
  transition: background 0.3s, color 0.3s;
}

.good {
  background: rgba(22, 163, 74, 0.12);
  color: var(--good);
  border: 1px solid rgba(22, 163, 74, 0.16);
}

.bad {
  background: rgba(239, 68, 68, 0.08);
  color: var(--bad);
  border: 1px solid rgba(239, 68, 68, 0.12);
}

/* 🖥 PC向け拡張 */
@media (min-width: 900px) {
  body {
    padding: 48px;
  }
  canvas#osc {
    height: 280px;
  }
}

/* 📱 モバイル対応 */
@media (max-width: 600px) {
  body {
    padding: 16px;
  }
  h1 {
    font-size: 1.2rem;
  }
  .choice {
    min-width: 100%;
  }
  .controls {
    justify-content: center;
  }
  canvas#osc {
    height: 160px;
  }
}

.back-button {
  display: inline-block;
  margin-top: 30px;
  padding: 10px 20px;
  font-size: 1rem;
  background-color: #e2e8f0;
  border: 1px solid #ccc;
  border-radius: 8px;
  cursor: pointer;
  transition: 0.2s;
}
.back-button:hover {
  background-color: #cbd5e1;
}
