.game .quest-chip{position:absolute;top:7px;left:50%;transform:translateX(-50%);z-index:5;padding:5px 17px;border-radius:50px;background:#174466ed;border:3px solid white;color:white;font-size:clamp(16px,2.6vw,26px);font-weight:950;white-space:nowrap}
.level-8 .game .tile{padding-top:36px;max-width:30%}
.light-game,.builder-game,.path-game,.spotlight-game,.action-show,.parade-game{flex-direction:column;align-items:center;justify-content:space-evenly}
.colour-lamp{flex:1;min-height:0;aspect-ratio:1;border-radius:50%;max-width:230px;background:#2487d8;border:9px solid #fffd;box-shadow:inset -18px -24px 35px #122d4677,0 0 45px #83daff,0 14px 10px #0003;transition:background .3s}
.colour-lamp[data-colour=red]{background:#fb514e;box-shadow:0 0 45px #ff8585}.colour-lamp[data-colour=yellow]{background:#ffd34e;box-shadow:0 0 45px #fff0a2}
.light-choices,.part-tray{display:flex;gap:12px;height:25%;min-height:50px;width:100%}.light-choice,.part{flex:1;cursor:pointer;border:4px solid white;border-radius:22px;font-size:clamp(14px,2.8vw,25px);font-weight:950;box-shadow:0 9px 0 #113c5360}.light-choice{color:#fff;text-shadow:0 2px 5px #0006;text-transform:uppercase}.light-choice.red{background:#d93039}.light-choice.blue{background:#2576d2}.light-choice.yellow{background:#e9b529}
.train-model{position:relative;height:58%;width:min(520px,88%);filter:drop-shadow(0 16px 10px #231e2355)}.train-body,.train-roof,.train-wheels{position:absolute;opacity:.13;transition:opacity .3s;left:50%;transform:translateX(-50%)}.train-body{bottom:23%;width:64%;height:44%;border-radius:25px 35px 15px 15px;background:linear-gradient(130deg,#ff534b,#a71a36);border:8px solid #ffe6a1}.train-roof{bottom:63%;width:42%;height:28%;border-radius:28px 28px 5px 5px;background:linear-gradient(#30c9df,#1559a5);border:7px solid #e6faff}.train-wheels{bottom:5%;width:68%;height:28%;display:flex;align-items:center;justify-content:space-around}.train-wheels i{width:23%;aspect-ratio:1;background:radial-gradient(circle,#e5f5ff 0 20%,#2d4560 22% 60%,#111e31 63%);border:5px solid #8398ad;border-radius:50%}.train-model.has-wheel .train-wheels,.train-model.has-body .train-body,.train-model.has-roof .train-roof{opacity:1}.part{background:linear-gradient(145deg,#fff2b6,#f5bf54);color:#22415b}.part.good{background:#90ebbd}.part:disabled{opacity:.65}
.odd-game .tile{max-width:24%;padding-top:15px}.odd-game .tile img{height:85%}
.path-trail{height:30%;width:90%;position:relative;border-bottom:15px dotted #fdf3c9;filter:drop-shadow(0 5px 4px #1237)}.path-token{position:absolute;left:10%;bottom:-18px;width:52px;height:52px;border-radius:50%;border:5px solid white;background:#f9bc40;color:#fff;font-size:30px;text-align:center;line-height:40px;transition:left .35s}.path-choices,.action-choices,.parade-choices{display:flex;width:100%;height:54%;gap:10px}.path-choices .tile,.action-choices .tile,.parade-choices .tile{max-width:33%}
.spotlight-panel{position:relative;height:76%;min-height:0;max-width:380px;width:75%;border:7px solid white;border-radius:26px;background:radial-gradient(circle,#faf7e4,#8dbecb);overflow:hidden;touch-action:none;box-shadow:0 8px 0 #16416855}.spotlight-panel>img{width:100%;height:100%;object-fit:contain}.spotlight-cover{position:absolute;inset:0;background:radial-gradient(circle 70px at var(--px,50%) var(--py,50%),transparent 0,transparent 88%,#0c2238eb 100%);pointer-events:none}.spotlight-cover.revealed{background:transparent}.spotlight-orb{display:none}.discover{border:4px solid white;border-radius:50px;background:#ffc654;color:#244260;font-size:clamp(16px,2.6vw,25px);font-weight:950;padding:8px 22px;box-shadow:0 6px #ad7a39;cursor:pointer}.discover:disabled{opacity:.6}
.action-choices .tile{padding-top:25px}.action-choices .tile img{height:76%;max-height:76%}.parade-line{height:38%;min-height:0;display:flex;justify-content:center;align-items:flex-end;width:100%;gap:6%;border-bottom:9px solid #e8c28c}.parade-toy{width:22%;height:95%;object-fit:contain;filter:drop-shadow(0 10px 7px #0003);animation:parade-in .45s both}.parade-choices{height:46%}.parade-choices .tile img{max-height:87%}@keyframes parade-in{from{opacity:0;transform:translateX(-40px) scale(.6)}to{opacity:1;transform:translateX(0) scale(1)}}
@media(max-height:650px){.colour-lamp{max-width:160px}.train-model{height:52%}.part-tray{height:30%}.path-trail{height:24%}.spotlight-panel{height:68%}.parade-line{height:32%}}
@media(max-width:560px){.part-tray,.light-choices{gap:4px}.part,.light-choice{border-width:2px}.game .quest-chip{font-size:15px}.path-token{height:38px;width:38px;line-height:28px;font-size:23px}.spotlight-panel{width:92%}}
/* Hero-sized full-body action photography with readable choices. */
.big-action-game{flex-direction:column;align-items:center;justify-content:space-around;gap:9px}.action-feature{height:72%;width:min(590px,95%);min-height:0;display:flex;justify-content:center;align-items:center;border:5px solid #fff9;border-radius:24px;background:#ffeedbd9;box-shadow:0 10px 22px #102f4950;overflow:hidden}.action-feature>img{display:block;width:100%;height:100%;object-fit:contain;object-position:center;filter:drop-shadow(0 7px 12px #30424a22)}.action-words{width:min(760px,100%);height:22%;min-height:48px;display:flex;gap:12px}.action-word{flex:1;border:4px solid white;border-radius:18px;background:linear-gradient(140deg,#2d84b9,#164878);box-shadow:0 7px 0 #16415c88;color:white;font-size:clamp(17px,3vw,29px);font-weight:1000;cursor:pointer}.action-word.good{background:linear-gradient(#33d9a2,#18935f)}
.do-it-game .action-feature{height:74%}.did-it{width:min(500px,100%);height:21%;min-height:43px;border:4px solid white;border-radius:24px;background:linear-gradient(145deg,#ffd978,#f1a62e);font-size:clamp(18px,3vw,30px);font-weight:1000;color:#254866;box-shadow:0 7px #a67031;cursor:pointer}
.scratch-game{flex-direction:column;align-items:center;justify-content:center;gap:10px}.scratch-frame{position:relative;width:min(420px,90%);height:73%;min-height:0;background:#fff1d6;border:7px solid #fff;border-radius:22px;overflow:hidden;box-shadow:0 9px #0d3f5888}.scratch-frame>img{width:100%;height:100%;object-fit:contain}.scratch-frame>canvas{position:absolute;inset:0;width:100%;height:100%;touch-action:none;transition:opacity .6s}.scratch-fallback{min-height:42px;height:18%;border:4px solid white;border-radius:50px;background:#fbc35d;color:#234660;font-size:clamp(17px,2.7vw,26px);font-weight:1000;padding:5px 25px;cursor:pointer}.scratch-fallback:disabled{opacity:.53}
/* Six large, fully visible memory cards: 3 x 2 instead of a ragged 4 x 2 grid. */
.level-4 .memory{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));width:min(790px,100%);gap:clamp(6px,1.5vw,13px);padding:10px}.level-4 .memory .tile{min-height:0;max-height:100%;overflow:hidden}.level-4 .memory .tile img{height:85%;max-height:85%;object-fit:contain}
@media(max-height:650px){.action-feature{height:65%}.do-it-game .action-feature{height:67%}.scratch-frame{height:63%}.level-4 .memory{padding:4px}}
@media(max-width:560px){.action-feature{width:100%;height:68%}.action-words{gap:4px}.action-word{border-width:2px}.scratch-frame{width:92%}.level-4 .memory{gap:5px}}
.listen-judge-game .action-feature{height:74%;max-width:620px;width:min(620px,100%);background:radial-gradient(circle at center,#fff3e2,#d7bda8);border-radius:30px}.judge-choices{display:flex;gap:32px;height:21%;width:min(500px,100%);justify-content:center}.judge-option{width:42%;border:6px solid white;border-radius:24px;box-shadow:0 8px 0 #123d5360;color:white;font-size:clamp(40px,6vw,72px);font-weight:1000;cursor:pointer}.judge-option.yes,.did-it{background:linear-gradient(135deg,#2cce8a,#087a5b);color:white}.judge-option.no{background:linear-gradient(135deg,#ff8b90,#be3d56)}.judge-option.good{filter:brightness(1.35)}.do-it-game .did-it{font-size:clamp(40px,6vw,68px)}
/* Portrait composition: enlarge the whole child without severing head or feet. */
.listen-judge-game .action-feature,.do-it-game .action-feature{width:min(340px,95%);max-width:340px;background:#f5e5d5;border-color:#fff;border-radius:22px}
.listen-judge-game .action-feature>img,.do-it-game .action-feature>img{object-fit:contain;transform:translateY(11%) scale(1.36);transform-origin:center center}
.level-3 .game,.level-14 .game{padding:9px}
.screen.level-3,.screen.level-14{gap:3px}
@media(max-width:560px){.listen-judge-game .action-feature,.do-it-game .action-feature{width:min(290px,94%)}.judge-choices{gap:12px}.judge-option{border-width:4px}}

/* Action rounds: the progress label must never cover a child's face.
   Three real rows fit the progress, complete photograph and answer buttons. */
.level-3 .listen-judge-game,
.level-14 .do-it-game{
  display:grid;
  grid-template-rows:minmax(28px,auto) minmax(0,1fr) minmax(54px,22%);
  justify-items:center;
  align-items:stretch;
  gap:clamp(5px,1vh,12px);
  min-height:0;
  padding:clamp(6px,1.5vh,13px);
}
.level-3 .listen-judge-game .quest-chip,
.level-14 .do-it-game .quest-chip{
  position:static;
  transform:none;
  justify-self:center;
  align-self:center;
  padding:3px 17px;
  line-height:1.2;
  font-size:clamp(16px,2vw,24px);
}
.level-3 .listen-judge-game .action-feature,
.level-14 .do-it-game .action-feature{
  width:min(440px,100%);
  max-width:100%;
  height:100%;
  min-height:0;
  border-radius:18px;
  overflow:hidden;
}
.level-3 .listen-judge-game .action-feature>img,
.level-14 .do-it-game .action-feature>img{
  width:100%;height:100%;
  object-fit:contain;
  object-position:center;
  transform:none;
}
.level-3 .judge-choices,
.level-14 .did-it{
  width:min(500px,100%);
  height:100%;
  min-height:0;
}
.level-3 .judge-option{width:44%;font-size:clamp(32px,5vw,55px);line-height:1}
.level-14 .did-it{max-width:360px}
@media(max-height:560px){
  .screen.level-3 .tag,.screen.level-3 .headline,.screen.level-3 .hint,
  .screen.level-14 .tag,.screen.level-14 .headline,.screen.level-14 .hint{display:none}
  .screen.level-3 .listen,.screen.level-14 .listen{padding:5px 24px}
  .screen.level-3 .game,.screen.level-14 .game{max-height:none}
  .screen.level-3 .feedback,.screen.level-14 .feedback{min-height:18px;font-size:16px}
}

/* No picture cards: the children are transparent cutouts in the playroom.
   Each pictured action moves independently, with a still-image fallback. */
.level-3 .listen-judge-game .action-feature,
.level-14 .do-it-game .action-feature{
  background:transparent;
  border:0;
  border-radius:0;
  box-shadow:none;
  overflow:visible;
  width:min(490px,100%);
}
.level-3 .listen-judge-game .action-feature>img,
.level-14 .do-it-game .action-feature>img{
  max-width:100%;
  max-height:100%;
  filter:drop-shadow(0 12px 8px #27343b55);
  will-change:transform;
}
.action-feature[data-action="jump"]>img{animation:pk-jump 1.4s ease-in-out infinite}
.action-feature[data-action="run"]>img{animation:pk-run 1.05s ease-in-out infinite}
.action-feature[data-action="dance"]>img{animation:pk-dance 1.2s ease-in-out infinite}
@keyframes pk-jump{
  0%,100%{transform:translateY(4%) scale(.96)}
  38%{transform:translateY(-8%) scale(1.04)}
  65%{transform:translateY(-4%) scale(1.01)}
}
@keyframes pk-run{
  0%,100%{transform:translate(-6%,1%) rotate(-3deg)}
  50%{transform:translate(6%,-2%) rotate(3deg)}
}
@keyframes pk-dance{
  0%,100%{transform:translateX(0) rotate(0deg)}
  25%{transform:translate(-5%,-2%) rotate(-6deg)}
  75%{transform:translate(5%,-2%) rotate(6deg)}
}
@media(prefers-reduced-motion:reduce){
  .action-feature[data-action]>img{animation:none!important;will-change:auto}
}

/* Toy Builder: concrete, large visual parts instead of abstract symbols. */
.builder-game .part-tray{height:34%;min-height:68px;max-height:138px;gap:clamp(6px,1.5vw,16px)}
.builder-game .train-model{height:54%;max-height:270px}
.builder-game .part{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  min-width:0;padding:4px 7px;gap:2px;
  background:#ffefc9;color:#184568;border:4px solid white;
  box-shadow:0 6px 0 #113c5360;
}
.builder-game .part-picture{display:block;width:100%;height:72%;min-height:0}
.builder-game .part-picture svg{display:block;width:100%;height:100%}
.builder-game .part-name{font-size:clamp(12px,1.8vw,19px);line-height:1.1;letter-spacing:.03em}
.builder-game .part.good:disabled{opacity:.65;background:#d6ffe8}
.builder-game .train-model[data-next="wheel"] .train-wheels,
.builder-game .train-model[data-next="body"] .train-body,
.builder-game .train-model[data-next="roof"] .train-roof{
  opacity:.43;filter:drop-shadow(0 0 9px #fff2a8);
  animation:builder-cue 1.1s ease-in-out infinite alternate;
}
@keyframes builder-cue{from{opacity:.23}to{opacity:.65}}
@media(max-height:560px){
  .builder-game .train-model{height:49%}
  .builder-game .part-tray{height:38%;min-height:56px}
  .builder-game .part-name{font-size:12px}
}
@media(prefers-reduced-motion:reduce){.builder-game .train-model[data-next]>*{animation:none!important}}
