Deprecated: Creation of dynamic property ATTO_PluginUpdate::$license is deprecated in /mnt/storage/stage/www/wp-content/plugins/advanced-taxonomy-terms-order/include/class.atto.plugin-updater.php on line 29
Moonlight review: 'An essential, heart-wrenching exploration of sexuality and masculinity' - Attitude
Deprecated: mb_convert_encoding(): Handling HTML entities via mbstring is deprecated; use htmlspecialchars, htmlentities, or mb_encode_numericentity/mb_decode_numericentity instead in /mnt/storage/stage/builds/streampublishing-attitude-server/latest-1.16.1-1793359797.063729/pugpig-attitude-theme/functions.php on line 974
Skip to main content
Deprecated: mb_convert_encoding(): Handling HTML entities via mbstring is deprecated; use htmlspecialchars, htmlentities, or mb_encode_numericentity/mb_decode_numericentity instead in /mnt/storage/stage/builds/streampublishing-attitude-server/latest-1.16.1-1793359797.063729/pugpig-attitude-theme/functions.php on line 974

Deprecated: Return type of PugpigSiteGoogleAnalytics_Vendor\Google\Protobuf\Internal\RepeatedField::offsetExists($offset) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /mnt/storage/stage/builds/pugpig-site-server/latest-1.61.0-1793359797.063729/pugpig-site-google-analytics/src/vendor/google/protobuf/src/Google/Protobuf/Internal/RepeatedField.php on line 218

Deprecated: Return type of PugpigSiteGoogleAnalytics_Vendor\Google\Protobuf\Internal\RepeatedField::offsetGet($offset) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /mnt/storage/stage/builds/pugpig-site-server/latest-1.61.0-1793359797.063729/pugpig-site-google-analytics/src/vendor/google/protobuf/src/Google/Protobuf/Internal/RepeatedField.php on line 116

