Aiming up and down while drawing a bow / Rotating the waist Motor6D at an angle

I am trying to make a character look up and down when drawing/standing with a bow. Because the character stands at an angle, merely rotating about the torso’s x-axis is insufficient.

This is as close as I have gotten:

And here is the result that I am aiming for (achieved with the animation editor).

I want the torso (specifically the waist motor6D) to rotate exactly like how the red circle is affecting it. I believe the HumanoidRootPart’s CFrame can achieve this with its right vector, but I do not know how to do it.

I have done something similar to this before. If this was not an animation, I could have altered the C0 to look up and down, then alter C1 for the bow stance. However, the animation applies the stance beforehand, so this only achieves the result shown above in the video.

Here is the code I used so far:

--// This goes in a Script in a Dummy from the animation editor
local C = script.Parent
local H = C:WaitForChild("Humanoid")

local ANIMATOR = H:WaitForChild("Animator")

local ANIM = Instance.new("Animation")
ANIM.AnimationId = "rbxassetid://9397669280" --// Replace this with your own anim asset

local ANIM_PLAY = ANIMATOR:LoadAnimation( ANIM )
local WAIST = C.UpperTorso.Waist

ANIM_PLAY:Play()

local ORIGINAL_WAIST_C0 = WAIST.C0
local TARGET = workspace:WaitForChild("Target").PrimaryPart

game:GetService("RunService").Heartbeat:Connect(function(deltaTime)
	
	local ROOT_CFRAME = C.HumanoidRootPart.CFrame
	local yAim = ROOT_CFRAME:PointToObjectSpace( TARGET.Position ).Unit
	yAim = math.asin( yAim.Y )
	
	WAIST.C0 = ORIGINAL_WAIST_C0 * CFrame.fromOrientation( yAim, 0, 0 )
	
end)

And here’s the place that I made the examples if the animation is needed:
bow.rbxl (71.9 KB)