/* Explicit layout regions: no learning or control UI floats over the canvas. */
body{overflow:auto;user-select:auto}#wrap{display:grid;grid-template-areas:'header' 'learning' 'field' 'answers' 'touch' 'details';grid-template-rows:auto auto minmax(110px,1fr) auto auto auto;align-items:stretch;justify-items:stretch;gap:6px;padding:6px;min-height:100dvh;height:100dvh;max-width:none;margin:auto;width:100%;position:relative}
#startPanel .card{width:min(1240px,100%);padding:clamp(16px,2.5vw,32px)}#startPanel h1{font-size:clamp(34px,4vw,56px);word-break:keep-all}#startPanel .setupGrid label{font-size:15px}#startPanel select{font-size:16px}#startPanel #startBtn{min-height:52px;font-size:19px}.playPolicy{padding:12px;border-radius:12px;background:#e8f1dc;color:#315842;font-size:15px;line-height:1.5}
#gameHeader{grid-area:header;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}#hud{position:static;transform:none;grid-column:1/-1;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));width:100%;gap:4px;order:-1}#hud .hudBox{padding:3px;font-size:12px;white-space:normal;text-align:center;line-height:1.25}
#playControls{display:contents!important;position:static}#playControls button,#mainMenuBtn,#quitGameBtn{position:static;min-height:44px;padding:6px;transform:none;font-size:14px;width:100%}
#learningArea{grid-area:learning;display:grid;grid-template-columns:1fr;gap:4px;min-width:0;max-height:clamp(80px,16dvh,180px);overflow:auto}#questionBox,#explanation{position:static;transform:none;width:100%;max-width:none;margin:0;border-radius:10px;padding:8px;text-align:center}#questionText{font-size:calc(20px * var(--reading-scale));overflow-wrap:anywhere;line-height:1.35}#questionSub{font-size:12px;line-height:1.3}#explanation{font-size:calc(16px * var(--reading-scale));line-height:1.4}#continueQuestion{width:100%;min-height:44px}
#playfield{grid-area:field;display:flex;flex-direction:column;position:relative;min-width:0;min-height:110px;overflow:hidden;border:2px solid #fff8e8;border-radius:14px;background:#142f29}#canvasPane{flex:1;min-height:0;position:relative;width:100%}#game{display:block;width:100%;height:100%;max-width:none;max-height:none;border:0;border-radius:0;box-shadow:none;position:absolute;inset:0}#bossHUD{position:static;flex:none;transform:none;width:100%;padding:4px;font-size:13px;background:linear-gradient(90deg,#ea9c91 var(--boss-health),#f8e8de var(--boss-health));border-radius:8px}
#answerBar{grid-area:answers;min-width:0}#answerAccess{position:static;transform:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));width:100%;max-width:none;gap:4px}#answerAccess button{min-width:0;min-height:44px;font-size:calc(16px * var(--reading-scale));white-space:normal;overflow-wrap:anywhere;padding:5px}#assistLabel{display:flex;align-items:center;gap:6px;min-height:32px;font-size:12px}#answerAssist{width:20px;height:20px}
#touchControls{grid-area:touch;display:grid;grid-template-columns:84px 1fr 84px;gap:8px;align-items:center;height:84px}#joystickZone{grid-column:1;grid-row:1;position:relative;inset:auto;display:block;width:80px;height:80px;margin:0;border-radius:50%;touch-action:none;transform:none;background:#3b746d33;border:2px solid #73a190}#joystickStick{width:38px;height:38px;margin-left:-19px;margin-top:-19px;background:#75a597;pointer-events:none}#dashBtn{grid-column:3;grid-row:1;position:static;display:flex;align-items:center;justify-content:center;width:80px;height:80px;font-size:16px;background:#eabd55;border-radius:50%;touch-action:none}#skillBtn{grid-column:2;grid-row:1;position:static;display:block;width:100%;min-height:44px;padding:6px;max-width:200px;justify-self:center;font-size:16px;touch-action:manipulation}
#gameDetails{grid-area:details;border-radius:8px;background:#eff5e6;min-width:0}summary{min-height:44px;display:flex;align-items:center;padding:6px;cursor:pointer}#weaponInfo,#missionInfo,#activeItems{position:static;transform:none;width:100%;max-width:none;display:block;font-size:14px;padding:6px;border:0;overflow-wrap:anywhere}#activeItems{display:flex;flex-wrap:wrap;gap:4px}#gameDetails[open]{max-height:160px;overflow:auto}
button,select,input[type=number]{min-height:44px}button{line-height:1.3}.panel{position:fixed;inset:0;padding:12px;overflow:auto}.card{width:min(1000px,100%);margin:auto;padding:20px}#gameOverPanel .row{display:block}.exports{flex-wrap:wrap}.historyRow{display:flex;gap:8px;align-items:center;min-height:44px;padding:6px;overflow-wrap:anywhere}.historyRow input{width:20px;height:20px}#recordManager{background:#f0f5e9;padding:10px;border-radius:10px}#configErrors{color:#963a2e}#loadingPanel{position:fixed;inset:0;background:#f5f1e4f5;z-index:200;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:20px;text-align:center}#toast,#achievementPop{pointer-events:none;position:fixed;left:50%;transform:translateX(-50%);top:auto;bottom:12px;max-width:90vw;z-index:120}#achievementPop{bottom:70px}#levelUpPanel{position:fixed;inset:0;overflow:auto}.levelCard{max-height:95dvh;overflow:auto}input,textarea{user-select:text}.check{min-height:44px}
body:not(.game-running) #gameHeader,body:not(.game-running) #learningArea,body:not(.game-running) #answerBar,body:not(.game-running) #touchControls,body:not(.game-running) #gameDetails{visibility:hidden}body:not(.game-running) #playfield{height:100%}[hidden]{display:none!important}.hidden{display:none!important}
@media(max-width:600px){#hud{grid-template-columns:repeat(4,minmax(0,1fr))}#hud .hudBox{font-size:11px}#answerAccess{grid-template-columns:repeat(2,minmax(0,1fr))}#assistLabel{font-size:11px}.setupGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.row{flex-wrap:wrap}#wrap{grid-template-rows:auto auto minmax(90px,1fr) auto auto auto;padding:4px;gap:4px}#playfield{min-height:90px}.card{padding:14px}#gameHeader button{font-size:12px}}
@media(orientation:landscape) and (max-height:550px){#wrap{grid-template-areas:'header header' 'field learning' 'field answers' 'touch details';grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto 84px;height:100dvh;gap:4px}#gameHeader{grid-template-columns:repeat(12,minmax(0,1fr));align-items:center}#hud{grid-column:1/9;grid-template-columns:repeat(8,minmax(0,1fr));margin:0}#gameHeader button{font-size:12px;grid-column:auto;min-height:44px}#hud .hudBox{font-size:10px}#learningArea{max-height:none}#questionSub{display:block}#questionText{font-size:calc(17px * var(--reading-scale))}#answerAccess{grid-template-columns:repeat(2,minmax(0,1fr))}#gameDetails{overflow:auto;max-height:84px}#playfield{min-height:80px}#explanation{font-size:calc(16px * var(--reading-scale))}}

/* Give the playfield more room without placing controls on top of it. */
@media(min-width:1100px) and (min-height:551px){
 #gameHeader{grid-template-columns:repeat(12,minmax(0,1fr));align-items:center}
 #hud{grid-column:1/9;margin:0}
 #touchControls{height:48px;grid-template-columns:48px 1fr 48px}
 #joystickZone,#dashBtn{width:48px;height:48px;font-size:13px}
 #joystickStick{width:24px;height:24px;margin-left:-12px;margin-top:-12px}
 #answerBar{display:flex;align-items:center;gap:8px}
 #answerAccess{flex:1}#assistLabel{flex:0 1 260px}
}
.curriculumNote{font-size:14px;line-height:1.6;padding:12px;background:#eef4e6;border-radius:12px;overflow-wrap:anywhere}
.manualIntro{line-height:1.7}.manualIntro li{margin:8px 0}.manualIntro h3{margin:16px 0 4px}
#questionVisual{max-width:420px;margin:4px auto;font-family:'Malgun Gothic',sans-serif;font-size:12px}
#questionVisual svg{display:block;width:100%;height:80px}#questionVisual table{margin:auto;border-collapse:collapse}#questionVisual td,#questionVisual th{border:1px solid #789884;padding:3px 12px}
@media(max-width:1099px) and (min-height:551px){#touchControls{height:64px;grid-template-columns:64px 1fr 64px}#joystickZone,#dashBtn{width:64px;height:64px}#joystickStick{width:32px;height:32px;margin-left:-16px;margin-top:-16px}}
#mathPopup{z-index:150;background:#173e32cc;animation:mathPopupIn .3s ease-out}@keyframes mathPopupIn{from{opacity:0}to{opacity:1}}#mathPopup .card{max-width:720px;background:#fffbed}#popupOptions{grid-template-columns:repeat(2,minmax(0,1fr))}#popupOptions button{font-size:22px;min-height:60px}#mathHintBtn{width:auto;margin:4px}
#popupVisual{max-width:420px;margin:auto}#popupVisual svg{width:100%;height:90px}#popupVisual table{margin:auto}#popupVisual td,#popupVisual th{padding:4px;border:1px solid #507961}
.adventureBanner{padding:20px;border-radius:20px;background:linear-gradient(120deg,#255e4a,#183d46);color:#fff4d7;margin:12px 0}.adventureBanner span{font-size:26px}.catalogGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px}.catalogGrid button{padding:12px;min-height:64px}.catalogEntry{padding:10px;background:#f0f4e7;border-radius:10px}.catalogEntry small{display:block;color:#527260}.catalogGrid button:disabled{opacity:.55}#v3Home details{margin:8px 0;padding:8px;border:1px solid #d5e2cc;border-radius:12px}#v3HUD{grid-column:1/-1;display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;padding:3px 8px;background:#164c41;color:#fff4d7;border-radius:8px;font-size:12px}#energyHUD{color:#a8efb1}@media(max-width:600px){.catalogGrid{grid-template-columns:repeat(2,minmax(0,1fr))}#v3HUD{font-size:10px;gap:3px}}

#merchantPopup{position:fixed;inset:0;z-index:160;display:grid;place-items:center;padding:12px;overflow:auto;background:#173e32cc}#merchantPopup .card{width:min(680px,94vw);max-height:90dvh;overflow:auto}#merchantPopup button{min-height:48px}
