/* Reserve the viewport for the playfield, with controls within reach. */
html body dialog.tetdialog,html body dialog.snakedialog{inset:0;margin:0;padding:0;border:0;border-radius:0;width:100vw;max-width:100vw!important;height:100dvh;max-height:100dvh!important;overflow:hidden}
html body dialog>.tetwrap,html body dialog>.snakewrap{width:100%!important;max-width:none!important;height:100%;max-height:100%;padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px);gap:0;position:relative;overflow:hidden}
.tetwrap .tethud,.snakewrap .snaketoolbar{min-height:44px;gap:4px;flex-wrap:nowrap;padding:0 4px;flex-shrink:0}.tetwrap .tethud>.btn,.snakewrap .snaketoolbar>.btn{min-width:44px;min-height:44px}.tetwrap .tetmeta{min-height:22px;padding:0 8px;gap:6px}.tetnext canvas{width:48px;height:30px}.tetwrap .tetstage{flex:1;min-height:0;min-width:0;align-items:center;justify-content:center}.tetwrap .tetstage>canvas{display:block;flex:none;max-width:100%;max-height:100%;object-fit:contain}.tetwrap #newFrame{display:block;height:100%;width:100%;align-self:stretch}.snakewrap>.snakehint{display:none}.snakewrap .snakeplayarea{min-height:0;flex:1}
.arcade-screen-menu{flex:0 0 40px;min-height:44px;min-width:44px;border:0;background:transparent;color:#dceefa;border-radius:8px;font:700 21px Arial;cursor:pointer}.arcade-tools[hidden],.arcade-help-panel[hidden]{display:none!important}.arcade-tools{position:absolute;z-index:8;right:6px;top:46px;max-width:calc(100% - 12px);padding:8px;background:#0c2234;border:1px solid #466980;border-radius:12px;box-shadow:0 8px 25px #0009;margin:0}.arcade-help-panel{position:absolute;z-index:9;right:6px;top:104px;width:min(440px,calc(100% - 12px));max-height:calc(100% - 112px);margin:0}.arcade-tool-status:not(:empty){position:absolute;bottom:6px;left:6px;z-index:10;background:#10283d;padding:8px;border-radius:8px}
/* The embedded puzzle/arcade engines receive the whole parent play area. */
html body.embedded{height:100dvh;overflow:hidden}body.embedded main{display:flex;flex-direction:column;width:100%;max-width:none;height:100dvh;padding:0;min-height:0}body.embedded #stage{display:flex;align-items:center;justify-content:center;flex:1;min-height:0;min-width:0;padding:0;overflow:auto}body.embedded #controls{flex-shrink:0;margin:0;padding:3px 4px;gap:4px;width:100%}body.embedded #controls:empty{display:none}body.embedded #controls button{min-height:44px;padding:6px 12px}body.embedded canvas{width:auto;max-width:100%;max-height:100%;flex:none;border-radius:0}body.embedded .grid,body.embedded .sudoku{width:100%;max-width:none;flex:none;margin:0}body.embedded .cell{font-size:clamp(13px,calc(var(--board-cell,40px)*.45),38px)}body.embedded .sudoku input{font-size:clamp(13px,calc(var(--board-cell,40px)*.45),30px)}body.embedded .big{height:100%;min-height:100px}
/* Standalone pinball fits the available space rather than a fixed vh fraction. */
body.pinball-screen{height:100dvh;overflow:hidden}body.pinball-screen main{max-width:none;width:100%;height:100dvh;padding:env(safe-area-inset-top,0px) 4px env(safe-area-inset-bottom,0px);display:flex;flex-direction:column;min-height:0}body.pinball-screen .top{min-height:40px;flex-shrink:0}body.pinball-screen h1{font-size:18px;margin:0}body.pinball-screen .hud{padding:4px;flex-shrink:0}body.pinball-screen .stage{flex:1;min-height:0;display:flex;align-items:center;justify-content:center}body.pinball-screen canvas{width:auto;height:auto;max-width:100%;max-height:100%;margin:0;border-radius:0;flex:none}body.pinball-screen #status{min-height:20px;margin:3px 0;font-size:12px;flex-shrink:0}body.pinball-screen .actions,body.pinball-screen .flippers{margin:2px 0;gap:4px;flex-shrink:0}body.pinball-screen button,body.pinball-screen .flippers button{min-height:40px;padding:6px 9px;font-size:13px}body.pinball-screen .hint{display:none}body.pinball-screen .game-help{margin:0;padding:0;flex-shrink:0}body.pinball-screen .game-help summary{min-height:32px}body.pinball-screen .game-help[open]{position:absolute;z-index:12;bottom:4px;left:4px;right:4px;background:#0c2436;border:1px solid #45657b;border-radius:12px;padding:12px;max-height:60dvh;overflow:auto}
@media(max-height:500px) and (orientation:landscape){.tetwrap .tetmeta{min-height:18px}.tetwrap .tethud,.snakewrap .snaketoolbar{min-height:40px}.tetwrap .tetcover{padding:12px}.tetwrap .tetcover p{margin:6px 0}.tetwrap .tetcover h2{margin:4px 0}.tetnext canvas{height:22px;width:35px}}

body.embedded #stage{display:block}body.embedded #stage.fit-board{display:flex}body.embedded #stage>.cards,body.embedded #stage>.row{width:100%}
@media(max-height:500px) and (orientation:landscape){body.pinball-screen main{display:grid;grid-template-columns:minmax(0,1fr) 180px;grid-template-rows:40px 24px minmax(20px,1fr) auto auto auto;gap:2px 6px}body.pinball-screen .top{grid-column:1/-1;grid-row:1}body.pinball-screen .stage{grid-column:1;grid-row:2/-1;min-height:0}body.pinball-screen .hud{grid-column:2;grid-row:2;font-size:10px;padding:0}body.pinball-screen #status{grid-column:2;grid-row:3;align-self:end}body.pinball-screen .actions{grid-column:2;grid-row:4;flex-wrap:wrap}body.pinball-screen .actions button{flex:1 1 40%;min-width:0}body.pinball-screen .flippers{grid-column:2;grid-row:5}body.pinball-screen .game-help{grid-column:2;grid-row:6}}
