quaternion.slerp doing 180 even though its supposed to do -30

Camera stuff is pretty tricky… you may wish to consider using Cinemachine from the Unity Package Manager.

There’s even a dedicated forum: Unity Engine - Unity Discussions

Otherwise if you want to proceed with the above, here’s some relevant notes:

All about Euler angles, by StarManta:

https://starmanta.gitbooks.io/unitytipsredux/content/second-question.html

Notes on clamping camera rotation and NOT using .eulerAngles because of gimbal lock:

How to instantly see gimbal lock for yourself: