.adventure-viewport .world-activity.is-challenge .world-body {
 inset:max(88px,21%) 0 0;
 height:auto;
 padding:0;
 gap:0;
}

/* Keep the country picture first when the shared narrow quiz moves its score card. */
.adventure-viewport .country-quiz-scene > .quiz-score { order:0;flex-direction:column; }

@media (pointer:fine) {
 .adventure-viewport .world-activity.is-challenge .world-zoom-controls { display:flex; }
}

@media (pointer:coarse) {
 .adventure-viewport .world-zoom-controls { display:none; }
}

@media (pointer:coarse) and (orientation:landscape) {
 .adventure-viewport { width:100%;height:100dvh; }
 .adventure-viewport > .stage.fullscreen-stage { height:100dvh;min-height:0; }
 .adventure-viewport .adventure-map-stage .place { min-width:36px;min-height:36px; }
 .adventure-viewport .adventure-map-stage .heading { font-size:clamp(16px,3dvh,23px); }
 .adventure-viewport .adventure-map-stage .step-platform-number { font-size:clamp(14px,2.85cqw,23px); }

 .adventure-viewport .activity-host > .world-activity { height:100%;bottom:0;background:#eef5f8; }
 .adventure-viewport .view:has(.world-activity) { overflow:hidden; }
 .adventure-viewport .world-activity:not(.is-challenge) .world-body { inset:auto 2% 15%;height:66.6667%;padding:0; }
 .adventure-viewport .world-activity:not(.is-challenge) .world-mission-countries { top:12%;left:17%;right:17%;flex-wrap:wrap;gap:2px 4px;font-size:clamp(11px,1.55vw,15px);line-height:1.1; }
 .adventure-viewport .world-activity:not(.is-challenge) .world-stickers {
  top:auto;
  bottom:1%;
  height:calc(var(--sticker-height,40px) + 2 * var(--sticker-padding,6px) + 6px) !important;
 }
 .adventure-viewport .world-header { top:1%;left:23%;width:54%;padding:3px 6px; }
 .adventure-viewport .world-title-row { flex-direction:row;justify-content:center;gap:6px; }
 .adventure-viewport .world-title-row h1 { font-size:clamp(15px,4.6dvh,25px); }
 .adventure-viewport .world-guide-row { gap:0;margin-top:1px; }
 .adventure-viewport .world-guide-row p { line-height:1.15;margin:0; }
 .adventure-viewport .world-mission-countries [data-mission-country] { padding:2px 4px; }
 .adventure-viewport .world-activity > .world-hint { top:14%;padding:5px 10px;min-height:36px; }
 .adventure-viewport .world-activity .world-study-actions .world-completed-entry { width:clamp(90px,16vw,160px); }
 .adventure-viewport .world-activity .world-journal {
  width:min(92%,165dvh);
  max-height:96%;
  min-height:0;
  padding:clamp(22px,8dvh,65px) 8%;
  overflow:auto;
 }
 .adventure-viewport .world-activity .world-journal h2 { font-size:clamp(20px,5.5dvh,32px);margin:2px 0; }
 .adventure-viewport .world-activity .world-journal > p { font-size:clamp(13px,3.6dvh,18px);margin:2px 0; }
 .adventure-viewport .world-activity .world-journal .world-clear-actions { gap:8px; }
 .adventure-viewport .world-activity .world-journal .world-clear-actions button { min-height:38px;max-height:16dvh;max-width:28vw; }
 .adventure-viewport .world-activity:not(.is-challenge) > :is(.world-opening,.world-overlay),
 .adventure-viewport .world-activity.has-discovery,
 .adventure-viewport .world-activity:has(.country-quiz),
 .adventure-viewport .world-activity .world-discovery,
 .adventure-viewport .world-activity .word-quiz.country-quiz { height:100dvh !important; }
 .adventure-viewport .world-activity .word-quiz.country-quiz { padding:8px 4% 6px;gap:5px; }
 .adventure-viewport .country-quiz .quiz-question { width:55%;padding:3px 8px; }
 .adventure-viewport .country-quiz .quiz-question h1 { font-size:clamp(18px,5dvh,28px); }
 .adventure-viewport .country-quiz .quiz-instruction { margin:3px 0;font-size:13px; }
 .adventure-viewport .country-quiz .country-quiz-back { top:8px;left:8px; }
 .adventure-viewport .country-quiz .country-audio-controls { top:8px;right:8px;gap:3px; }
 .adventure-viewport .country-quiz .country-audio-controls .country-sound-toggle { min-width:0;padding:4px 7px;font-size:12px; }
 .adventure-viewport .country-quiz .country-name-choices button { min-height:38px;padding:3px 6px;font-size:clamp(16px,5dvh,26px); }
 .adventure-viewport .country-quiz .country-picture { padding:6px; }

 .adventure-viewport #activity-host.monster-host .monster-game > .game-header { padding:5px 2%; }
 .adventure-viewport .monster-game .lesson-board { inset:2%;padding:10px 5% 50px; }
 .adventure-viewport .monster-game .lesson-board h1 { font-size:clamp(19px,5dvh,28px);margin:4px 0; }
 .adventure-viewport .monster-game .lesson-footer { bottom:6px; }
 .adventure-viewport .monster-game .ppt-equation { padding-top:5px;gap:12px; }
 .adventure-viewport .monster-game .ppt-equation .object { width:clamp(75px,26dvh,155px);height:clamp(75px,26dvh,155px); }
 .adventure-viewport .monster-game .ppt-examples { gap:6px;margin:6px auto; }
 .adventure-viewport .monster-game .ppt-examples > div { gap:8px;font-size:clamp(19px,5dvh,30px); }
 .adventure-viewport .monster-game .ppt-examples .object { height:12dvh;width:14dvh; }
 .adventure-viewport .monster-game .ppt-examples small { margin:0;font-size:13px; }
 .adventure-viewport .monster-game .ppt-rules { gap:8px;margin:8px auto; }
 .adventure-viewport .monster-game .practice.lesson-board { padding:8px 5% 65px; }
 .adventure-viewport .monster-game .practice .practice-object { margin:4px auto;min-height:0; }
 .adventure-viewport .monster-game .practice:has(.practice-object .object) .practice-object { min-height:0; }
 .adventure-viewport .monster-game .practice .practice-object .object { height:16dvh;width:25dvh; }
 .adventure-viewport .monster-game .practice .practice-object .large-name-label { font-size:clamp(23px,8dvh,36px); }
 .adventure-viewport .monster-game .practice .sentence { margin:3px auto;padding:3px 12px; }
 .adventure-viewport .monster-game .practice .sentence > div { font-size:clamp(20px,6dvh,30px); }
 .adventure-viewport .monster-game .completion { padding:8px 20px;overflow:auto; }
 .adventure-viewport .monster-game .completion h1 { font-size:clamp(24px,7dvh,40px);margin:3px 0; }
}

/* A01-01 has less vertical space when a phone is held sideways. */
@media (pointer:coarse) and (orientation:landscape) and (max-height:520px) {
 .adventure-viewport .monster-game {
  --lesson-art:clamp(66px,25dvh,130px);
  --card-height:44px;
 }
 .adventure-viewport .monster-game .cover { top:50%;transform:translateY(-50%);padding:12px 5%;max-width:58%; }
 .adventure-viewport .monster-game .cover h1 { font-size:clamp(27px,10dvh,48px);margin:5px 0;letter-spacing:-.04em; }
 .adventure-viewport .monster-game .cover p { margin:5px 0; }
 .adventure-viewport .monster-game .cover .primary { margin-top:8px; }
 .adventure-viewport .monster-game :is(.primary,.secondary,.text-button,.header-actions button) { min-height:44px;padding:6px 14px;font-size:clamp(14px,4dvh,17px); }
 .adventure-viewport .monster-game .bottom-dialogue { min-height:0;bottom:14%;padding:6px 16px; }
 .adventure-viewport .monster-game .bottom-dialogue :is(p,.dialogue-response,.dialogue-choice) { font-size:clamp(17px,6dvh,25px);margin:2px 0; }
 .adventure-viewport .monster-game .speech { padding:8px 14px; }
 .adventure-viewport .monster-game .stage .speech p { margin:3px 0;font-size:clamp(16px,5dvh,24px); }
 .adventure-viewport .monster-game .stage .clickable-speech { padding:8px 14px; }
 .adventure-viewport .monster-game .stage .clickable-speech .need-caption { margin:3px 0;font-size:15px; }
 .adventure-viewport .monster-game .speech .speech-hint { margin-top:3px; }
 .adventure-viewport .monster-game .need-cards > div { font-size:clamp(20px,6dvh,30px);gap:6px; }
 .adventure-viewport .monster-game .need-cards .grammar { padding:3px 9px; }
 .adventure-viewport .monster-game .lesson-board:not(.practice) { inset:52px 3% 5px;padding:5px 4% 48px;overflow:auto; }
 .adventure-viewport .monster-game .translation { margin:3px 0; }
 .adventure-viewport .monster-game .intro-formula { margin:5px 0;gap:12px;font-size:clamp(22px,7dvh,34px); }
 .adventure-viewport .monster-game .intro-endings { gap:4px; }
 .adventure-viewport .monster-game .intro-endings .grammar { padding:3px 10px; }
 .adventure-viewport .monster-game .noun-to-apple { width:var(--lesson-art);height:calc(var(--lesson-art) + 22px); }
 .adventure-viewport .monster-game .noun-to-apple :is(.noun-symbol,.apple-appears) { width:var(--lesson-art);height:var(--lesson-art); }
 .adventure-viewport .monster-game .ppt-rules > div { grid-template-columns:1fr minmax(74px,24%) 1fr;width:min(100%,480px);gap:8px;font-size:clamp(17px,5dvh,24px); }
 .adventure-viewport .monster-game .ppt-rules > div > span:first-child,
 .adventure-viewport .monster-game .ppt-rules :is(.noun-box.big,.grammar,.two-syllables) { width:auto;min-width:0;min-height:0;font-size:clamp(19px,6dvh,28px); }
 .adventure-viewport .monster-game .last-syllable-guide,
 .adventure-viewport .monster-game .last-syllable-summary { margin:3px 0;font-size:clamp(14px,4dvh,18px); }
 .adventure-viewport .monster-game .last-syllable-guide small { margin-top:1px; }
 .adventure-viewport .monster-game .stage .card-tray { bottom:5px;gap:12px; }
 .adventure-viewport .monster-game .drag-card { min-width:100px;min-height:var(--card-height);padding:3px 12px;font-size:clamp(18px,6dvh,26px); }
 .adventure-viewport .monster-game .stage .drag-instruction { bottom:calc(var(--card-height) + 10px);font-size:13px; }
 .adventure-viewport .monster-game .drag-instruction small { margin:1px 0; }
 .adventure-viewport .monster-game .stage :is(.sentence,.raw-introduction) { padding:4px 12px; }
 .adventure-viewport .monster-game .stage:is([data-scene=self],[data-scene=traveler]) .sentence { bottom:calc(var(--card-height) + 58px); }
 .adventure-viewport .monster-game .drop-zone { min-width:105px;min-height:44px;padding:4px 8px; }
 .adventure-viewport .monster-game .travelers-heading { top:50px;padding:4px; }
 .adventure-viewport .monster-game .travelers-heading h1 { margin:2px;font-size:clamp(18px,6dvh,28px); }
 .adventure-viewport .monster-game .travelers-grid { top:max(114px,34%); }
 .adventure-viewport .monster-game .completion { inset:52px 5% 5px; }
 .adventure-viewport .monster-game .completion-group { height:27dvh; }
 .adventure-viewport .monster-game .finish-actions { flex-wrap:wrap;gap:7px;margin:6px 0; }
 .adventure-viewport .monster-game .success-pop:has(.reading-actions) { inset:12% 8% 4%;gap:8px;overflow:auto; }
}
