I think using grid is a better and easier approach here, but my first instinct on achieving this layout is to use positioning style attribute.
Firstly, at the desktop view, I set a max-height and max-width for the cards section and the cards themselves, and set the card container to relative position. Then, I position each cards with absolute positioning and translateX / Y, and adjust the position based on preview.
For example, to position the supervisor cards, I set its position value to absolute, follow by top: 50%, which set the top-left corner part of the card to the left centre of the container. Then, to make sure the card is positioned exactly at the centre, I use
transform: translateY(-50%)
to position the card itself up of its own height.
Follow by the same logic, you do the same thing to each of the cards, and you would eventually achieve the same layout.
Best,
Chee Kian Teoh