/* A fixed play viewport spends its area on the entire board, with no clipping. */
body.playing{position:fixed;inset:0;height:var(--play-height,100dvh);width:100%;overflow:hidden;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom);background:#05080d;overscroll-behavior:none}
.playing .app-header,.playing .view-control,.playing #adventureHud,.playing .redline-controls,.playing .tokyo-controls,.playing .recovery-control,.playing .help,.playing #previewBanner,.playing footer{display:none!important}
body.playing main{width:100%;height:100%;max-width:none;padding:0!important;display:grid;place-items:center}
.playing #play{width:100%;max-width:none}.playing .layout{max-width:none;width:100%;margin:0;display:block}.playing .layout>div:nth-child(2){width:100%;display:flex;justify-content:center}
body.playing .machine{padding:4px;max-width:none!important;width:max-content!important;margin:0!important;border:0;border-radius:0;background:#070b12;box-shadow:none;display:flex;flex-direction:column;align-items:stretch;position:relative}
.playing .machine:after{display:none}.playing canvas{border:0!important;border-radius:4px!important;max-width:none;max-height:none;flex-shrink:0;object-fit:contain;box-shadow:none;aspect-ratio:420/650}
body.playing .display{padding:2px 5px;margin:0 0 3px;height:95px;flex:0 0 95px;border:0;border-radius:0;background:linear-gradient(#111a27,#080d15);text-align:left;overflow:hidden}
.play-topline{display:flex;align-items:center;gap:8px;height:21px}.play-topline button{background:none;border:0;color:#d9c7a7;padding:0 5px;font:600 10px Inter,Arial,sans-serif;min-height:21px}.play-topline #playTableName{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:9px;letter-spacing:1.3px;color:#a0afc3}.play-topline #playAudio,.play-topline #playPause{min-width:29px;font-size:16px}
.play-scoreline{display:flex;align-items:center;justify-content:space-between;gap:10px;height:28px}.playing #gameStatus{font-size:8px;letter-spacing:.4px;max-width:54%;color:#b8c4d4;line-height:1.3}.playing .score{font-size:25px;line-height:1;letter-spacing:2px;white-space:nowrap}
.play-mission{height:15px;line-height:15px;font-size:9px;letter-spacing:.25px;color:var(--lime);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.play-notice{height:24px;line-height:12px;font-size:9px;color:#e3cfaa;white-space:normal;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
body.playing .controlbar{flex:0 0 40px;height:40px;display:grid;grid-template-columns:1fr 1.05fr 1fr;gap:4px;margin:3px 0 0}.playing .controlbar button{padding:0 6px;min-height:40px!important;height:40px;font-size:10px;border-radius:5px;border-color:#3d4c62;box-shadow:none;background:linear-gradient(#202b3b,#101823)}
.playing #finishLevel:not(.hidden){position:absolute;right:auto;left:10px;top:32px;width:44%;z-index:4;margin:0;padding:4px 8px;font-size:8px;box-shadow:0 3px 10px #0008}.playing #redlineGuide,.playing #tokyoGuide{position:absolute;inset:100px 5px 44px;z-index:7;overflow:auto;background:#0c1425;box-shadow:none}
.audio-panel{position:absolute;inset:27px 8px auto;z-index:20;padding:20px;border:1px solid #6b7d96;border-radius:12px;background:#0d1625f5;box-shadow:0 20px 60px #000}.audio-panel h3{margin:0 0 16px;font:600 30px 'Barlow Condensed',sans-serif}.audio-panel button{display:block;width:100%;min-height:42px;margin:8px 0;background:#1e2b40;border:1px solid #53677e;border-radius:5px;font-size:11px;color:#e9d0a5}.audio-panel button[aria-pressed=true]{background:#58402b;border-color:#d8ab68}.audio-panel p{font-size:10px;line-height:1.6;color:#a6b4c9}.audio-panel #audioClose{background:#ddba7d;color:#151b25}
@media(max-width:430px){.play-topline{gap:4px}.playing #gameStatus{font-size:8px}.play-mission,.play-notice{font-size:9px}}
.playing .controlbar{grid-template-columns:1fr .9fr .8fr 1fr!important}.playing #playNudge{font-size:9px;color:#eccb8c;touch-action:manipulation}.playing #playNudge:disabled{opacity:.5}.controlbar:has(#playNudge){grid-template-columns:1fr .9fr .8fr 1fr}
