html,body{overscroll-behavior:none}
@media (max-width:900px) and (orientation:portrait){
  body{height:100dvh;min-height:0;overflow:hidden;background:#fffdf3}
  .game-shell{height:100dvh;min-height:0;display:flex;flex-direction:column;overflow:hidden;background:#fffdf3}
  .board-wrap{flex:0 0 auto;align-self:center;width:min(100%,calc(52dvh * 1.33518));max-height:52dvh;border-width:3px;border-radius:0 0 16px 16px;box-shadow:0 8px 22px #0007}
  .control-panel{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:12px max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));gap:9px;justify-content:flex-start;box-shadow:0 -8px 22px #0005}
  .control-panel header{display:grid;grid-template-columns:auto 1fr;gap:3px 9px;align-items:center;text-align:left}
  .kindergarten-name{display:none}
  .stage-pill{grid-row:1/3;padding:6px 10px;font-size:11px;white-space:nowrap}
  h1{margin:0;font-size:clamp(19px,5vw,25px);line-height:1.12}
  #coach{margin:0;font-size:13px;line-height:1.25}
  #mission.condition-rule{gap:5px;margin:4px 0;font-size:12px}.rule-token{gap:4px;padding:6px 7px;border-width:2px;border-radius:8px}.rule-token i{font-size:15px}.rule-next{font-size:14px}
  .maze-selector{grid-template-columns:1fr 1fr;gap:6px}.maze-choice{min-height:49px;padding:5px 7px}.maze-choice b{font-size:13px}.maze-choice span{font-size:11px}
  .direction-pad{max-width:390px;gap:6px}
  .move{min-height:64px;border-radius:14px;box-shadow:inset 0 -5px #0002,0 3px 6px #0002;-webkit-tap-highlight-color:transparent}
  .move b{font-size:32px;line-height:.72}.move span{font-size:13px;margin-top:6px}
  .command-log{min-height:49px;padding:6px 10px;border-width:2px}.command-log span{font-size:11px}.command-log div{font-size:16px}
  .progress{height:10px}
  .teacher-tools{grid-template-columns:repeat(4,1fr);gap:5px}.teacher-tools button,.teacher-tools a{min-height:46px;padding:7px 3px;border-radius:10px;font-size:12px;line-height:1.15}
  .checkpoint,.celebration{top:7%;max-width:90%;font-size:clamp(20px,6vw,32px);border-width:3px;text-align:center}
  .intro-card{width:min(91vw,540px);max-height:calc(100dvh - 90px);padding:24px 18px;border-width:3px;border-radius:20px}.intro-card h2{font-size:clamp(32px,10vw,50px)}.intro-card p{font-size:16px}.intro-card button{min-height:54px;padding:12px 20px;font-size:20px}
  .skip-intro{right:12px;bottom:max(12px,env(safe-area-inset-bottom));min-height:46px;padding:8px 15px}
  .trap-overlay button,.goal-overlay button{left:50%;right:auto;bottom:max(18px,env(safe-area-inset-bottom));transform:translateX(-50%);width:min(88vw,430px);min-height:52px;padding:10px 14px;border-width:3px;font-size:16px;white-space:normal}
}
@media (max-width:900px) and (orientation:landscape), (max-height:600px) and (orientation:landscape){
  body{height:100dvh;min-height:0;overflow:hidden}
  .game-shell{height:100dvh;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,34vw);overflow:hidden}
  .board-wrap{align-self:center;width:min(100%,calc((100dvh - 8px) * 1.33518));max-height:calc(100dvh - 8px);border-width:3px;border-radius:12px}
  .control-panel{height:100dvh;min-height:0;overflow-y:auto;padding:8px max(8px,env(safe-area-inset-right)) 8px 10px;gap:5px;justify-content:flex-start}
  .kindergarten-name{display:none}.stage-pill{padding:4px 10px;font-size:10px}h1{margin:4px 0 2px;font-size:17px}#coach{font-size:11px}
  #mission.condition-rule{gap:3px;margin:2px 0;font-size:9px}.rule-token{gap:3px;padding:4px 5px;border-width:1px;border-radius:6px}.rule-token i{font-size:11px}.rule-next{font-size:10px}
  .maze-selector{gap:4px}.maze-choice{min-height:36px;padding:3px 5px;border-radius:9px}.maze-choice b{font-size:11px}.maze-choice span{font-size:9px}
  .direction-pad{max-width:250px;gap:4px}.move{min-height:45px;border-radius:10px}.move b{font-size:25px}.move span{font-size:10px;margin-top:3px}
  .command-log{min-height:38px;padding:4px 8px;border-width:2px}.command-log span{font-size:9px}.command-log div{font-size:13px}.progress{height:7px}
  .teacher-tools{grid-template-columns:1fr 1fr;gap:4px}.teacher-tools button,.teacher-tools a{min-height:34px;padding:4px 2px;font-size:10px}
  .intro-card{width:min(72vw,520px);padding:18px}.intro-card h2{font-size:34px}.intro-card p{font-size:14px;margin-bottom:14px}.intro-card button{min-height:46px;padding:9px 18px;font-size:18px}
}
@media (max-width:380px) and (orientation:portrait){
  .board-wrap{width:100%}.control-panel{padding-top:9px}.direction-pad{max-width:330px}.move{min-height:58px}.teacher-tools button,.teacher-tools a{font-size:11px}.stage-pill{display:none}.control-panel header{grid-template-columns:1fr}
}
