HTML/CSS-верстка тут практически непригодна.
Нужно использовать какую-то графическую библиотеку, работающую с графикой как с логическими примитивами (то есть не только рисует, но потом умеет двигать, обрабатывать действия пользователя и пр.). Это может быть и SVG, и canvas - кому что привычнее и удобнее. В качестве примеров можно привести Snap.svg и Paper.js соответственно, но не обязательно их, есть и другие альтернативы.