2 of 4 added 106 characters in body

Haskell, 84 83 bytes

z=zipWith
e=[]:e
f l=foldr1(z$z(+))$scanr(\_->foldr(zipWith(:))e.map reverse)l"abc"

Try it online!

Thanks to totallyhuman for daving 1 byte!