@media(min-width:651px) and (max-width:1200px) and (orientation:portrait){
 #stage{height:100dvh;min-height:0;padding-top:8px;overflow:hidden}
 header{height:90px;flex:none}.brand h1{font-size:clamp(32px,5.5cqw,58px)}.brand small{font-size:12px}.rule-pill b{font-size:20px}
 #playfield{flex:none;align-items:center}#cabinet,#stage[data-family=cascade] #cabinet{width:min(100%,calc((100dvh - 420px)*1.23));flex:none}
 #stage[data-family=classic] #cabinet{width:min(100%,calc((100dvh - 420px)*1.5))}
 .controls,#stage[data-family=cascade] .controls{height:132px;margin-top:12px;width:100%;gap:32px;flex:none}
 .spin{width:112px;height:112px}.spin svg{width:90px}.spin span{font-size:22px}.small{width:72px;height:72px;font-size:38px}.small small{font-size:10px}#speed{width:65px;font-size:30px}
 #message{min-height:35px;height:35px;font-size:22px;padding:3px}
 footer{min-height:0;height:138px;padding:4px 2%;gap:10px;flex:none}.meter strong{font-size:32px}.meter span{font-size:13px}.meter small{font-size:11px}.tools button{width:40px;height:40px;font-size:23px}
 #stakes{gap:12px}#stakes button{font-size:24px;min-width:100px;padding:5px 10px}#stakes button small{font-size:9px}#stakes button em{font-size:10px}
 .legal{font-size:10px;padding:8px 3%;min-height:25px;height:25px;margin-top:auto}
 #featureHUD{padding:2px;gap:15px;height:40px}#featureHUD span{font-size:11px}#remaining{font-size:26px}#featureWin{font-size:20px}#multiplier{font-size:26px}
}
/* The cabinet is not a scroll container. Focusing footer/menu controls must
   never scroll the entire stage behind its clipped viewport. */
#stage { overflow: clip !important; }
