I don't know if it'll work as a sprite, but you cold try a custom sprite texture that fades in/out relative to distance, IE the respawn room no entry texture.
When I created one of my own proximity-sensitive textures, all I did was copypasta the the VMT data from the no entry brush into a new VMT
"LightmappedGeneric"
{
"$basetexture" "yourfolder/yourtexture"
"$translucent" 1
"$playerdistance" "0"
"$distanceclamped" "0"
"$distanceinverted" "0"
"$teammatch" "0"
"$matchinverted" "0"
"$endalpha" "0"
"$one" "2"
"$fadedistance" "1600" (modify this to control when your texture fades)
$distancealpha 1
"Proxies"
{
"PlayerProximity"
{
"resultVar" "$playerdistance"
"scale" 1.0
}
"Clamp"
{
"srcVar1" "$playerdistance"
"min" "0"
"max" "$fadedistance"
"resultVar" "$distanceclamped"
}
"Subtract"
{
"srcVar1" "$fadedistance"
"srcVar2" "$distanceclamped"
"resultVar" "$distanceinverted"
}
"PlayerTeamMatch"
{
"resultVar" "$teammatch"
}
"Subtract"
{
"srcVar1" "$one"
"srcVar2" "$teammatch"
"resultVar" "$matchinverted"
}
"Divide"
{
"srcVar1" "$distanceinverted"
"srcVar2" "$fadedistance"
"resultVar" "$endalpha"
}
"Multiply"
{
"srcVar1" "$endalpha"
"srcVar2" "$matchinverted"
"resultVar" "$alpha"
}
}
}