I need help making a top down Camera

This is what I currently have.

Camera.CFrame = Camera.CFrame:Lerp(
	CFrame.new(HumanoidRootPart.Position + Offset) *
	CFrame.Angles(0, math.rad(Angle.Y), 0) *
	CFrame.Angles(math.rad(Angle.X),0,0),
	0.15
)

this results in the camera being right above me instead of looking at me

So I can fix that problem if there was only one angle by doing

Camera.CFrame = Camera.CFrame:Lerp(
	CFrame.new(HumanoidRootPart.Position + Offset - Vector3.new(0,0,Offset.Y/math.tan(math.rad(Angle.X)) *
	CFrame.Angles(math.rad(Angle.X),0,0),
	0.15
)

And it fixes the problem

Now I have no clue how to apply that in 3D to have 2 angles and offset the camera to look at the player instead of be above the player.

PLEASE DO NOT REDIRECT ME TO CFrame.new(Origin, lookAt) or CFrame.lookAt(Origin, lookAt) THEY WON’T ALLOW ME TO ADD OTHER FEATURES LIKE ZOOMING IN AND OUT

I did this and it worked fine.

Camera.CFrame = Camera.CFrame:Lerp(
	CFrame.new(HumanoidRootPart.Position) *
	CFrame.Angles(0, math.rad(Angle.Y), 0) *
	CFrame.Angles(math.rad(Angle.X),0,0) *
	CFrame.new(0,0,Distance),
	0.15
)