Answer
Can a PWA lock screen orientation?
Yes. The Screen Orientation API’s screen.orientation.lock("landscape") method (or "portrait") can force a specific orientation, but on most browsers it only works while the page is in fullscreen mode via the Fullscreen API. An installed PWA can also declare a preferred orientation directly in its manifest with the "orientation" field, which locks orientation for the whole standalone app.
Manifest-level lock
Setting "orientation": "portrait" (or landscape, any, natural) in manifest.webmanifest applies to the entire installed app window without JS.
JS API lock
screen.orientation.lock() works in a regular browser tab only after entering fullscreen, and throws on some browsers if fullscreen is not active.
iOS support
iOS Safari has limited support for programmatic orientation locking compared to Android Chrome.