/* The arcade stays browsable; starting on touch devices opens a fitted play view. */
.play-view{position:fixed;inset:0;z-index:50;width:100%;height:100dvh;background:#eee1c4;overscroll-behavior:none;isolation:isolate}
.play-viewport{position:absolute;inset:0;display:flex;flex-direction:column;width:100%;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)}
.play-view:fullscreen{max-width:none;max-height:none;border:0;background:#eee1c4}
.play-view:-webkit-full-screen{max-width:none;max-height:none;border:0;background:#eee1c4}
.play-view::backdrop{background:#eee1c4}
.game-view-actions{display:flex;justify-content:flex-end;margin:0 0 10px}
.game-fullscreen{min-height:44px;display:inline-flex;align-items:center;gap:9px;padding:8px 14px;border:1px solid #2a9d6f45;border-radius:10px;background:#faf7f0;color:#1f7e57;font-size:12px;font-weight:700;touch-action:manipulation}
.game-fullscreen svg{width:18px;height:18px}.game-fullscreen kbd{font-size:10px;padding:2px 6px;border-bottom-width:2px}
.playing-mobile{overflow:hidden;overscroll-behavior:none}
.play-toolbar{height:48px;flex:none;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:2px 8px;background:#faf7f0;border-bottom:1px solid #1f7e5724}
.play-toolbar button{min-width:44px;min-height:44px;border:0;border-radius:9px;background:transparent;color:#1f7e57;display:flex;align-items:center;justify-content:center;gap:7px;padding:6px 10px;font-size:14px}
.play-toolbar button:disabled{opacity:.35}.play-toolbar svg{width:19px;height:19px;flex-shrink:0}.play-toolbar strong{font:700 14px/1.2 'Rubik',sans-serif;text-align:center;min-width:0;flex:1}
.play-toolbar-actions{display:flex;flex-shrink:0;gap:2px}.play-toolbar button{touch-action:manipulation;flex-shrink:0}
.play-toolbar button:focus-visible{outline:2px solid #1f7e57;outline-offset:-3px}
.fullscreen-status{position:absolute;z-index:10;top:calc(52px + env(safe-area-inset-top,0px));left:50%;transform:translateX(-50%);width:max-content;max-width:min(380px,90%);margin:0;padding:9px 13px;border:1px solid #82ab80;border-radius:10px;background:#fff8e5;color:#295c45;text-align:center;font-size:11px;line-height:1.4;pointer-events:none;box-shadow:0 3px 15px #1f7e571c}
.play-stage{flex:1;min-height:0;position:relative;overflow:hidden}
.play-stage>.game-shell,.play-stage>.glide-shell{position:absolute;inset:0;width:100%;height:100%;max-width:none;margin:0;border:0;border-radius:0;aspect-ratio:auto;box-shadow:none;background:#d9e2c6}
.play-stage canvas{object-fit:contain}
.play-stage>.game-shell>canvas{position:absolute;top:50%;transform:translateY(-50%);height:min(100%,calc(var(--play-width)*1.1));width:100%}
.play-stage .hud-icon{min-width:44px;min-height:44px}
.play-stage #pauseButton,.play-stage .glide-hud>button,.play-stage #brawlPauseButton{display:none}
.play-stage .touch-controls{display:flex;bottom:12px;left:14px;right:14px}
.play-stage .touch-controls button{width:58px;height:58px;backdrop-filter:none;background:#fff4d9e8}
.play-stage .touch-controls .jump-touch{width:66px;height:66px;background:#f8d05bf2}
.play-stage .hud{top:12px}.play-stage .hud-stats,.play-stage .hud-icon{backdrop-filter:none}
.play-stage .screen-panel,.play-stage .glide-overlay{z-index:6;padding:10px;backdrop-filter:none}
.play-stage .panel-card,.play-stage .glide-pause-card,.play-stage .glide-result-card{max-height:100%;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scroll-padding:12px;touch-action:pan-y}
.play-stage .glide-result-card{max-width:560px}.play-stage .result-card{width:min(850px,100%);max-width:none}
.play-stage .play-button,.play-stage .panel-actions button,.play-stage .glide-text-button{min-height:44px}
.play-stage .glide-text-button{padding:10px}.play-stage .score-entry{flex-wrap:wrap}.play-stage .score-entry button{min-height:44px}
.play-stage .score-entry input{font-size:16px;min-height:44px;flex-basis:160px}
.play-stage .share-actions{grid-auto-columns:minmax(0,44px)}.play-stage .share-icon{height:44px}
.play-stage .glide-menu{padding:18px;justify-content:center;gap:20px;background:#f9efd7c9}
.play-stage .glide-menu h2{font-size:clamp(30px,6vw,56px);margin:8px 0}.play-stage .glide-menu p{font-size:12px}
.play-stage .brawl-menu>div:first-child{display:none}
.play-stage .brawl-menu .brawl-picker{width:100%;max-width:660px;margin:0;pointer-events:auto}
.play-stage .brawl-menu .brawl-fighter{flex-direction:column;text-align:center;padding:6px;gap:0}
.play-stage .brawl-menu .brawl-fighter canvas{width:52px;height:67px}
.play-stage .brawl-menu .brawl-fighter b{font-size:12px}.play-stage .brawl-menu .brawl-fighter small{font-size:9px;margin:3px 0}.play-stage .brawl-menu .brawl-fighter em{font-size:9px}
.play-stage .glide-hud{top:8px;left:12px;right:12px;gap:8px}
.mobile-flight-control{display:none}
.play-stage #blocksCanvas{height:calc(100% - 66px)}
.play-stage .blocks-controls{bottom:8px;left:8px;right:8px;gap:6px}
.play-stage .blocks-controls button{height:50px;font-size:25px}.play-stage .blocks-controls button small{display:block;font-size:9px}
.play-stage .brawl-shell{display:flex;flex-direction:column}
.play-stage .brawl-viewport{flex:1;min-height:0;max-height:none;height:auto;aspect-ratio:auto;position:static}
.play-stage #brawlCanvas{position:absolute;top:0;left:0;width:100%;height:calc(100% - 68px)}
.play-stage .brawl-controls{position:absolute;bottom:0;left:0;right:0;gap:6px;padding:8px;background:#faf2db}
.play-stage .brawl-controls button{min-height:52px;flex-direction:column;gap:0}.play-stage .brawl-controls button small{font-size:9px}
.play-stage .brawl-hud{position:absolute;top:auto;bottom:70px;right:10px;align-items:center;gap:3px;padding:4px 8px;border-radius:8px;background:#faf2dbdd;pointer-events:none}
.play-stage .brawl-hud strong{font-size:18px}.play-stage #brawlHealth,.play-stage #brawlPower,.play-stage #brawlIsland{display:none}
.play-stage .blocks-controls small,.play-stage .brawl-controls small{max-width:100%;overflow-wrap:anywhere;line-height:1.05;text-align:center}
.play-view[data-mode="paused"] .brawl-hud,.play-view[data-mode="ready"] .brawl-hud{display:none}
/* Portrait playfields keep their physics and aspect ratio. Thumbs use the gutters. */
.play-view[data-landscape="true"] .glide-hud{right:auto;max-width:22%;flex-direction:column;align-items:flex-start;gap:7px}
.play-view[data-landscape="true"] .glide-hud>div{padding:6px 8px}.play-view[data-landscape="true"] .glide-hud b{font-size:12px}
.play-view[data-landscape="true"] .glide-hud>strong{font-size:28px;margin:0}
.play-view[data-landscape="true"] .glide-hud>.shooter-score{text-align:left;margin:0}
.play-view[data-landscape="true"] #glideCanvas,.play-view[data-landscape="true"] #shooterCanvas{width:56%;margin-inline:auto}
.play-view[data-landscape="true"] .shooter-boss{top:12px;left:39%;right:39%}
.play-view[data-landscape="true"] .shooter-status{left:12px;right:auto;bottom:12px;max-width:22%;flex-direction:column;font-size:9px}
.play-view[data-landscape="true"][data-mode="playing"] .mobile-flight-control{display:flex;position:absolute;right:3%;top:35%;width:19%;height:50%;max-height:180px;align-items:center;justify-content:center;flex-direction:column;gap:10px;border:1px solid #84ab81;border-bottom:3px solid #739b70;border-radius:22px;background:#f8f2de;color:#2d674b;touch-action:none;user-select:none;-webkit-user-select:none;font-size:12px;text-align:center;padding:10px}
.mobile-flight-control>span:first-child{font-size:34px;line-height:1}.mobile-flight-control:active{background:#f4d879}
.play-view[data-landscape="true"] #blocksCanvas{width:calc(100% - 272px);height:100%;margin-inline:auto}
.play-view[data-landscape="true"] .blocks-controls{inset:0;padding:12px;display:grid;grid-template-columns:54px 54px minmax(0,1fr) 54px 54px;grid-template-areas:"hold hold . rotate rotate" "left right . down drop";gap:8px;align-content:end;pointer-events:none}
.play-view[data-landscape="true"] .blocks-controls button{height:54px;pointer-events:auto}
.play-view[data-landscape="true"] #blocksControlHold{grid-area:hold}.play-view[data-landscape="true"] #blocksControlLeft{grid-area:left}.play-view[data-landscape="true"] #blocksControlRight{grid-area:right}.play-view[data-landscape="true"] #blocksControlRotate{grid-area:rotate}.play-view[data-landscape="true"] #blocksControlDown{grid-area:down}.play-view[data-landscape="true"] #blocksControlDrop{grid-area:drop}
.play-view[data-landscape="true"] .brawl-hud{font-size:9px;max-width:20%}
@media(any-pointer:coarse){
  .game-fullscreen kbd{display:none}
  .app{padding-left:max(12px,env(safe-area-inset-left,0px));padding-right:max(12px,env(safe-area-inset-right,0px))}
  .topbar .icon-button,.topbar .quiet,.language-picker,.refresh-scores{min-width:44px;min-height:44px}
  .language-picker select,.score-entry input{font-size:16px}.score-entry input,.score-entry button,.play-button{min-height:44px}
  .arcade-switch{display:flex;overflow-x:auto;gap:8px;padding:2px 1px 8px;scroll-snap-type:x proximity;scrollbar-width:thin}
  .arcade-tab{flex:0 0 auto;min-width:160px;min-height:62px;scroll-snap-align:start;flex-direction:row;text-align:left}
  .arcade-tab b{font-size:14px}.arcade-tab small{font-size:10px}
  .touch-controls{display:flex}.touch-controls button,.brawl-controls button,.blocks-controls button{touch-action:none}
}
@media(max-height:530px) and (orientation:landscape){
  .arcade-switch{display:flex;overflow-x:auto;gap:8px;margin-bottom:14px}.arcade-tab{flex:0 0 170px}
  .play-toolbar{height:44px}.play-stage .panel-card{padding:14px 20px}.play-stage .panel-card h2{margin:5px 0}
  .play-stage .glide-pause-card{padding:14px 20px}.play-stage .glide-pause-card h2{margin:4px 0}
  .play-stage .glide-overlay{padding:8px}.play-stage .glide-result-card{padding:14px 20px}
}
@media(max-width:380px){.play-toolbar strong{font-size:12px}.play-stage .brawl-controls{gap:3px;padding:8px 4px}.play-stage .brawl-controls button small{font-size:8px}.play-stage .blocks-controls{gap:3px;left:4px;right:4px}}
@media(max-width:560px) and (any-pointer:coarse){.topbar nav{min-width:0}.language-picker{min-width:0;max-width:190px;flex:1}.language-picker select{width:100%;min-width:0;max-width:100%}}
