Zach, thanks for the detailed reply.
Ok, I see the ease:Back.easeOut is changing the opacity in the example. The better statement is that I can't see any effect, rather than it isn't working.
I want it to bounce, and that would seem to require a transform of some sort (i.e changing y).
The problem is that it is a matrix transformation which has both a -90 degree rotation and a scale:
transform="matrix(0,-0.95087276,1.0516654,0,0,0)"
So the question is how to determine transformOrigin to use in GSAP. "50% 50%" is supposed to be the center of its bounding box, I believe. (I haven't found transformOrigin in the docs.) I don't see why "50% 50%" doesn't work. The -90 degree rotation should not affect the center of rotation. So how do you do the math to determine the percents that GSAP wants. (I can do the math to figure out the scale, knowing it is a -90 deg rotation. Actually it looks like sy = -.95087276 and sx = -1.0516654. )
The scale is near 1, so I would expect it to be "approximately" right with "50% 50%" though. In reality, you don't see the text at all. Also timeline.from() is supposed to return to its original state. Why specifying a transformOrigin would affect its final state is not something I understand.
I also don't see why a transformOrgin would affect opacity one way or the other either (there is no transform), but empirically it doesn't work unless I remove it.
To be clear, I am not saying GSAP has an error. I might say it is unclear to me how to use it in this case, however.
Thanks.