/* Portrait and landscape layouts share the same live game session. */
@media (pointer:coarse), (max-width:700px), (max-height:500px) and (max-width:1100px) {
 html,body{width:100%;height:100%;overscroll-behavior:none}
 body{overflow:hidden}
 body[data-game] > main,body[data-game] > .shell,body[data-game] > .game-shell{height:100dvh;min-height:0;max-height:100dvh;padding-top:env(safe-area-inset-top);padding-left:max(6px,env(safe-area-inset-left));padding-right:max(6px,env(safe-area-inset-right));padding-bottom:env(safe-area-inset-bottom);display:flex;flex-direction:column;overflow:hidden}
 body[data-game] header,body[data-game] .header,body[data-game] .game-header{flex-shrink:0;min-height:44px;height:44px;gap:8px}
 body[data-game] header .brand img,body[data-game] .header .brand img,body[data-game] .game-header .brand img{width:25px;height:30px}
 body[data-game] h1{font-size:18px;margin:0}
 body[data-game] footer{display:none}
 body[data-game] .overlay{align-items:flex-start;overscroll-behavior:contain}
 body[data-game] .menu,body[data-game] .menu-panel{margin-block:auto;flex-shrink:0}
 body[data-game] .loading{overflow:auto}
 body[data-game] .controls{flex-shrink:0;min-height:56px;padding:6px;gap:8px;margin:0}
 body[data-game] .controls button{min-height:44px}
 body[data-game] .play-area{flex:1;min-height:0;height:auto;margin:0;padding:0}
 body[data-game] .dashboard{flex-shrink:0;padding:6px 10px;margin:0;min-height:44px}
 body[data-game] .dashboard strong{font-size:16px}
 body[data-game] .shell .stage{border-radius:0}
 /* These games previously reserved a desktop-sized minimum playfield. */
 body[data-game=deep-dive] main>.shell,body[data-game=rooftop-courier] main>.shell{flex:1;min-height:0;display:flex;flex-direction:column;border:0;border-radius:0}
 body[data-game=deep-dive] .oxygen-stat{width:min(42%,220px)}
 body[data-game=deep-dive] .stats,body[data-game=rooftop-courier] .stats{gap:12px}
 body[data-game=pocket-striker] .arena{flex:1;min-height:0;height:auto;border-radius:0}
 body[data-game=pocket-striker] .controls{flex-wrap:nowrap;min-height:64px}
 body[data-game=pocket-striker] .instruction{flex:1;min-width:0}
 body[data-game=pocket-striker] .instruction p{font-size:10px;margin:5px 0}
 body[data-game=pocket-striker] .action-controls{order:initial;width:auto;flex:1;min-width:0}
 body[data-game=pocket-striker] #shoot{min-width:110px;padding:10px;font-size:11px}
 body[data-game=pocket-striker] .power{min-width:30px;width:auto;flex:1}
 body[data-game=pocket-striker] .run-score{min-width:48px}
 body[data-game=pocket-striker] .scoreboard{top:8px;grid-template-columns:55px 120px 55px;padding:6px;gap:4px}
 body[data-game=pocket-striker] .scoreboard strong{font-size:23px}
 body[data-game=pocket-striker] .match-info b{font-size:9px}
 body[data-game=pocket-striker] .pitch-label{display:none}
 body[data-game=rush-hour] main>.game-shell{flex:1;min-height:0;display:flex;flex-direction:column;border-radius:0}
 body[data-game=rush-hour] .game-layout{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center}
 body[data-game=rush-hour] .stage{flex:1;min-height:0;width:100%;max-height:none;aspect-ratio:auto;display:flex;align-items:center;justify-content:center;background:#162e32}
 body[data-game=rush-hour] canvas{width:min(100%,var(--traffic-size));height:var(--traffic-size);max-height:100%;aspect-ratio:1}
 body[data-game=rush-hour] .traffic-panel{width:100%;flex-shrink:0;padding:7px}
 body[data-game=rush-hour] .road-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}
 body[data-game=rush-hour] .road{min-height:48px;padding:7px 5px}
 body[data-game=rush-hour] .panel-heading,body[data-game=rush-hour] #instruction,body[data-game=rush-hour] .legend,body[data-game=rush-hour] .shift-info,body[data-game=rush-hour] .note{display:none}
 body[data-game=rush-hour] .traffic-status{padding:5px;margin-bottom:5px;font-size:9px}
 body[data-game=ricochet] .shell{min-height:0}
 body[data-game=ricochet] .game-layout{height:100%;min-height:0;max-width:none;grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto;gap:4px;padding:0;justify-items:center}
 body[data-game=ricochet] .board-column{min-height:0;align-self:center}
 body[data-game=ricochet] .board-heading{min-height:30px}
 body[data-game=ricochet] .run-panel{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;padding:4px;width:100%;max-width:480px}
 body[data-game=ricochet] .tip,body[data-game=ricochet] .assist-note,body[data-game=ricochet] .campaign-total,body[data-game=ricochet] .ammo-dots{display:none}
 body[data-game=ricochet] .run-stat{border:0;padding:0;font-size:10px}
 body[data-game=ricochet] .run-stat>span{font-size:7px}
 body[data-game=ricochet] .ammo-line strong{font-size:22px}
 body[data-game=ricochet] .tool-row{grid-column:2/4;margin:0}
 body[data-game=ricochet] .run-panel>.primary{grid-column:1}
 body[data-game=ricochet] .tool-row button,body[data-game=ricochet] .run-panel>.primary{min-height:44px}
 body[data-game=coil-arena] .bottom-bar{min-height:44px;padding:5px 8px}
}
@media (orientation:landscape) and (max-height:540px) and (max-width:1200px) {
 body[data-game] .header .overline,body[data-game] .header .eyebrow,body[data-game] header .brand small,body[data-game] .keyboard-note,body[data-game] .control-note,body[data-game] .edition{display:none}
 body[data-game] .menu{padding:14px 22px}
 body[data-game] .menu-art,body[data-game] .poster{display:none}
 body[data-game] .menu{grid-template-columns:1fr;max-width:650px}
 body[data-game] .menu h2{font-size:30px;margin:7px 0;line-height:1.05}
 body[data-game] .menu .howto,body[data-game] .menu .how-to{display:none}
 body[data-game] .menu p{font-size:11px;margin:7px 0}
 body[data-game] .difficulties{margin:8px 0}
 body[data-game] .hud,body[data-game] .matchbar{min-height:40px;padding:4px 8px}
 body[data-game] .controls{min-height:52px}
 body[data-game=neon-clash] .controls{display:flex;justify-content:space-between}
 body[data-game=neon-clash] .movement{grid-template-columns:44px 48px 44px}
 body[data-game=neon-clash] .direction{height:44px}
 body[data-game=neon-clash] .attacks{width:min(55%,360px)}
 body[data-game=neon-clash] .action{min-width:0;padding:4px}
 body[data-game=toads-adventure] .control{width:150px;min-width:0;min-height:44px}
 body[data-game=rally] .score-side strong{font-size:24px}
 body[data-game=rally] .match-label{min-width:100px}
 body[data-game=last-light] .roster{margin:7px 0}
 body[data-game=vaultbreak] .game-shell{max-width:none;width:100%;display:flex;flex-direction:column}
 body[data-game=vaultbreak] .stage{width:min(100%,430px)}
 body[data-game=vaultbreak] .game-header{height:44px}
 body[data-game=vaultbreak] .dashboard{min-height:38px;padding:4px;display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
 body[data-game=vaultbreak] .controls{width:100%;max-width:560px;min-height:52px;height:52px;padding:4px;display:flex;flex-direction:row;align-self:center}body[data-game=vaultbreak] .direction-button{height:44px}body[data-game=vaultbreak] .control-note{display:none}
 body[data-game=vaultbreak] .zone-badge{padding:4px 7px;top:5px}
 body[data-game=vaultbreak] .zone-badge small{display:none}
 body[data-game=rush-hour] .game-layout{flex-direction:row;align-items:stretch;gap:10px}
 body[data-game=rush-hour] .stage{width:auto;flex:1}
 body[data-game=rush-hour] .traffic-panel{width:220px;align-self:center}
 body[data-game=rush-hour] .road-grid{grid-template-columns:1fr 1fr}
 body[data-game=ricochet] .game-layout{grid-template-columns:minmax(0,1fr) 220px;grid-template-rows:1fr;gap:12px}
 body[data-game=ricochet] .run-panel{display:block;align-self:center}
 body[data-game=ricochet] .run-stat{display:flex;justify-content:space-between;margin:5px 0}
 body[data-game=ricochet] .tool-row{display:flex;margin-top:5px}
 body[data-game=chess] .layout{grid-template-columns:minmax(0,1fr) minmax(200px,38%);gap:15px;flex:1;min-height:0;overflow:auto}
 body[data-game=chess] .play-column{width:min(100%,calc(100dvh - 112px));align-self:start}
 body[data-game=chess] .player-strip{min-height:28px}
 body[data-game=chess] .board-tools{gap:10px}
 body[data-game=chess] .board-tools button{min-height:32px;font-size:9px}
 body[data-game=chess] .side-panel{overflow:auto;max-height:100%;padding:4px}
 body[data-game=chess] .intro,body[data-game=chess] .play-help{display:none}
 body[data-game=chess] .difficulty button{padding:6px}
 body[data-game=chess] .difficulty button strong{font-size:20px}
 body[data-game=chess] .move-scroll{height:45px}
}
@media (orientation:portrait) and (max-width:700px) {
 body[data-game=chess]{overflow:auto}
 body[data-game=chess]>.shell{height:auto;min-height:100dvh;max-height:none;overflow:visible}
}

@media(max-height:540px) and (orientation:landscape){body[data-game=ricochet] .board-heading{height:30px;min-height:30px;padding:2px 0}body[data-game=ricochet] .board-heading h2{margin:2px 0;font-size:11px}}
@media(orientation:landscape) and (max-height:540px) and (max-width:1200px){
 body[data-game=vaultbreak] .game-header{display:flex;padding:0;align-items:center}
 body[data-game=vaultbreak] .header-actions{margin:0}
 body[data-game=vaultbreak] .dashboard{width:100%;align-self:stretch}
 body[data-game=vaultbreak] .stage{height:auto;flex:1;min-height:0}
 body[data-game=vaultbreak] .direction-pad{width:auto;gap:8px}
 body[data-game=vaultbreak] .direction-button{width:64px}
 body[data-game=vaultbreak] .burst-button{width:120px;height:44px}
}