Deprecated: Return type of PugpigSiteGoogleAnalytics_Vendor\Google\Protobuf\Internal\RepeatedField::offsetSet($offset, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /mnt/storage/stage/builds/pugpig-site-server/latest-1.61.0-1793359797.063729/pugpig-site-google-analytics/src/vendor/google/protobuf/src/Google/Protobuf/Internal/RepeatedField.php on line 132

Deprecated: Return type of PugpigSiteGoogleAnalytics_Vendor\Google\Protobuf\Internal\RepeatedField::offsetUnset($offset) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /mnt/storage/stage/builds/pugpig-site-server/latest-1.61.0-1793359797.063729/pugpig-site-google-analytics/src/vendor/google/protobuf/src/Google/Protobuf/Internal/RepeatedField.php on line 200

Deprecated: Return type of PugpigSiteGoogleAnalytics_Vendor\Google\Protobuf\Internal\RepeatedField::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /mnt/storage/stage/builds/pugpig-site-server/latest-1.61.0-1793359797.063729/pugpig-site-google-analytics/src/vendor/google/protobuf/src/Google/Protobuf/Internal/RepeatedField.php on line 225

Deprecated: Return type of PugpigSiteGoogleAnalytics_Vendor\Google\Protobuf\Internal\RepeatedField::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /mnt/storage/stage/builds/pugpig-site-server/latest-1.61.0-1793359797.063729/pugpig-site-google-analytics/src/vendor/google/protobuf/src/Google/Protobuf/Internal/RepeatedField.php on line 236

Deprecated: Return type of PugpigSiteGoogleAnalytics_Vendor\Google\Protobuf\Internal\RepeatedFieldIter::current() should either be compatible with Iterator::current(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /mnt/storage/stage/builds/pugpig-site-server/latest-1.61.0-1793359797.063729/pugpig-site-google-analytics/src/vendor/google/protobuf/src/Google/Protobuf/Internal/RepeatedFieldIter.php on line 78

Deprecated: Return type of PugpigSiteGoogleAnalytics_Vendor\Google\Protobuf\Internal\RepeatedFieldIter::next() should either be compatible with Iterator::next(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /mnt/storage/stage/builds/pugpig-site-server/latest-1.61.0-1793359797.063729/pugpig-site-google-analytics/src/vendor/google/protobuf/src/Google/Protobuf/Internal/RepeatedFieldIter.php on line 96

Deprecated: Return type of PugpigSiteGoogleAnalytics_Vendor\Google\Protobuf\Internal\RepeatedFieldIter::key() should either be compatible with Iterator::key(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /mnt/storage/stage/builds/pugpig-site-server/latest-1.61.0-1793359797.063729/pugpig-site-google-analytics/src/vendor/google/protobuf/src/Google/Protobuf/Internal/RepeatedFieldIter.php on line 87

Deprecated: Return type of PugpigSiteGoogleAnalytics_Vendor\Google\Protobuf\Internal\RepeatedFieldIter::valid() should either be compatible with Iterator::valid(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /mnt/storage/stage/builds/pugpig-site-server/latest-1.61.0-1793359797.063729/pugpig-site-google-analytics/src/vendor/google/protobuf/src/Google/Protobuf/Internal/RepeatedFieldIter.php on line 105

Deprecated: Return type of PugpigSiteGoogleAnalytics_Vendor\Google\Protobuf\Internal\RepeatedFieldIter::rewind() should either be compatible with Iterator::rewind(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /mnt/storage/stage/builds/pugpig-site-server/latest-1.61.0-1793359797.063729/pugpig-site-google-analytics/src/vendor/google/protobuf/src/Google/Protobuf/Internal/RepeatedFieldIter.php on line 69

Home Culture Culture Film & TV

Moonlight review: ‘An essential, heart-wrenching exploration of sexuality and masculinity’

By Fabio Crispim

Following an incredible eight Academy Award nominations, dizzying levels of critical praise and a Golden Globe for ‘Best Picture’, Moonlight finally gets its UK release today (17 February).

Split into three separate acts, we follow the life of Chiron (played at different stages by Alex Hibbert, Ashton Sanders, and Trevante Rhodes), a poor Miami kid who is brought up in part by a drug dealer (played by the Oscar-nominated Mahershala Ali) and in part by his crack-addicted, abusive mother (the Oscar-nominated  Naomi Harris). As Chiron grows up, we get a claustrophobic look at the struggle of being an outcast in an already disadvantaged community.

It’s the antithesis of the polished, glossy escapism of the film’s main competitor for the coveted ‘Best Picture’ Oscar, Damien Chazelle’s La La Land. But although the issues dealt with are severe and abrasive, Moonlight remains delicate in its execution; offering a sensitive and poetic approach to homosexuality within a subculture that’s so rarely explored in film. Not often do the stories that find their way this far into the mainstream, explore, under a magnifying glass, the life of a gay black man in a deprived  neighbourhood.

We meet nine-year-old Chiron on the streets of Miami, being chased by his peers, running from his life, but also at the start of his own search. Moonlight is not only about what it’s like to struggle with being gay in the entirely black suburbs of America, but what it is to be a man and social norms surrounding masculinity affect our relationship with sexuality.While the subject matter could make for an emotionally taxing watch, the dialogue is paved with hope: Barry Jenkins’ screenplay is beautiful in its simplicity, relying just as much on its stars’ exceptional abilities to move the story along during moments of silence.

Although the third act doesn’t quite hold up to the elegant perfection of the first two, the performances from all three Chirons are exceptional in their balance of vulnerability and strength, while Harris – who’s narrowly missed out on the major awards shows so far after Viola Davis was parachuted into the ‘Best Supporting Actress’ category for her turn in Fences  – stuns in her finest performance to date.

It’s important that Jenkins’ sombre drama – he also directs – is picking up so much heat in awards season, just 12 months after the controversy that surrounded #OscarsSoWhite. But Moonlight is not pulling in the plaudits as a reaction to that affair – quite simply, it is essential viewing. It’s a film with teeth and it’s a film with a soul. Rooted in our own, often brutal reality, Moonlight awakens in its audience a wider perspective of people, of America, and of the world.

Rating: 5/5

Moonlight is in cinemas now.

For more great deals on tickets and shows, visit tickets.attitude.co.uk.

Words by Joe Passmore

More stories:
How Instagram became the new gay cruising ground
‘There’s more to me than just a body’ – Tom Daley dives into Attitude’s Body Issue