NOTE: “Zack Snyder’s Justice League” is available to stream on HBO Max as a Max Original Film in available markets, and on Crave as a Crave Original Film here in Canada. It has also now been made available for offline home viewing via VOD platforms and DVD/Blu-Ray. While this is a movie meant for consumption in the home, we nonetheless advise that anyone attending a movie theatre over the course of the ongoing COVID-19 pandemic not do so full without a full vaccination. In the event that you do attend a movie theatre over the duration of the pandemic, please follow the public health guidelines in your region, and do not attend movie theatres if you feel unwell, or have recently been exposed to COVID-19 through a known positive case.
FOR REFERENCE: This review is based on an at-home viewing via 4K Blu-Ray.
It’s a strange cinematic world we live in when Marvel’s Avengers are a household name, and DC’s Justice League is not. Despite the fact that both flagship superhero teams are more or less the same in terms of function and scope between Marvel’s and DC’s respective fictional universes, Marvel Studios’ 2012 mega-hit crossover movie, The Avengers took the world by storm, and changed the landscape of cinema forever, while 2017’s Justice League underperformed at the box office, and was widely criticized for being a tonally-inconsistent, ill-fitting payoff to an already-confused superhero movie universe. This is also despite the fact that both The Avengers and Justice League were ultimately overseen by the same director, Joss Whedon, after Justice League’s initial director, Zack Snyder had to excuse himself from production, following the tragic suicide of his daughter, Autumn.
Whedon can certainly be credited with wrangling the scattered vision of Justice League into an accessible and watchable final product that Warner Bros. could show to investors, and moviegoers could see on the big screen. Beyond that though, Whedon’s more light-hearted vision for the movie was clearly at odds with Snyder’s darker, headier ambitions for the shared DC Extended Universe movie canon, resulting in a Justice League movie that, while watchable enough, was ultimately forgettable and blatantly compromised. Indeed, we’ve now gotten confirmation that Whedon absolutely gutted Snyder’s Justice League footage during production, removing several entire characters and pivotal story arcs, and replacing them with what seems to be an attempt to chase Marvel Studios-style popcorn whimsy. While this did make Justice League more accessible for mainstream audiences, it wasn’t exactly respectful of what Snyder had previously worked on building since 2013’s Man of Steel, something that also irked DC fans, many of whom quickly began calls to Warner Bros. to release the ‘Snyder Cut’ of Justice League.
The most surprising part of such a dramatic story? These calls were actually answered by the studio!… Eventually. While years went by with Warner Bros., DC, Zack Snyder, Joss Whedon and the various DCEU actors all denying the existence of a so-called ‘Snyder Cut’ of Justice League, last year’s DC FanDome event finally showed us that, yes, at long last, Zack Snyder was being rehired to finish his original vision for Justice League, with the Snyder Cut, billed as ‘Zack Snyder’s Justice League‘, being released exclusively on HBO Max (or Crave, for us Canadians) in early 2021. Since then, Zack Snyder’s Justice League has more recently been released on digital VOD and Blu-Ray as well, which is good news for us Canadians, as we can now finally watch the movie in 4K, an option that bafflingly isn’t there on our Crave streaming service, which only offers Zack Snyder’s Justice League in 1080p HD.
While Snyder and Warner Bros. have repeatedly stressed that Zack Snyder’s Justice League is completely non-canon within the DCEU, and merely presents an opportunity for Snyder to complete his original vision without compromise, I confess that this massive watershed moment for the DC community initially defeated me as a critic. I’ve been attempting to complete a review of this movie for months now, only to hit up against my own lack of objectivity regarding the production. After all, how can one be impartial about a love letter to early DCEU loyalists that most any other studio would never allow to exist? It almost never happens with me, but in this case, I just couldn’t crack a way to present Zack Snyder’s Justice League in a broader, more accessible manner that went beyond my deep-rooted feelings regarding Zack Snyder’s original, since-abandoned vision for the DCEU, and how DC fans like myself actually got legitimate closure regarding the original DCEU that might have been.
Now that six months have passed however, and with Zack Snyder’s Justice League re-entering the cultural conversation thanks to its recent Blu-Ray release, I think I’ve gotten to the bottom of my complicated assessment of it. Thus, I’m pulling back the towel I initially threw in, and pulling a Zack Snyder move of my own in the process, finishing one of the only ‘lost’ reviews I’ve ever attempted!
I can start by confirming that Zack Snyder’s Justice League is one of those movies that feels very impressive to behold (plus it’s definitely a significant improvement over 2017’s compromised theatrical cut of Justice League), but it still isn’t all that friendly to a mainstream audience, least of all with its gargantuan four-hour runtime! If anything, Zack Snyder’s Justice League serves as definitive proof that Zack Snyder’s deep, dark, mature-minded DCEU vision would have better thrived as a separate ‘Elseworlds’ storyline that’s independent of another, more audience-friendly flagship DCEU narrative, like the one Warner Bros. is trying to build now, in the post-Snyder era. It’s certainly an awe-inspiring curiosity piece, but for anyone outside of the die-hard DC fandom, one viewing of Zack Snyder’s Justice League is going to be more than enough.
Zack Snyder’s Justice League has many, many crucial characters. Too many to adequately outline in a single review. The good news is, several of these characters were already established well enough in the 2017 theatrical cut of Justice League, or perhaps within their own solo movies, which Henry Cavill’s Superman, Gal Gadot’s Wonder Woman and Jason Momoa’s Aquaman have so far achieved. Cavill’s Superman characterization is fully intact here, seeing as Zack Snyder also directed the DCEU’s Superman-fronted progenitor movie, Man of Steel, though there are definitely some key differences in the backstories and general dispositions of Gadot’s Wonder Woman and Momoa’s Aquaman in Zack Snyder’s Justice League, whose histories and personalities have since been altered in successive DCEU movies like Aquaman and Wonder Woman 1984.
The theatrical cut of Justice League also already established Ezra Miller’s Flash to reasonably good effect, before he headlines his own solo DCEU movie in 2022. There isn’t much of substance added or subtracted from Superman, Wonder Woman, Aquaman or Flash in Zack Snyder’s Justice League, though this version of the movie does restore some of their cut supporting characters. Willem Dafoe’s Vulko, who was originally introduced to the canonical DCEU in 2018’s Aquaman, appears in an altered form in Zack Snyder’s Justice League for example, who, alongside Amber Heard’s familiar Mera (now sporting a strange British accent here), basically exists to prod Aquaman into realizing his destiny in Atlantis, citing a bunch of character details that were retconned out of the canonical DCEU in Aquaman anyway. On a more novel note, Kiersey Clemons’ Iris West, the eventual love interest to Ezra Miller’s Flash, makes her non-canonical DCEU debut here, even though all she does is make awkward googly eyes at her eventual superhero paramour in this case, thus necessitating what’s otherwise a pretty noteworthy save sequence for The Flash.
Regarding Vulko and Iris, one can see why Joss Whedon ultimately snipped them out of Justice League’s original theatrical cut, because it’s true that they don’t add much of urgency to the storyline for Aquaman or The Flash, respectively, even in Zack Snyder’s Justice League. It’s actually Batman and his faithful butler, Alfred, played once again by Ben Affleck and Jeremy Irons, respectively, who get noticeably better characterization and more effective dialogue in Zack Snyder’s Justice League. Their character arcs are mostly the same as they were in the theatrical cut, but the interactions between Batman and Alfred, and both characters’ interactions with the other superheroes, feel so much less corny and so much more genuine now. This is also further evidence that Affleck was really robbed as the DCEU’s Dark Knight, one that deserved so much more of a chance to flourish within his own dedicated DCEU Batman franchise.
The hero that was really robbed in the original theatrical cut of Justice League however, perhaps partially explaining the bad blood between Whedon and his actor, is Ray Fisher’s Cyborg, who is monumentally improved as a character in Zack Snyder’s Justice League. I don’t know if it was coincidence or spite, but for whatever reason, Whedon apparently cut out most of Fisher’s best scenes in Justice League’s theatrical cut. Zack Snyder’s Justice League however finally shows off a much greater scope to Cyborg’s abilities, a much deeper, more complex look at his personality, and a much more in-depth examination of Cyborg’s tense relationship with his father, Silas Stone. All of this leads to an enormously improved character arc for Cyborg, one that better establishes his place on the team, makes him feel like far more than the brooding bore he was in the theatrical cut, and does a much better job of foreshadowing a tight-knit friendship between Cyborg and The Flash, which was originally supposed to carry over into the since-heavily-reworked The Flash solo movie.
Surprisingly though, more than the heroes, it’s Justice League’s central villain, Steppenwolf that most benefits from the extended, untainted narrative of Zack Snyder’s Justice League. In the theatrical cut, Steppenwolf was little more than a kooky, obsessive weirdo that hunted Justice League’s key macguffins, the Mother Boxes simply because he was supposedly driven insane by a retreat. It’s a weird, non-sensical villain backstory, especially by modern superhero movie standards. In Zack Snyder’s Justice League however, Steppenwolf suddenly becomes a much more imposing, effective, multi-layered threat, having been forced into a campaign of conquest against his will by his master, Darkseid, who is now seen in the flesh for the first time in the DCEU here, albeit not canonically anymore. Bullied into action on Earth by his direct superior, DeSaad, yet another character that Whedon originally cut out of the movie entirely, Steppenwolf is instead trying to use the Mother Boxes, who can supposedly lead him to Darkseid’s greatest desire, the Anti-Life Equation (a cursed mathematical phenomenon that allows control of everything in the multiverse), to buy his way back into his home world, Apokolips. This is a much better, much more interesting villain portrayal, one that makes Steppenwolf more scary and tragic, and less goofy and annoying, like he was in the theatrical cut.
While the performances in Justice League’s theatrical cut were nonetheless… Fine, that idea of the performances feeling more genuine and effective is constantly prevalent throughout Zack Snyder’s Justice League. Now that the movie is no longer working with a compromised, inconsistent directorial hand, the characters suddenly feel much more believable and grounded, and less like they’re trying to impotently appeal to the MCU crowd. Though many of the character arcs are very similar to those in the theatrical cut, with only Cyborg’s and Steppenwolf’s arcs being significantly different in Zack Snyder’s Justice League, every performance carries so much more weight, and feels so much more memorable when they don’t have to work around dorky Whedon dialogue and staging that just doesn’t fit with the early Snyder vision behind the DCEU. It’s just a shame that we got such a promising display of these boosted performances and deeper character arcs in Zack Snyder’s Justice League, only to know that they’re doomed to go nowhere from here.
Zack Snyder’s Justice League probably didn’t need to be four hours long, especially when its world-building is largely pointless at this stage. It is cool to get a (very) extended peek at the direction that the DCEU was originally supposed to go in though, even if Zack Snyder’s former plans for DC’s shared cinematic universe have been almost entirely abandoned at this point. Regardless, for those disappointed with the theatrical cut of Justice League in particular, Zack Snyder’s Justice League more adequately pays off the character storylines that first originated in Man of Steel and Batman v Superman: Dawn of Justice. It’s a more complete narrative that’s primarily tripped up by its grossly excessive length and highly scattered focus during its first half especially.
The best thing about Zack Snyder’s Justice League is also the worst thing too, namely that it’s a project made explicitly for people that already love the DC Universe, and are already heavily invested in epic, huge-scale DC movies. If that’s not you, and hell, even if it is to some degree, Zack Snyder’s Justice League is a very exhausting watch, even more so than Man of Steel and Batman v Superman: Dawn of Justice were. Snyder’s overdone story ambitions are enabled to fully let loose in the plotting here, and while this allows for a necessary smoothing out of Justice League’s heavily inconsistent theatrical cut, trying to consume all of Zack Snyder’s Justice League in one sitting is like trying to binge through a dense, dreary HBO miniseries in one sitting. It’s possible, and can be really satisfying at its best, but watching a movie still shouldn’t take this much out of you, least of all a superhero ensemble movie!
Even thinking about the sequels that Zack Snyder’s Justice League was originally supposed to set up a few years ago can feel exhausting. There’s clearly a deep, intriguing vision for the DCEU driving this movie, one that shines through now that it hasn’t been tampered with by Joss Whedon, but that vision is just too inaccessible for non-fans to truly soar. The impotent sequel-baiting is especially difficult to get through, teasing a post-apocalyptic world wherein Darkseid is king, Superman has become his evil fixer, and many familiar DC heroes and villains end up being killed in the resulting carnage. Perhaps that movie would have been really cool, if it were allowed to happen. Alas, we’ll never know.
Zack Snyder’s Justice League does try to ease its ridiculous length by dividing itself into a series of ‘parts’, as if it actually were an HBO miniseries. The division behind each ‘part’ of the movie feels head-scratching though, and they don’t really flow that organically. These ‘parts’ instead feel like a loose sequence of polished, intriguing story concepts at first, concepts that eventually pull themselves together into an earnest fight to save Earth from the first forces of Apokolips. These separate sections in the movie’s narrative still take a lot longer to focus and get going compared to how the admittedly better-paced theatrical cut of Justice League presented itself though, resulting in a pretty cool, if overlong DC movie that most people probably won’t want to attempt entirely viewing in one go.
(NOTE: The ‘Spoiler’ section, when clicked, discusses whether Zack Snyder’s Justice League has any post-credits scenes, whether it features any additional DC character roles of note, and whether it ties into any known future projects in the DCEU.)
More sequel teases in Zack Snyder’s Justice League also provide some solid, if frustrating fan service for the DC faithful. These include restored scenes depicting Ryan Choi, a man who becomes superhero, The Atom in DC Comics lore, as a lab assistant to Silas Stone, as well as scenes depicting Man of Steel’s and Batman v Superman: Dawn of Justice’s military figure, Calvin Swanwick being revealed as a disguised Martian Manhunter. The largest moot sequel tease however is an epilogue sequence revealing the true nature of Batman’s ‘knightmares’ from Batman v Superman: Dawn of Justice, which depicts a devastated Earth conquered by Darkseid, one where Superman has become Darkseid’s evil enforcerer, following the death of Lois Lane. Wonder Woman and Aquaman are revealed to have been killed by Darkseid in this bleak future, and Batman has since assembled a small resistance consisting of The Flash, Cyborg, Mera, and, most curiously of all, Deathstroke, and Jared Leto’s Joker from 2016’s Suicide Squad! This bittersweet tease marks (so far) the one and only time that Ben Affleck’s Batman and Jared Leto’s Joker truly share a scene together, leaving more untapped DCEU potential on the table, as the standalone Robert Pattinson-fronted universe of The Batman stands poised to take over the Dark Knight’s movie franchise.
One of the biggest, most defining alterations behind Zack Snyder’s Justice League is, unsurprisingly, its direction, the main thing that solidifies its existence alongside 2017’s theatrical cut of Justice League. While the theatrical cut of Justice League was still full of plenty of footage directed by Zack Snyder, with Snyder also being the only credited director in its final product, it’s also true that the over-arching tone and structure behind Justice League’s theatrical cut was very much Joss Whedon’s work. Whedon’s extensive alterations are naturally erased in Zack Snyder’s Justice League too, which doesn’t use a single shred of Whedon’s footage or re-worked dialogue. This means that most of the awkward jokes and fan-baiting moments throughout Justice League’s theatrical cut are thankfully gone in Zack Snyder’s Justice League, which contains more balanced and logical character speech, and a much more foreboding tone overall.
Now that he’s fully unleashed to do what he wants as well, Snyder also brings Zack Snyder’s Justice League much more in line with his previous directing sensibilities behind Man of Steel and Batman v Superman: Dawn of Justice, for good or for ill. This means more Snyder-style slow-mo shots (even if several of these were still present in the theatrical cut), much more overwrought dramatic flourishes, and definitely much more violence. The more drawn-out, melodramatic Snyder direction is also a major contributor behind the enormous four-hour runtime that comprises Zack Snyder’s Justice League, which is full of lengthy dialogue moments and plenty of jumping around between a huge collection of settings and character perspectives, with no regard for pacing.
Seeing as Zack Snyder’s Justice League is primarily designed for hardcore DC fans, it feels inevitable that it wouldn’t care about catering to mainstream viewers. Even so, it’s tough to deny that there are several stretches of Zack Snyder’s Justice League that are boring and needlessly drawn-out. At worst, the movie even gets Amazing Spider-Man 2 syndrome, where it’s even more aggressive than the theatrical cut when it comes to setting up then-future DCEU movies like Aquaman, Cyborg and The Flash, along with multiple Justice League sequels, which have either been heavily re-tooled and handed off to new overseers, or cancelled entirely. As much as it complements the tease for where Snyder would have gone with the DCEU, had he remained in charge of it past 2017, and had Justice League been more successful at the global box office that year, the sequel teases in Zack Snyder’s Justice League are innately unnecessary and moot now, and non-fans in particular will see them as a waste of time.
The massive polish behind Snyder’s direction can’t be understated, but as impossibly grand as it is, Zack Snyder’s Justice League maintains several of Snyder’s frequent shortcomings as a director. He sometimes focuses too much on the wrong details, some of his visual flourishes are annoying and meaningless (Snyder especially goes to town with The Flash on this note!), and, as previously mentioned, he has no regard for pacing whatsoever. DC fans probably won’t be bothered by how unfocused Zack Snyder’s Justice League can sometimes be, but that’s also another sticking point for viewers who are trying to rely on this revamped movie as their latest gateway drug to more investment in the DCEU and its future crossover potential. In terms of strengthening the DCEU’s appeal overall, Zack Snyder’s Justice League doesn’t really do that, especially when it’s blatantly non-canon. It’s a beautifully polished streaming blockbuster that’s more consistently put together than its 2017 origin, but Zack Snyder’s Justice League also predictably can’t erase every problem that was present in Justice League’s theatrical cut, nor does it magically reverse every less successful decision that the DCEU made under Snyder’s supervision.
Tom Holkenborg returns to provide the score for Zack Snyder’s Justice League, after walking away from the original theatrical cut of the movie in 2017, following Zack Snyder’s departure from that project. Holkenborg already delivered a superb music suite to Batman v Superman: Dawn of Justice in 2016, and those soundtrack sensibilities are carried over excellently to Zack Snyder’s Justice League. This new Holkenborg score also stands as a noticeable improvement over Danny Elfman’s shakier score from Justice League’s theatrical cut, another ill-fitting component to that movie, being a more fluffy, fan-baiting soundtrack that didn’t mesh well with the movie’s presentation, despite how desperately it wanted to call back to fan-favourite DC movie music. Fortunately, Holkenborg corrects that with a more edgy and impressive music suite for Zack Snyder’s Justice League, and most importantly, a music suite that fully fits with what’s going on on-screen.
As for the rest of the audio work behind Zack Snyder’s Justice League, it’s certainly very imposing, once again emphasizing the sheer, god-like might behind the DCEU’s flagship superheroes. The booming majesty of a theatre sound system is definitely missed in this case though, so hopefully you have a solid home theatre setup to best take advantage of the massive scope behind the action scenes throughout Zack Snyder’s Justice League. Those specifically coming for the action may be a bit surprised at some of the amped-up, grittier sound mixing here as well, with Zack Snyder’s Justice League being free to embrace an R-rating, contrary to the theatrical cut’s expected PG-13 rating, which results in a more lethal, uninhibited sense of destruction overall. Limbs get severed, people get vaporized, and all sorts of violent new imagery occurs in Zack Snyder’s Justice League that wasn’t present in the original 2017 release, even if many of the sound flourishes behind the theatrical cut of Justice League are nonetheless maintained, and given a bit of extra ‘oomph’ at best.
For all of its many faults, 2017’s theatrical cut of Justice League at least remained a visual marvel, if also one that completely went against Zack Snyder’s original visual palette for the DCEU. One thing that’s very quickly apparent throughout Zack Snyder’s Justice League is just how much widespread colour correction Joss Whedon did on the original theatrical cut, which was far brighter and more comic book-y in appearance. This was especially evident during Justice League’s original 2017 climax, which had a strange orange hue over it in the theatrical cut, a sequence that Zack Snyder’s Justice League completely restores with its night-shot, darker blue tone, as originally intended. The character appearances and overall presentation also return to being dimmer and more shaded in tone in this 2021 revision, something that’s even more evident if you opt for the ‘Justice is Gray’ viewing format, which converts all of Zack Snyder’s Justice League into a monochromatic, noir-style experience, not unlike that of 2017’s black-and-white cut for 20th Century Studios’ Wolverine movie climax, Logan.
This does however bring me to the major elephant in the room when it comes to Zack Snyder’s Justice League, namely that the entire movie is presented in a 4:3 aspect ratio, a strange demand that Zack Snyder supposedly insisted on. This means that the movie is effectively not available in widescreen, making it look compressed and weird on modern TV’s, with big black columns on the left and right sides of your display when the movie is viewed on a large 4K television especially. The good news here is, if you hate this 4:3 effect (as quite a few people did), it seems to be negated if you watch Zack Snyder’s Justice League on a tablet or smartphone, which just presents the experience as if it were like any other movie. Even if we can finally take advantage of genuine 4K viewing options for Zack Snyder’s Justice League here in Canada though, these options are diminished somewhat by the strange 4:3 aspect ratio, leaving the movie unable to fully optimize itself for larger 4K displays, let alone 8K displays!
In the end, while the 4:3 aspect ratio does carry a certain sense of stature and eccentric scale, one that may very well grow on you if you keep an open mind, it’s obviously a poor fit for modern televisions, and undermines an experience that’s clearly designed for a high-end 4K television most of all. There’s not even an option to change the presentation to 16:9 to boot, which does feel a bit unfriendly to viewers, especially when an option to watch the movie in black-and-white is there! That will definitely frustrate those unwilling to embrace the 4:3 presentation, because Zack Snyder’s Justice League is otherwise an amazingly polished visual experience, just as Snyder’s previous two DCEU movies were. Its re-corrected colouring actually makes the experience better, not worse to boot, even if it does return to the duller, more washed-out looking palette that was designed for Man of Steel and Batman v Superman: Dawn of Justice.
For better or worse, Zack Snyder’s untainted vision for Justice League is darker (metaphorically and literally), and less faithful to the visual sensibilities behind most other DC media. This does however give the movie a more cohesive and distinct sense of identity than its theatrical cut had, flourishing as a colossal blockbuster that was somewhat denied its true destiny on the big screen. The ironic freedom given to Zack Snyder’s Justice League as a non-canon passion project really allows it to let fly with its surprising brutality too, complete with blood spatters, maiming and a much more grisly end for certain doomed characters. This is a bold departure from the revised visual sensibilities behind the more recent DCEU movies in particular, though avid DC fans will no doubt love it, even if younger viewers are probably best left sticking to the cleaner, safer theatrical cut of Justice League.
To avid DC fans, Zack Snyder’s Justice League, while still very much imperfect, feels like sweet salve on the open wound that is the early DCEU’s disappointments. It’s the DC crossover movie that Zack Snyder always wanted to make, and the one that best caps off the spiritual DC movie trilogy that Snyder began with 2013’s Man of Steel, and continued in 2016’s Batman v Superman: Dawn of Justice. Even for the most hardcore of DC loyalists however, Zack Snyder’s Justice League is often an exhausting watch, not just because it features so much promising DCEU world-building that ended up right in the garbage, but also because it’s four hours long, and can be painfully overwrought. This is also before considering non-fans that are less invested in the big screen career of DC, and who will most likely find Zack Snyder’s Justice League to be a beautiful, but frustratingly alienating revision to a failed DCEU crossover project that deserved a much better fate.
What is indisputable however is that Zack Snyder’s Justice League almost universally improves on Justice League’s confused, ill-fated theatrical cut. The main thing working against it on that note is its agonizing runtime, and, for younger viewers at least, its arguably unnecessary R-rating. As I said, the real tragedy behind the belated existence of Zack Snyder’s Justice League is that it solidifies the limited appeal behind Snyder’s early vision for the DCEU, which feels too impenetrable for too many viewers, and too dark for the modern landscape of MCU-dominated superhero movies. Snyder’s dark, adult-oriented ideas for the DCEU aren’t without merit or intrigue, but they belong in a separate Elseworlds universe, like Zack Snyder’s Justice League ultimately stands in, free to exist independently in a self-contained continuity bubble that doesn’t interfere with a more flexible, audience-friendly flagship DC movie universe. I guess that’s ultimately how things panned out regardless, now that the DCEU has embraced a brighter, more colourful palate of recent movies that are less focused on directly competing with the MCU.
Personally, I enjoyed Zack Snyder’s Justice League quite a bit, despite its frustrating aftertaste, though I concede that I’m within its target audience. It certainly ranks beneath more recent DCEU successes like Aquaman, Shazam! and The Suicide Squad, but it’s also better than divisive misfires like the theatrical cut of Batman v Superman: Dawn of Justice and 2016’s Suicide Squad. Zack Snyder’s Justice League may not have amounted to the Justice League movie franchise we were supposed to get, but it does effectively give DC fans the closure they’ve demanded when it comes to the DCEU’s angsty growing pains, while providing a poignant creative victory that restores a lot of heart to Hollywood’s superhero movie machine.