You have to tessellate the quad if you want the page to bend. You can either do that on the CPU (so you are in fact not using a quad at all, but a number of triangles to model each page), or you can do it on the GPU with OpenGL 4 (where you in fact model the page with a single quad-shaped GL_PATCHES primitive).
I’ll let someone else tackle the shadow casting question. There are a number of different techniques to accomplish that.