The activity declares no `screenOrientation` and handles `orientation` and `screenSize` itself, so turning the phone over is a resize and nothing else — the audio thread, the stack and the screen's scroll all survive it, and the layout is the only thing that has to answer. Two media queries do that. The player sheet is the one surface whose portrait shape cannot survive a wide viewport: its artwork is a square sized by WIDTH, so at 915×411 the cover came out 879px tall and the title, the lane, the transport and the face buttons sat below the bottom of a sheet that does not scroll — a corner of the cover and no way to pause. Sideways it is two columns: the head across the top, the cover down the left sized by HEIGHT, and the track, the scrubber, the transport and the faces stacked on the right. With lyrics or the queue up, the face takes the cover's column and the thumbnail goes — the record is already the ground behind the whole sheet. That is an aspect problem rather than a height one, so the rule keys off `orientation: landscape` alone and a tablet gets the same two columns. The rest is a phone-sized query (`max-height: 560px`). The nav comes down to Android's own 48dp minimum and the mini bar to a 60dp row over the same lane strip, which gives the page back 22 of a 411-pixel screen — the chrome was 46% of the height, it is 40%. The artist hero stops being a 300px portrait, which covered its own Play button with the mini bar, and becomes a 190px banner: what the desktop's hero has always been. The record head puts the cover beside the title rather than above it, again the desktop's own shape, so Play is in view without a scroll. A half sheet may take all but 36px of the height instead of 76% of it. Everything else — the grids, the rails, the artwork viewer, the tap-to-sync room, the chat composer — already answered to width and was left alone. `viewport-fit=cover` means the cutout and the gesture pill come in from the SIDES in landscape, so the shell reads `--inset-left` / `--inset-right` beside the top and bottom ones now. Those rules are appended at the end of `shell.css` on purpose: they have to come after `.gbar`'s padding, `.mini`'s and `.toast`'s left/right to win at equal specificity.