Remove CGContextBeginTransparencyLayer for shadows. Instead, give text an offset and then remove that same offset from the shadow, making it visible and the text not.