James McAvoy by Matthew Brookes for InStyle