Avoid reading from/writing to eulerAngles.
Notes on clamping camera rotation and NOT using .eulerAngles because of gimbal lock: