I will get a CodePen up if possible – need to extract this from a lot of code unfortunately.
Does this make any more sense?
// circle fades in from 0 alpha
tl.to(circle, 0.8, { alpha: 1.0, ease: Sine.easeInOut }, "-=0");
// circle scales down to scale 1 over 15 seconds
tl.to(circle, 15, { scale: 1, ease: Sine.easeInOut } "-=0");
// image comes in and covers the whole frame (without waiting 15 seconds)
tl.to(image, 1.6, { alpha: 1.0, ease: Expo.easeInOut }, "-=1");
// Rest of timeline without having to rewrite above as this
tl.to(image, 1.6, { alpha: 1.0, ease: Expo.easeInOut }, "-=15"); // << Without increasing offset here