/* quiz-core.css — shared look for the byondthewords question games
 * (Color Quest, Math Adventure, Number Quest, Word Builder, Memory Match).
 * Works together with game-core.css. Everything scales with the 1480:880 screen (--u).
 */
.stage {
  position: absolute;
  left: calc(var(--u) * 40);
  right: calc(var(--u) * 40);
  top: calc(var(--u) * 128);
  bottom: calc(var(--u) * 32);
  z-index: 10;
  display: flex;
  flex-direction: column;
  gap: calc(var(--u) * 18);
  font-family: 'Nunito', sans-serif;
  color: var(--ink);
}
.stage[hidden] { display: none; }
.q-split { flex: 1; min-height: 0; display: grid; grid-template-columns: 0.9fr 1.1fr; gap: calc(var(--u) * 30); }

.q-left, .q-card {
  background: #FFFDF8;
  border: calc(var(--u) * 5) solid #FFF;
  border-radius: calc(var(--u) * 36);
  box-shadow: 0 calc(var(--u) * 10) 0 rgba(0, 0, 0, 0.25);
  padding: calc(var(--u) * 24) calc(var(--u) * 30);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  min-height: 0;
  overflow: hidden;
}
.q-cat {
  font-family: 'Baloo 2', sans-serif;
  font-weight: 800;
  font-size: max(11px, calc(var(--u) * 24));
  letter-spacing: 0.12em;
  color: var(--coral);
  text-transform: uppercase;
}
.q-icon { font-size: max(30px, calc(var(--u) * 120)); line-height: 1.1; }
.q-visual { font-size: max(18px, calc(var(--u) * 54)); line-height: 1.25; word-break: break-word; max-width: 100%; }
.q-title {
  font-family: 'Baloo 2', sans-serif;
  font-weight: 800;
  font-size: max(18px, calc(var(--u) * 56));
  line-height: 1.15;
  color: var(--indigo-deep);
  margin: calc(var(--u) * 6) 0;
}
.q-text { font-size: max(12px, calc(var(--u) * 26)); line-height: 1.4; color: #5A5182; font-weight: 700; margin: 0; }
.swatch {
  width: calc(var(--u) * 250);
  height: calc(var(--u) * 250);
  max-height: 46%;
  border-radius: calc(var(--u) * 40);
  border: calc(var(--u) * 6) solid #FFF;
  box-shadow: 0 calc(var(--u) * 8) calc(var(--u) * 24) rgba(32, 24, 56, 0.28), 0 0 0 calc(var(--u) * 3) #D8D2EE;
  margin-top: calc(var(--u) * 10);
}

.q-right { display: flex; flex-direction: column; gap: calc(var(--u) * 18); min-height: 0; }
.opts { flex: 1; min-height: 0; display: grid; grid-template-columns: 1fr 1fr; grid-auto-rows: 1fr; gap: calc(var(--u) * 20); }

/* big friendly answer buttons (same colours as the site logo) */
[data-dwell] { position: relative; overflow: hidden; -webkit-tap-highlight-color: transparent; }
[data-dwell]::after {
  content: '';
  position: absolute;
  left: 0; bottom: 0;
  height: calc(var(--u) * 12);
  width: calc(var(--dwell, 0) * 100%);
  background: var(--indigo-deep);
  opacity: 0.85;
  border-radius: 0 calc(var(--u) * 6) calc(var(--u) * 6) 0;
  pointer-events: none;
}
.opt {
  font-family: 'Baloo 2', sans-serif;
  font-weight: 800;
  font-size: max(15px, calc(var(--u) * 44));
  color: var(--indigo-deep);
  border: calc(var(--u) * 5) solid var(--indigo-deep);
  border-radius: calc(var(--u) * 30);
  box-shadow: 0 calc(var(--u) * 8) 0 var(--indigo-deep);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: calc(var(--u) * 18);
  padding: calc(var(--u) * 10) calc(var(--u) * 16);
  transition: transform 0.12s ease, filter 0.12s ease;
}
.opt:nth-child(4n+1) { background: #FFC93C; }
.opt:nth-child(4n+2) { background: #72EFDD; }
.opt:nth-child(4n+3) { background: #FFB5A8; }
.opt:nth-child(4n+4) { background: #D5C5FF; }
.opt:hover:not(:disabled) { filter: brightness(1.06); transform: translateY(calc(var(--u) * -3)); }
.opt:active:not(:disabled) { transform: translateY(calc(var(--u) * 6)); box-shadow: 0 calc(var(--u) * 2) 0 var(--indigo-deep); }
.opt:disabled { cursor: default; }
.opt.correct { background: #5CE08A !important; outline: calc(var(--u) * 8) solid #fff; }
.opt.wrong { background: #FF8A8A !important; opacity: 0.85; }
.opt .chip {
  width: calc(var(--u) * 80);
  height: calc(var(--u) * 80);
  flex: 0 0 auto;
  border-radius: calc(var(--u) * 22);
  border: calc(var(--u) * 5) solid #fff;
  box-shadow: 0 0 0 calc(var(--u) * 3) var(--indigo-deep);
}
.opt.small-text { font-size: max(13px, calc(var(--u) * 34)); }
.opt:focus-visible, .qbtn:focus-visible { outline: calc(var(--u) * 7) solid #7C4DFF; outline-offset: 2px; }

.q-foot { display: flex; align-items: center; gap: calc(var(--u) * 16); min-height: calc(var(--u) * 84); }
.feedback {
  flex: 1;
  min-width: 0;
  border-radius: calc(var(--u) * 24);
  padding: calc(var(--u) * 10) calc(var(--u) * 22);
  font-family: 'Baloo 2', sans-serif;
  font-weight: 700;
  font-size: max(12px, calc(var(--u) * 25));
  line-height: 1.25;
  background: rgba(255, 255, 255, 0.12);
  color: #E8E4FA;
  min-height: calc(var(--u) * 72);
  display: flex;
  align-items: center;
}
.feedback.good { background: #DDF8E6; color: #136B3F; }
.feedback.bad { background: #FFE3E0; color: #A32A2A; }
.feedback.info { background: #FFF3C7; color: #7A5600; }
.qbtn {
  font-family: 'Baloo 2', sans-serif;
  font-weight: 800;
  font-size: max(13px, calc(var(--u) * 30));
  color: var(--indigo-deep);
  background: #FFC93C;
  border: calc(var(--u) * 5) solid var(--indigo-deep);
  border-radius: 999px;
  box-shadow: 0 calc(var(--u) * 7) 0 var(--indigo-deep);
  padding: calc(var(--u) * 12) calc(var(--u) * 32);
  min-height: calc(var(--u) * 76);
  cursor: pointer;
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  gap: calc(var(--u) * 8);
}
.qbtn.go { background: var(--coral); color: #fff; }
.qbtn.mint { background: var(--mint); color: #fff; }
.qbtn.lilac { background: #D5C5FF; }
.qbtn:hover:not(:disabled) { filter: brightness(1.07); }
.qbtn:active:not(:disabled) { transform: translateY(calc(var(--u) * 5)); box-shadow: 0 calc(var(--u) * 2) 0 var(--indigo-deep); }
.qbtn:disabled { opacity: 0.45; cursor: not-allowed; }
.qbtn[hidden] { display: none; }

/* ---------- Word Builder ---------- */
.wb-top { display: flex; align-items: center; gap: calc(var(--u) * 30); }
.wb-top .q-card { flex-direction: row; gap: calc(var(--u) * 30); padding: calc(var(--u) * 14) calc(var(--u) * 36); flex: 1; justify-content: flex-start; text-align: left; }
.wb-top .q-icon { font-size: max(30px, calc(var(--u) * 110)); }
.wb-slots { display: flex; justify-content: center; gap: calc(var(--u) * 16); flex-wrap: nowrap; }
.slot, .tile {
  font-family: 'Baloo 2', sans-serif;
  font-weight: 800;
  font-size: max(18px, calc(var(--u) * 62));
  width: calc(var(--u) * 120);
  height: calc(var(--u) * 120);
  border-radius: calc(var(--u) * 28);
  border: calc(var(--u) * 5) solid var(--indigo-deep);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--indigo-deep);
  cursor: pointer;
}
.slot { background: rgba(255, 255, 255, 0.14); border-style: dashed; border-color: #fff; color: #fff; }
.slot.filled { background: #fff; border-style: solid; border-color: var(--indigo-deep); color: var(--indigo-deep); box-shadow: 0 calc(var(--u) * 7) 0 var(--indigo-deep); }
.slot.right { background: #5CE08A; }
.slot:disabled { cursor: default; }
.wb-bank { display: flex; justify-content: center; gap: calc(var(--u) * 16); flex-wrap: wrap; }
.tile { box-shadow: 0 calc(var(--u) * 7) 0 var(--indigo-deep); }
.tile:nth-child(4n+1) { background: #FFC93C; }
.tile:nth-child(4n+2) { background: #72EFDD; }
.tile:nth-child(4n+3) { background: #FFB5A8; }
.tile:nth-child(4n+4) { background: #D5C5FF; }
.tile.used { visibility: hidden; }
.tile:active:not(:disabled) { transform: translateY(calc(var(--u) * 5)); box-shadow: 0 calc(var(--u) * 2) 0 var(--indigo-deep); }
.wb-actions { display: flex; justify-content: center; gap: calc(var(--u) * 16); flex-wrap: wrap; }

/* ---------- Memory Match ---------- */
.mm-area { flex: 1; min-height: 0; display: flex; align-items: center; justify-content: center; }
.mm-grid { display: grid; gap: calc(var(--u) * 14); justify-content: center; align-content: center; }
.mm-card {
  width: var(--cs);
  height: var(--cs);
  border: calc(var(--u) * 5) solid var(--indigo-deep);
  border-radius: calc(var(--u) * 24);
  background: linear-gradient(135deg, #FF6F5E, #FFC93C);
  color: #fff;
  font-family: 'Baloo 2', sans-serif;
  font-weight: 800;
  font-size: calc(var(--cs) * 0.5);
  box-shadow: 0 calc(var(--u) * 7) 0 var(--indigo-deep);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}
.mm-card .face { display: none; font-size: calc(var(--cs) * 0.56); line-height: 1; }
.mm-card.flipped { background: #fff; }
.mm-card.flipped .face { display: block; }
.mm-card.flipped .back { display: none; }
.mm-card.matched { background: #CFF7DC; box-shadow: none; transform: translateY(calc(var(--u) * 5)); cursor: default; }
.mm-card.peek { background: #FFF3C7; }
.mm-card.peek .face { display: block; }
.mm-card.peek .back { display: none; }
.mm-card:disabled { cursor: default; }

@media (max-width: 480px) {
  .opt { border-width: 2px; }
}
