В предыдущем ответе предложили использовать canvas, несколько человек советовало SVG. Я соглашусь с людьми, предложившими SVG:
Преимущества:
- Векторное изображение (можно сколь угодно увеличивать);
- Надёжнее, чем верстать с помощью CSS (может вести себя по-разному в разных браузерах);
- SVG легко "раскрашивается" в CSS.
Но если стоит задача сверстать это только с помощью HTML5+CSS3, то используйте трансформации. Один треугольник - отдельный блок, тени у всех одинаковые (вроде бы).
В принципе и на CSS не так сложно реализовать, как казалось сначала. Но я бы использовал SVG.