Keep looking at spot after transitioning to a different virtual camera

I have a situation where I have 2 Cinemachine virtual cameras, 1st person and 3rd person.

The 1st person virtual camera is positioned very near the center of the player object but is able to free look without rotating the player itself (basically a FreeLook vcam with rigs that keep the camera very close to the center of the player object) and looks straight through the center of the player object. This vcam will rotate with the player object if it rotates on its x or z axis.

The 3rd person virtual camera is positioned to orbit around the player object (FreeLook vcam but with rigs that position it much further from the center of the player object), but this vcam looks through a point just above the top of the player object to allow for aiming without an obstructed view. This vcam stays locked to the world up and does not tilt if the player object tilts.

The problem I am having is when I transition from one to the other, the camera ends up looking at a slightly different spot. In order to smooth the player experience, I want the camera to be looking at that same spot (the red asterisk in the before/after pictures) before and after transitioning.

Before transition from 3rd Person to 1st Person:

After transition:

If using Unity’s Camera raw, I’d just figure out the angles before and after and adjust it myself, but with the Cinemachine Brain controlling things, I’m not quite sure how to approach this problem. Any thoughts would be appreciated.

I have been fiddling with a few different setups and I’ve found one that might work, provided I can get the math to work right.

Using only 1 FreeLook virtual camera, dynamically set the orbit heights and radius based on the desired distance from the player I want the camera to be. In 3rd person, use scroll wheel to zoom in/out, updating orbits as needed. In 1st person, lock the orbits to a distance of 0.2f.

To handle the fact that the player can rotate on all axis in certain situations, while in 3rd person, the orbit Binding Mode is set to World Space. In 1st person, the mode is set to Lock to Target. This allows for free orbit in 3rd person and tracking of player rotations in 1st person.

The problem now is that when I change the Binding Mode, the m_XAxis and m_YAxis of the FreeLook vcam have very different meanings.

I am currently working on figuring out that difference, then adjusting the m_XAxis and m_YAxis appropriately.

Thoughts?