The best coming-of-age stories remind you of something from your own life, while also making you realise the truth in someone else's.
And so it is with actor-turned-director Joel Edgerton's Boy Erased, a film that is guaranteed to make viewers feel very angry, but is also determined that they shouldn't lose hope.
Based on the 2016 memoir by Garrard Conley, this sublime study of love and acceptance sees pastor Marshall (Russell Crowe) and devout wife Nancy (Nicole Kidman) left reeling after their 18-year-old son Jared (Lucas Hedges) tells them that he is attracted to men.
Their reaction - as much driven by ignorance as terror - sees them enrol Jared in a conversion therapy programme headed Victor Sykes (played by director Edgerton). Behind closed doors the hardness of the sell is in direct proportion to the inconvenience of the truth.
Having initially bought into the spiritual snake oil and the idea that something is 'broken' and can be 'fixed', Jared finds his voice as those in authority start raising theirs. As the battle of wills plays out, what chances of a change of heart at home?
Edgerton imbues Boy Erased with the dynamics of a thriller but never loses sight of the family at its centre. Building on his momentum from Manchester by the Sea and Lady Bird, Lucas Hedges delivers a performance of quiet dignity and evolving courage. In the supporting roles, Kidman and Crowe do some of the best work of their careers - she's all steel beneath the surface, he's softer than he's willing to admit.
As the tension builds and the screen-directed exhortations for Jared to start running intensify, Edgerton masterfully teases out the ties that bind to explain why we're not seeing a clean pair of heels. How easy it is to be wise while watching someone else's life.
And what a pity there hasn't been more made of this film.
We need your consent to load this YouTube contentWe use YouTube to manage extra content that can set cookies on your device and collect data about your activity. Please review their details and accept them to load the content.Manage Preferences