_CameraDepthTexture in Forward mode Acts like Modulo?

The attached gif shows a depth texture I wrote for a shallow pool in Forward rendering mode. Notice how as you zoom out those weird gradient bands start showing up. I’m not sure what it is, but it looks to me like it’s doing (pseudo code) _CameraDepthTexture % 1.

And here is the surface shader:

Shader "Art Leaping/Forward Depth Water"
{
	Properties
	{
		_Color ("_Color", Color) = (1,1,1,1)
		
		_SpecColor ("_SpecColor(RGB) Reflectivity(A)", Color) = (0.5, 0.5, 0.5, 1)
		_Shininess ("_Shininess", Range(0.001,4.5) ) = 2.21
		
		_ReflectiveFalloff ("_ReflectiveFalloff", Float) = 1
		
		_BumpMap ("_BumpMap", 2D) = "bump" {}
		_WaveSpeed ("_WaveSpeed", Float) = 0.1
		
		_FalloffDepth ("_FalloffDepth", Float) = 1
	}
	
	SubShader
	{
		Tags {
			"Queue" = "Transparent"
			"IgnoreProjector"="True"
			"RenderType" = "Transparent"
		}
		
		Lighting On
		ZWrite Off
		
		//---
		
		CGPROGRAM
		
		#pragma target 3.0
		
		//---
		
		float4 _Color;
		float _Shininess;
		float _ReflectiveFalloff;
		sampler2D _BumpMap;
		float _WaveSpeed;
		float _FalloffDepth;
		
		sampler2D _CameraDepthTexture;
		
		//---
		
		#pragma surface SurfaceFunction BlinnPhong alpha
		
		//---
		
		struct Input
		{
			float3 viewDir;
			float2 uv_BumpMap;
			
			float4 screenPos;
			float3 worldRefl; INTERNAL_DATA
		};
		
		//---
		
		void SurfaceFunction (Input input, inout SurfaceOutput output)
		{
			float4 ScreenDepth = LinearEyeDepth( tex2Dproj( _CameraDepthTexture, UNITY_PROJ_COORD(input.screenPos) ).x ) - input.screenPos.z;
			
			output.Albedo = _Color.rgb;
			
			float4 combinedNormal = tex2D( _BumpMap, (input.uv_BumpMap + _Time * _WaveSpeed) ) -0.5;
			combinedNormal += tex2D( _BumpMap, (input.uv_BumpMap - _Time * _WaveSpeed) ) -0.5;
			combinedNormal = combinedNormal * 0.5 + 0.5;
			output.Normal = UnpackNormal( combinedNormal );
			
			output.Emission = (1-pow(dot(normalize(input.viewDir), output.Normal), _ReflectiveFalloff)) * _SpecColor;
			
			output.Specular = _Shininess;
			output.Gloss = 1;
			
			output.Alpha = _Color.a * min(ScreenDepth / _FalloffDepth, 1);
		}
		
		ENDCG
	}
}

No ideas on this? I feel like I can’t be the only person to experience this issue considering that the shader makes a pretty straightforward use of the depth texture.

Thanks!