How do I make it so the position gets added 3.96600 without using CFrames because im trying to smoothly open the door

local TS = game:GetService("TweenService")
local player = game.Players
local door = script.Parent.Union
local ProxPrompt = script.Parent.Prox1.ProximityPrompt
local ProxPrompt2 = script.Parent.Prox2.ProximityPrompt


local accesslevel = script.Parent["Access level"]
local PermAccess = accesslevel.Value

local TweenService = game:GetService("TweenService")
local TweenIn = TweenInfo.new(4, Enum.EasingStyle.Quad,  Enum.EasingDirection.Out)



ProxPrompt.Triggered:Connect(function()
	if ProxPrompt.ActionText == "Close" then
		door.CFrame = CFrame.new(door.Position) + Vector3.new(0, 0, 3.96600)
		ProxPrompt.ActionText = "Open"
		ProxPrompt2.ActionText = "Open"
	else
		door.CFrame = CFrame.new(door.Position) + Vector3.new(0, 0, -3.96600)
		ProxPrompt2.ActionText = "Close"
		ProxPrompt.ActionText = "Close"
		wait(6)
		door.CFrame = CFrame.new(door.Position) + Vector3.new(0, 0, 3.96600)
		ProxPrompt2.ActionText = "Open"
		ProxPrompt.ActionText = "Open"
	end
end)

ProxPrompt2.Triggered:Connect(function()
	if ProxPrompt2.ActionText == "Close" then
		door.CFrame = CFrame.new(door.Position) + Vector3.new(0, 0, 3.96600)
		ProxPrompt2.ActionText = "Open"
		ProxPrompt.ActionText = "Open"
	else
		door.CFrame = CFrame.new(door.Position) + Vector3.new(0, 0, -3.96600)
		ProxPrompt2.ActionText = "Close"
		ProxPrompt.ActionText = "Close"
		wait(6)
		door.CFrame = CFrame.new(door.Position) + Vector3.new(0, 0, 3.96600)
		ProxPrompt2.ActionText = "Open"
		ProxPrompt.ActionText = "Open"
	end
end)