Z is intentionally locked to the tram deck while riding (the tunnel has
no real floor), but CameraController's own gravity/jump physics kept
running underneath that lock every frame since grounded never went
true on a moving M2 deck. verticalVelocity silently grew toward
terminal velocity for the whole ride and unleashed all at once the
instant the lock released at disembark, clipping the player through
the floor at "a weird angle." It also explains why jump appeared to
do nothing while riding, since canJump requires a recent grounded
frame that a tram ride never produces.
Added CameraController::suppressVerticalPhysics() (zeroes
verticalVelocity, forces grounded true) and call it every frame the
Deeprun tram Z-lock is active.