/* ============================================================
   MartynForge EDU – Taal games
   Stylesheet: assets/css/taal.css
   ============================================================ */

/* ── Range grid (reused from optellen) ── */
.range-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
}
.range-btn {
  padding: 10px 8px;
  border-radius: var(--radius-sm);
  border: 2px solid var(--border);
  background: var(--surface2);
  color: var(--text);
  font-family: 'Space Mono', monospace;
  font-size: 0.88rem;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.15s;
  text-align: center;
}
.range-btn:hover   { border-color: var(--accent2); color: var(--accent2); }
.range-btn.selected { background: var(--accent2); border-color: var(--accent2); color: #111; transform: scale(1.04); }

/* ── Emoji card ── */
.emoji-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 32px 24px 24px;
  text-align: center;
  margin-bottom: 24px;
  position: relative;
  overflow: hidden;
}
.emoji-card::before {
  content: '';
  position: absolute; top: -40px; right: -40px;
  width: 120px; height: 120px; border-radius: 50%;
  background: rgba(91,232,160,0.05);
}

.emoji-display {
  font-size: clamp(4rem, 18vw, 7rem);
  line-height: 1.1;
  margin-bottom: 12px;
  display: block;
  filter: drop-shadow(0 4px 12px rgba(0,0,0,0.2));
  animation: emojiPop 0.3s cubic-bezier(.22,1,.36,1) both;
}
@keyframes emojiPop {
  0%   { transform: scale(0.7); opacity: 0; }
  100% { transform: scale(1);   opacity: 1; }
}

.emoji-hint {
  font-size: 1.2rem;
  font-weight: 900;
  letter-spacing: 0.15em;
  color: var(--accent2);
  margin-bottom: 6px;
  font-family: 'Space Mono', monospace;
  min-height: 1.6rem;
}

.emoji-label {
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-muted);
}

/* ── Word buttons (woordjes) ── */
.word-buttons {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 16px;
}

.word-btn {
  width: 100%;
  padding: 18px 20px;
  border-radius: var(--radius);
  border: 2px solid var(--border);
  background: var(--surface);
  color: var(--text);
  font-family: 'Nunito', sans-serif;
  font-size: 1.4rem;
  font-weight: 900;
  cursor: pointer;
  transition: all 0.15s;
  text-align: center;
  letter-spacing: 0.03em;
  position: relative;
  overflow: hidden;
}
.word-btn:hover:not(:disabled) {
  border-color: var(--accent2);
  background: var(--surface2);
  transform: translateY(-2px);
  box-shadow: 0 4px 16px rgba(91,232,160,0.15);
}
.word-btn:active:not(:disabled) { transform: translateY(0); }

.word-btn.correct {
  background: rgba(91,232,160,0.12);
  border-color: var(--accent2);
  color: var(--accent2);
  animation: correctPulse 0.4s ease;
}
.word-btn.wrong {
  background: rgba(247,92,110,0.10);
  border-color: var(--accent3);
  color: var(--accent3);
  animation: wrongShake 0.3s ease;
}
.word-btn.reveal {
  background: rgba(91,232,160,0.08);
  border-color: var(--accent2);
  color: var(--accent2);
  opacity: 0.7;
}
.word-btn:disabled { cursor: default; }

@keyframes correctPulse {
  0%   { transform: scale(1); }
  50%  { transform: scale(1.03); }
  100% { transform: scale(1); }
}
@keyframes wrongShake {
  0%,100% { transform: translateX(0); }
  25%,75% { transform: translateX(-6px); }
  50%     { transform: translateX(6px); }
}

/* ── Letter buttons (letters) ── */
.letter-buttons {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  margin-bottom: 16px;
}

.letter-btn {
  padding: 24px 16px;
  border-radius: var(--radius);
  border: 2px solid var(--border);
  background: var(--surface);
  color: var(--text);
  font-family: 'Space Mono', monospace;
  font-size: 2rem;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.15s;
  text-align: center;
  text-transform: uppercase;
}
.letter-btn:hover:not(:disabled) {
  border-color: var(--accent5);
  background: var(--surface2);
  transform: translateY(-2px);
  box-shadow: 0 4px 16px rgba(196,124,247,0.15);
}
.letter-btn:active:not(:disabled) { transform: translateY(0); }

.letter-btn.correct {
  background: rgba(91,232,160,0.12);
  border-color: var(--accent2);
  color: var(--accent2);
  animation: correctPulse 0.4s ease;
}
.letter-btn.wrong {
  background: rgba(247,92,110,0.10);
  border-color: var(--accent3);
  color: var(--accent3);
  animation: wrongShake 0.3s ease;
}
.letter-btn.reveal {
  background: rgba(91,232,160,0.08);
  border-color: var(--accent2);
  color: var(--accent2);
  opacity: 0.7;
}
.letter-btn:disabled { cursor: default; }

/* ── Girl theme overrides ── */
[data-theme="girl"] .range-btn.selected { background: var(--accent1); border-color: var(--accent1); }
[data-theme="girl"] .word-btn:hover:not(:disabled)   { border-color: var(--accent1); box-shadow: 0 4px 16px rgba(247,103,154,0.15); }
[data-theme="girl"] .letter-btn:hover:not(:disabled) { border-color: var(--accent1); box-shadow: 0 4px 16px rgba(247,103,154,0.15); }
