/* ---------- Immersive adventure pages ---------- */
body.mini-game-page-open .mini-game-modal.open {
  display: block;
  background: #fff7df;
}
body.mini-game-page-open .teaparty-visit-btn {
  display: none !important;
  pointer-events: none !important;
}
body.mini-game-page-open .mini-game-backdrop,
body.mini-game-page-open .mini-game-card::before {
  display: none;
}
body.mini-game-page-open .mini-game-card {
  position: fixed;
  inset: 0;
  width: 100vw;
  height: 100dvh;
  min-height: 100dvh;
  max-height: 100dvh;
  padding: 0;
  overflow: hidden;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
body.mini-game-page-open .mini-game-close {
  position: fixed;
  left: max(14px, env(safe-area-inset-left));
  top: max(12px, env(safe-area-inset-top));
  z-index: 280;
  margin: 0;
}
body.mini-game-page-open .mini-guidance-toggle {
  position: fixed;
  left: max(14px, env(safe-area-inset-left));
  top: calc(max(12px, env(safe-area-inset-top)) + 58px);
  z-index: 280;
  margin: 0;
  box-sizing: border-box;
  min-height: 44px;
  background: rgba(255, 255, 255, 0.82);
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
}
body.mini-game-page-open .mini-game-kicker,
body.mini-game-page-open .mini-game-title,
body.mini-game-page-open .mini-game-prompt,
body.mini-game-page-open .mini-game-brain,
body.mini-game-page-open .mini-game-coach,
body.mini-game-page-open .mini-game-progress {
  position: fixed;
  z-index: 270;
  left: max(14px, env(safe-area-inset-left));
  max-width: min(520px, calc(100vw - 28px));
  margin: 0;
  padding: 0;
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.82);
}
body.mini-game-page-open .mini-game-kicker {
  top: calc(max(12px, env(safe-area-inset-top)) + 104px);
  padding: 5px 10px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.74);
  color: #8a2457;
  letter-spacing: 0.12em;
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
}
body.mini-game-page-open .mini-game-title {
  top: calc(max(12px, env(safe-area-inset-top)) + 140px);
  width: fit-content;
  padding: 7px 12px 8px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.72);
  color: #9b2d6a;
  font-size: clamp(24px, 3.4vw, 38px);
  line-height: 1;
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
}
body.mini-game-page-open .mini-game-prompt {
  top: calc(max(12px, env(safe-area-inset-top)) + 190px);
  padding: 7px 11px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.72);
  color: #5b2142;
  font-size: clamp(13px, 1.6vw, 16px);
  line-height: 1.2;
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
}
body.mini-game-page-open .mini-game-brain {
  top: calc(max(12px, env(safe-area-inset-top)) + 240px);
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  max-width: min(560px, calc(100vw - 28px));
  padding: 8px 11px;
  border-width: 2px;
  border-color: rgba(123, 224, 200, 0.7);
  background: rgba(232, 255, 247, 0.76);
  font-size: clamp(12px, 1.3vw, 14px);
  line-height: 1.2;
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
  pointer-events: none;
}
body.mini-game-page-open .mini-game-brain strong {
  padding: 5px 8px;
  font-size: 10px;
}
body.mini-game-page-open .mini-game-brain em {
  font-size: 11px;
}
body.mini-game-page-open .mini-game-coach {
  top: calc(max(12px, env(safe-area-inset-top)) + 308px);
  grid-template-columns: 1fr;
  gap: 6px;
  max-width: min(430px, calc(100vw - 28px));
  pointer-events: none;
}
body.mini-game-page-open .mini-game-coach span {
  padding: 7px 10px;
  background: rgba(255, 255, 255, 0.78);
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
}
body.mini-game-page-open .mini-game-coach b {
  font-size: 10px;
}
body.mini-game-page-open .mini-game-coach em {
  font-size: 12px;
  line-height: 1.18;
}
body.mini-game-page-open .mini-game-progress {
  right: max(14px, env(safe-area-inset-right));
  left: auto;
  top: max(14px, env(safe-area-inset-top));
  max-width: min(360px, calc(100vw - 148px));
  min-height: 0;
  padding: 9px 13px;
  border: 2px solid rgba(107, 34, 71, 0.16);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.78);
  color: #5b2142;
  font-size: clamp(13px, 1.4vw, 16px);
  line-height: 1.15;
  text-align: right;
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
}
body.mini-game-page-open .mini-game-feedback {
  position: fixed;
  z-index: 275;
  left: max(14px, env(safe-area-inset-left));
  bottom: calc(max(82px, env(safe-area-inset-bottom)) + 8px);
  max-width: min(520px, calc(100vw - 28px));
  min-height: 0;
  margin: 0;
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.76);
  font-size: clamp(13px, 1.5vw, 16px);
  line-height: 1.2;
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
  pointer-events: none;
}
body.ice-skate-page-open .mini-game-feedback {
  display: none;
}
@media (max-width: 520px) {
  body.mini-game-page-open .mini-game-kicker,
  body.mini-game-page-open .mini-game-prompt,
  body.mini-game-page-open .mini-game-brain em {
    display: none;
  }
  body.mini-game-page-open .mini-game-brain {
    top: calc(max(12px, env(safe-area-inset-top)) + 152px);
    max-width: calc(100vw - 28px);
    grid-template-columns: 1fr;
  }
  body.mini-game-page-open .mini-game-coach {
    top: calc(max(12px, env(safe-area-inset-top)) + 224px);
    max-width: calc(100vw - 28px);
  }
  body.mini-game-page-open .mini-game-coach span:first-child,
  body.mini-game-page-open .mini-game-coach span:nth-child(3) {
    display: none;
  }
  body.mini-game-page-open .mini-game-title {
    top: calc(max(12px, env(safe-area-inset-top)) + 106px);
    max-width: calc(100vw - 28px);
    font-size: 26px;
  }
  body.mini-game-page-open .mini-game-progress {
    top: calc(max(12px, env(safe-area-inset-top)) + 52px);
    max-width: calc(100vw - 28px);
  }
}
body.mini-game-page-open .mini-game-board {
  position: fixed;
  inset: 0;
  z-index: 245;
  width: 100vw;
  max-width: none;
  height: 100dvh;
  min-height: 100dvh;
  max-height: 100dvh;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
body.mini-game-page-open .mini-game-board::after {
  top: auto;
  right: max(14px, env(safe-area-inset-right));
  bottom: calc(max(76px, env(safe-area-inset-bottom)) + 8px);
  max-width: min(260px, calc(100vw - 28px));
}
body.mini-game-page-open .mini-game-board.word-families .word-family-stage {
  grid-template-rows: auto auto;
  align-content: start;
  width: 100%;
  min-height: 100dvh;
  padding: clamp(132px, 19dvh, 178px) clamp(12px, 2vw, 24px)
    calc(max(76px, env(safe-area-inset-bottom)) + 14px);
}
body.mini-game-page-open .adventure-goal {
  left: max(150px, env(safe-area-inset-left));
  max-width: calc(100vw - 170px);
}
body.mini-game-page-open .mini-game-board.royal-run,
body.mini-game-page-open .mini-game-board.snow-run,
body.mini-game-page-open .mini-game-board.tower-heist,
body.mini-game-page-open .mini-game-board.tower-climb,
body.mini-game-page-open .mini-game-board.unicorn-trail,
body.mini-game-page-open .mini-game-board.ribbon-dance,
body.mini-game-page-open .mini-game-board.paint-stars,
body.mini-game-page-open .mini-game-board.sprout,
body.mini-game-page-open .mini-game-board.cupcake-map,
body.mini-game-page-open .mini-game-board.chase,
body.mini-game-page-open .mini-game-board.catch,
body.mini-game-page-open .mini-game-board.memory,
body.mini-game-page-open .mini-game-board.dance,
body.mini-game-page-open .mini-game-board.pop,
body.mini-game-page-open .mini-game-board.ruby-maze,
body.mini-game-page-open .mini-game-board.butterfly-net {
  min-height: 100dvh;
}
body.mini-game-page-open .royal-run-world,
body.mini-game-page-open .snow-run-world,
body.mini-game-page-open .tower-heist-viewport,
body.mini-game-page-open .tower-climb-viewport,
body.mini-game-page-open .unicorn-world,
body.mini-game-page-open .ribbon-dance-world,
body.mini-game-page-open .mini-map-viewport,
body.mini-game-page-open .ruby-maze-world,
body.mini-game-page-open .butterfly-meadow {
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
}
body.mini-game-page-open .mini-map-layer,
body.mini-game-page-open .unicorn-map-layer,
body.mini-game-page-open .ribbon-dance-layer,
body.mini-game-page-open .royal-run-world,
body.mini-game-page-open .snow-run-world,
body.mini-game-page-open .tower-heist-map,
body.mini-game-page-open .tower-climb-map {
  min-width: 100vw;
  min-height: 100dvh;
}
body.mini-game-page-open .mini-chase-sky,
body.mini-game-page-open .mini-scene-backdrop {
  inset: 0;
  width: 100%;
  height: 100%;
}
body.mini-game-page-open .mini-game-board.chase,
body.mini-game-page-open .mini-game-board.catch,
body.mini-game-page-open .mini-game-board.memory,
body.mini-game-page-open .mini-game-board.dance,
body.mini-game-page-open .mini-game-board.pop {
  padding: clamp(96px, 18dvh, 138px) clamp(14px, 4vw, 42px)
    clamp(82px, 14dvh, 118px);
  background-size: cover;
}
@media (max-width: 720px) {
  body.mini-game-page-open .mini-game-kicker {
    display: none;
  }
  body.mini-game-page-open .mini-game-title {
    top: calc(max(12px, env(safe-area-inset-top)) + 114px);
    font-size: 24px;
  }
  body.mini-game-page-open .mini-game-prompt {
    display: none;
  }
  body.ice-skate-page-open .mini-game-kicker {
    display: none;
  }
  body.ice-skate-page-open .mini-game-title {
    top: calc(max(12px, env(safe-area-inset-top)) + 114px);
  }
  body.mini-game-page-open .mini-game-progress {
    top: calc(max(12px, env(safe-area-inset-top)) + 8px);
    right: max(12px, env(safe-area-inset-right));
    left: max(126px, calc(env(safe-area-inset-left) + 126px));
    width: auto;
    max-width: none;
    padding: 6px 10px;
    font-size: 12px;
    line-height: 1.15;
    text-align: left;
  }
  body.mini-game-page-open .mini-game-coach {
    top: calc(max(12px, env(safe-area-inset-top)) + 192px);
  }
  body.mini-game-page-open .adventure-goal,
  body.mini-game-page-open .moon-pattern-card,
  body.mini-game-page-open .mini-game-board.snow-run .snow-run-lesson-card {
    display: none;
  }
  body.mini-game-page-open .mini-game-feedback {
    bottom: calc(max(72px, env(safe-area-inset-bottom)) + 4px);
  }
}
