Since you will have to separate lines of glass from red wine and white line on wine surface (that has to be part of animated section), seems to me easier to recreate pictogram in some vector app (so you can work with always sharp and clean shapes), import as SVG and animate with Boolean Modifier.
- add the glass Solidify modifier to get thickness, it will prevent from z-fight, or bring this object a bit above
- convert wine object (named Wine_Mask) to mesh and give it a Solidify modifier to get thickness (needed for later boolean operation)
- add a Plane to use it as a wine, split face into two, upper part for white wine surface line, the rest as wine volume, add Solidify modifier with less thickness than Wine_Mask object
- add Boolean Modifier > Intersect > Object - Wine_Mask
It can be animated in similar way as shader version too.
Shader controlled by Empty
- keeps wine surface horizontal (independent on glass rotation)
- volume controll
- parented to glass keeps location
From what I know it's the worst way ever to do something like this. Mask's shape can be animated by simply pressing I in Image Editor, but in a very limited way. From UI point of view there is not any feedback that key framing is happening, so open Dope Sheet Editor to to see them. The biggest issue is that animated points of mask transit along shortest way from key to key (see this question). It isn't such a big problem to animate straight point movement, but curvy part would has to be animated frame by frame = time consuming.