flow:vertical

Two elements in the middle have heights defined in flex units so they will fill available space proportionally. UL element itself has height:* defined so it by itself will fill space left in the BODY.

Resize the window to wrap text in elements in multiple lines to see effects of vertical alignment.