/* Viewport-fit play: supports 320px phones through large desktops without scaling text as an image. */
:root{--sb-height:100dvh;--sb-width:100vw;--sb-top:0px;--sb-bar:44px}.sb-gamebar{position:fixed;inset:var(--sb-top) 0 auto;z-index:1000;min-height:44px;height:44px;display:flex;align-items:center;justify-content:center;gap:7px;padding:3px max(6px,env(safe-area-inset-right)) 3px max(6px,env(safe-area-inset-left));background:#102c29f5;color:#edf8e9;border-bottom:1px solid #83a48666;font:12px/1.2 'Trebuchet MS',Arial,sans-serif;box-sizing:border-box}.sb-gamebar-title{font-weight:bold;margin-right:auto;white-space:nowrap;padding-left:7px}.sb-gamebar button,.sb-gamebar a{font:inherit;border:1px solid #8cae9d;background:#244b42;color:#f4ffe9;padding:7px 9px;min-height:36px;border-radius:6px;cursor:pointer;text-decoration:none;white-space:nowrap}.sb-gamebar button:focus-visible,.sb-gamebar a:focus-visible{outline:3px solid #f5d477;outline-offset:1px}.sb-display-message:empty{display:none}.sb-display-message{position:absolute;top:45px;left:8px;right:8px;background:#fff2bb;color:#264334;padding:10px;border-radius:7px;font-size:12px}.sb-game-help{max-height:calc(var(--sb-height) - 60px);width:min(560px,calc(100% - 24px));overflow:auto;border:1px solid #a3b49a;border-radius:14px;background:#fffdf0;color:#244535;padding:24px;z-index:1100}.sb-game-help::backdrop{background:#0b2124d9}.sb-game-help h2{font:28px/1.2 Georgia,serif}.sb-game-help p{font:15px/1.8 'Trebuchet MS',sans-serif;white-space:pre-line}.sb-game-help button{padding:12px 18px;background:#285a43;color:white;border:0;border-radius:7px}.sb-play-dock{display:none}body[data-screen-game]{padding-top:44px!important}body.sb-fit{overflow:hidden!important;overscroll-behavior:none;height:var(--sb-height)!important}body.sb-fit>header,body.sb-fit>footer,body.sb-fit>.site-return{display:none!important}.sb-fit .sb-gamebar{height:calc(44px + env(safe-area-inset-top))!important;padding-top:calc(3px + env(safe-area-inset-top))}
/* Canvas arcade: fit the bitmap and the touch controls into separate, non-overlapping rectangles. */
.sb-fit[data-screen-game=arcade] #stage,.sb-fit[data-screen-game=rally] #stage{position:fixed!important;inset:calc(var(--sb-top) + var(--sb-bar)) 0 auto!important;width:var(--sb-width)!important;height:calc(var(--sb-height) - var(--sb-bar))!important;max-width:none!important;max-height:none!important;aspect-ratio:auto!important;border:0!important;border-radius:0!important;display:flex!important;align-items:center;justify-content:flex-start;flex-direction:column;background:#080f20;z-index:900;overflow:hidden!important}.sb-fit #stage canvas{width:var(--sb-canvas-width)!important;height:var(--sb-canvas-height)!important;max-width:none!important;max-height:none!important;flex-shrink:0;object-fit:contain;touch-action:none}.sb-fit #stage .sb-play-dock{display:flex;align-items:center;justify-content:center;width:100%;min-height:56px;padding:4px 8px max(4px,env(safe-area-inset-bottom));box-sizing:border-box;flex-shrink:0}.sb-fit .sb-play-dock .touch-controls,.sb-fit .sb-play-dock .rally-controls{display:flex!important;gap:7px;justify-content:center;align-items:center;margin:0!important;flex-wrap:nowrap}.sb-fit .sb-play-dock button{min-height:44px;min-width:44px;font-size:13px;padding:9px 14px;touch-action:none}.sb-fit .sb-play-dock .jump-button{min-width:90px}.sb-fit #stage .hud,.sb-fit #stage .rally-hud{width:var(--sb-canvas-width);left:50%;right:auto;transform:translateX(-50%);box-sizing:border-box}.sb-fit #stage .screen{inset:0 0 56px!important;padding:18px!important;overflow:auto;overscroll-behavior:contain;align-items:safe center}.sb-fit #stage .screen-content{max-height:100%;overflow:auto;padding:10px;box-sizing:border-box}.sb-fit #stage .fullscreen-tools{display:none!important}.sb-fit .battle-banner,.sb-fit .rally-warning{max-width:100%}body:not(.sb-fit) .sb-play-dock{display:flex;justify-content:center;padding:5px;background:#102039}.sb-fit[data-screen-game=arcade] .game-toolbar,.sb-fit[data-screen-game=rally] .game-toolbar{visibility:hidden}
/* Number and word boards: preserve readable clues and touch targets; use available space for the board. */
.sb-fit[data-screen-game=math] .game,.sb-fit[data-screen-game=word] .game{position:fixed!important;inset:calc(var(--sb-top) + var(--sb-bar)) 0 auto!important;height:calc(var(--sb-height) - var(--sb-bar))!important;width:var(--sb-width)!important;max-width:1200px!important;left:50%!important;transform:translateX(-50%);display:flex!important;flex-direction:column!important;min-height:0!important;border-radius:0!important;z-index:900;overflow:hidden!important;background:#f5f5e5}.sb-fit[data-screen-game=math] .game .scene,.sb-fit[data-screen-game=word] .game .scene,.sb-fit .game>.level-scripture,.sb-fit .game>.story-strip{display:none!important}.sb-fit .game>.toolbar{flex-shrink:0;padding:4px 8px!important;min-height:38px}.sb-fit .stats{font-size:9px!important;gap:12px!important}.sb-fit .stats b{font-size:17px!important}.sb-fit .toolbar-actions{gap:4px!important}.sb-fit .toolbar-actions button{min-height:32px!important;font-size:10px!important;padding:5px 7px!important}.sb-fit .toolbar-actions #pause{display:none!important}.sb-fit .game>.mission{margin:2px 6px!important;padding:3px!important;flex-shrink:0;max-height:20%;overflow:auto}.sb-fit .game>.mission h2{font-size:clamp(15px,2.5vh,24px)!important;line-height:1.2!important;margin:1px!important}.sb-fit .game>.mission small{display:none!important}.sb-fit .game>.harvest{margin:2px 6px!important;padding:2px 6px!important;font-size:10px!important;flex-shrink:0}.sb-fit .game>.power-strip,.sb-fit .game>.learning-mode-strip,.sb-fit .game>.reading-mode-strip,.sb-fit .game>.feedback{margin:1px 6px!important;padding:2px 5px!important;font-size:10px!important;line-height:1.2;min-height:0!important;flex-shrink:0}.sb-fit .game>.board-wrap{flex:1!important;min-height:0!important;height:auto!important;padding:3px 6px!important;width:100%;box-sizing:border-box}.sb-fit .board{height:100%!important;min-height:0!important;max-height:none!important;grid-auto-rows:minmax(0,1fr)!important;gap:3px!important;border-width:3px!important}.sb-fit .cell{min-height:0!important;min-width:0!important;height:100%!important;overflow:hidden}.sb-fit[data-screen-game=math] .cell .answer{font-size:clamp(14px,3.2vh,28px)!important}.sb-fit[data-screen-game=math] .cell .num{font-size:clamp(12px,2.6vh,20px)!important}.sb-fit[data-screen-game=word] .cell .answer{font-size:clamp(11px,2.4vh,21px)!important;line-height:1.12!important}.sb-fit[data-screen-game=word] .cell .num{font-size:clamp(10px,2.1vh,17px)!important}.sb-fit .game>.game-footer{flex-shrink:0;margin:2px 6px!important;padding:3px 6px max(3px,env(safe-area-inset-bottom))!important;justify-content:center!important;gap:4px!important;min-height:48px;box-sizing:border-box}.sb-fit .game-footer>span{display:none!important}.sb-fit .controls{display:flex!important;gap:4px!important;justify-content:center;flex-wrap:nowrap!important}.sb-fit .controls button{min-height:44px!important;height:44px!important;min-width:40px!important;font-size:13px!important;padding:5px 8px!important}.sb-fit .game .overlay{overflow:auto;padding:15px!important}.sb-fit .game .overlay p{font-size:14px!important}.sb-fit .game .overlay .welcome-look{max-width:90px;max-height:90px}.sb-fit #passage-dialog{max-height:calc(var(--sb-height) - 70px);overflow:auto}
/* Typing: artwork yields space to the keyboard and the actual typing task. */
.sb-fit[data-screen-game=typing] #gameScreen{position:fixed!important;inset:calc(var(--sb-top) + var(--sb-bar)) 0 auto!important;width:var(--sb-width)!important;max-width:1300px!important;left:50%!important;transform:translateX(-50%);height:calc(var(--sb-height) - var(--sb-bar))!important;padding:6px!important;margin:0!important;display:flex!important;flex-direction:column;overflow:hidden;z-index:900;box-sizing:border-box}.sb-fit #gameScreen>.intro,.sb-fit #gameScreen>footer{display:none!important}.sb-fit #gameScreen>.layout{flex:1;min-height:0;display:flex!important;gap:0;margin:0!important}.sb-fit #gameScreen .map{display:none!important}.sb-fit #gameStage{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;border-radius:10px}.sb-fit #gameStage .gamebar{padding:6px 12px;flex-shrink:0}.sb-fit #gameStage .gamebar h2{font-size:15px}.sb-fit #gameStage .gamebar p{font-size:10px}.sb-fit #gameStage .mission-strip{padding:5px 10px;min-height:0;flex-shrink:0}.sb-fit #gameStage .mission-strip h3{font-size:13px;margin:2px}.sb-fit #gameStage .mission-strip p,.sb-fit #gameStage .mission-strip .eyebrow,.sb-fit #gameStage .companion-panel{display:none}.sb-fit #gameStage .read-entry{font-size:10px;min-height:30px;padding:4px 8px;margin:2px}.sb-fit #gameStage .art{flex:1;min-height:60px;height:auto!important;aspect-ratio:auto!important}.sb-fit #gameStage .art>svg{height:100%;width:100%;object-fit:cover}.sb-fit #gameStage .reward{font-size:10px;bottom:5px;max-width:95%;white-space:normal;padding:5px 9px;text-align:center}.sb-fit #gameStage .practice{flex-shrink:0;padding:6px 12px;max-height:65%;overflow:auto}.sb-fit #gameStage .target{font-size:clamp(18px,3.5vh,31px);min-height:32px;line-height:1.35;max-height:100px;overflow:auto;overflow-wrap:anywhere}.sb-fit #gameStage #typing{font-size:20px;padding:9px;height:46px;min-height:44px;box-sizing:border-box;max-width:100%}.sb-fit #gameStage .instruction{margin:4px 0;font-size:11px}.sb-fit #gameStage .key-guide{padding:5px 9px;font-size:12px;margin:4px 0}.sb-fit #gameStage .streak-count,.sb-fit #gameStage .cheer{font-size:10px;min-height:0;margin:3px}.sb-fit #gameStage .hint{font-size:11px;min-height:16px;margin:4px}.sb-fit #gameStage .controls{margin:4px 0}.sb-fit #gameStage .controls>span{display:none}.sb-fit #gameStage .progressline{font-size:9px}.sb-fit #gameStage .finish{max-height:100%;overflow:auto}.sb-fit.sb-short #gameStage .art,.sb-fit.sb-short #gameStage .mission-strip,.sb-fit.sb-short #gameStage .streak-count,.sb-fit.sb-short #gameStage .cheer,.sb-fit.sb-short #gameStage label[for=typing]{display:none!important}.sb-fit.sb-short #gameStage .practice{flex:1;min-height:0;max-height:none}.sb-fit.sb-short #gameStage .gamebar p{display:none}.sb-fit.sb-short #gameStage .target{font-size:18px;max-height:65px}
/* Quiz: question, answers and next action stay in view; long teaching text gets its own reading area. */
.sb-fit[data-screen-game=quiz] #mission{position:fixed;top:calc(var(--sb-top) + var(--sb-bar));left:50%;transform:translateX(-50%);width:var(--sb-width);max-width:1200px;height:calc(var(--sb-height) - var(--sb-bar));display:flex;flex-direction:column;padding:6px;box-sizing:border-box;z-index:900;background:#fcfaf3}.sb-fit #mission .quiz-progress{margin:0;padding:5px;min-height:28px;flex-shrink:0;font-size:10px}.sb-fit #mission .quiz-card{flex:1;min-height:0;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}.sb-fit #mission .quiz-card figure{min-height:0;overflow:hidden}.sb-fit #mission .quiz-card figure img{min-height:0;height:100%;max-height:none}.sb-fit #mission .quiz-card figcaption{font-size:9px;padding:6px}.sb-fit #mission .question-panel{padding:12px;min-height:0;display:flex;flex-direction:column;gap:8px;overflow:hidden}.sb-fit #mission .question-panel>.eyebrow{font-size:9px;margin:0;flex-shrink:0}.sb-fit #mission #question{font-size:clamp(17px,2.8vh,27px);line-height:1.25;margin:0;flex-shrink:0;max-height:30%;overflow:auto}.sb-fit #mission .quiz-answers{flex:1;min-height:0;gap:7px;grid-template-rows:repeat(4,minmax(44px,1fr));overflow:auto}.sb-fit #mission .quiz-answer{font-size:13px;line-height:1.35;padding:8px 10px;min-height:44px}.sb-fit #mission .passage-note{margin:0;font-size:11px;flex-shrink:0}.sb-fit #mission .quiz-feedback{margin:0;padding:14px;flex:1;min-height:0;overflow:auto}.sb-fit #mission .quiz-feedback p{font-size:14px;line-height:1.7}.sb-fit #mission #next{flex-shrink:0;min-height:44px;padding:10px}.sb-fit.sb-answered #mission .quiz-answers{display:none}.sb-fit[data-screen-game=burrow] #world{top:44px;height:calc(var(--sb-height) - var(--sb-bar))}.sb-fit[data-screen-game=burrow] .site-return{display:none!important}.sb-fit[data-screen-game=burrow] .hud-top{top:50px!important}.sb-fit[data-screen-game=burrow] #pauseScreen,.sb-fit[data-screen-game=burrow] #results{top:44px;height:calc(var(--sb-height) - var(--sb-bar));box-sizing:border-box;overflow:auto}.sb-fit[data-screen-game=burrow] .dialog{max-height:calc(var(--sb-height) - 70px);overflow:auto}
@media(max-width:650px){.sb-gamebar{gap:4px;font-size:10px}.sb-gamebar-title{display:none}.sb-gamebar button,.sb-gamebar a{padding:6px 7px;min-height:36px}.sb-fit #stage .screen{padding:8px!important}.sb-fit #stage .screen h2{font-size:25px!important}.sb-fit #stage .screen p{font-size:12px!important}.sb-fit #stage .hud{padding:8px 10px;font-size:9px}.sb-fit .sb-play-dock button{padding:8px 10px;font-size:11px}.sb-fit[data-screen-game=quiz] #mission .quiz-card{display:flex;flex-direction:column}.sb-fit #mission .quiz-card figure{height:100px;flex-shrink:0}.sb-fit #mission .quiz-card figure img{width:100%;height:100px;object-fit:cover}.sb-fit #mission .quiz-card figcaption{display:none}.sb-fit #mission .question-panel{flex:1;padding:10px}.sb-fit #mission .quiz-answer{font-size:12px}.sb-fit #mission #question{font-size:18px}.sb-fit #gameStage .gamebar h2{font-size:13px}.sb-fit #gameStage .pill{font-size:9px;padding:5px}.sb-fit .toolbar{flex-wrap:nowrap!important}.sb-fit .toolbar-actions #music{display:none}.sb-fit .controls button{min-width:36px!important;padding:5px!important}.sb-fit .controls .eat{min-width:65px!important}}
@media(orientation:landscape) and (max-height:550px){.sb-fit[data-screen-game=math] .game,.sb-fit[data-screen-game=word] .game{display:grid!important;grid-template-columns:minmax(200px,32%) minmax(0,1fr)!important;grid-template-rows:auto auto auto auto 1fr auto!important;gap:0}.sb-fit .game>.toolbar{grid-column:1;grid-row:1;flex-wrap:wrap!important}.sb-fit .game>.mission{grid-column:1;grid-row:2;max-height:100px}.sb-fit .game>.learning-mode-strip,.sb-fit .game>.reading-mode-strip{grid-column:1;grid-row:3}.sb-fit .game>.harvest{grid-column:1;grid-row:4}.sb-fit .game>.power-strip{display:none}.sb-fit .game>.feedback{grid-column:1;grid-row:5;align-self:end}.sb-fit .game>.board-wrap{grid-column:2!important;grid-row:1/7!important;height:100%!important}.sb-fit .game>.game-footer{grid-column:1;grid-row:6;flex-wrap:wrap!important;min-height:48px}.sb-fit .game .toolbar-actions button{font-size:9px!important;padding:4px!important}.sb-fit .game .mission h2{font-size:14px!important}.sb-fit .board-bean{max-height:50%!important}.sb-fit[data-screen-game=quiz] #mission .quiz-card{display:grid;grid-template-columns:30% 70%}.sb-fit #mission .quiz-card figure{height:100%}.sb-fit #mission .quiz-card figure img{height:100%}.sb-fit #mission #question{font-size:16px}.sb-fit #mission .quiz-answer{font-size:11px;padding:5px 8px}.sb-fit #mission .quiz-answers{grid-template-columns:1fr 1fr;grid-template-rows:repeat(2,minmax(44px,1fr))}.sb-fit #mission .question-panel>.eyebrow{display:none}.sb-fit.sb-short #gameStage .practice{display:flex;flex-direction:column}.sb-fit #stage .screen h2{font-size:22px!important;margin:7px!important}.sb-fit #stage .screen p{margin:8px 0;font-size:11px!important}#checkpoint-upgrades .upgrade-item p,#shop .upgrade-item p{display:none}}

.sb-fit[data-screen-game=burrow] #world{top:var(--sb-bar)}.sb-fit[data-screen-game=burrow] .hud-top{top:calc(var(--sb-bar) + 6px)!important}.sb-fit[data-screen-game=burrow] #pauseScreen,.sb-fit[data-screen-game=burrow] #results{top:var(--sb-bar)}
