E4: Easing Functions
static double easeInOutCubic(double t) { return t < 0.5 ? 4 * t * t * t : 1 - math.pow(-2 * t + 2, 3) / 2; }