Paul achieves this by having each face of the cube be a unique DIV, each with a 'face' class and inside of a larger 'cube' class all wrapped by an 'experiment' class.The outer wrapper is the camera and allows you to apply perspective and where you want the perspective origin to be. The #cube itself is given a size, CSS transition properties so things will animate nicely, and an instruction to preserve 3D children and not 'flatten' them. Each of the faces is given some common styling. The individual face DIVs are then rotated and translated in 3D space into their correct positions.
More Info: Animated CSS3 cube using 3D transforms