<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
     xmlns:content="http://purl.org/rss/1.0/modules/content/"
     xmlns:dc="https://purl.org/dc/elements/1.1/"
     xmlns:dcterms="http://purl.org/dc/terms/"
     xmlns:media="http://search.yahoo.com/mrss/"
     xmlns:atom="http://www.w3.org/2005/Atom"
>
    <channel>
                    <atom:link href="https://www.tomsguide.com/feeds/articletype/opinion" rel="self" type="application/rss+xml" />
                            <title><![CDATA[ Latest from Tom's Guide in Opinion ]]></title>
                <link>https://www.tomsguide.com/opinion</link>
        <description><![CDATA[ All the latest opinion content from the Tom's Guide team ]]></description>
                                    <lastBuildDate>Wed, 01 Jul 2026 06:00:00 +0000</lastBuildDate>
                            <language>en</language>
                                <item>
                                                            <title><![CDATA[ 'Minions and Monsters' is no 'Toy Story 5,' but you'll still have a blast ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/entertainment/movies/minions-and-monsters-is-no-toy-story-5-but-youll-still-have-a-blast</link>
                                                                            <description>
                            <![CDATA[ "Minions and Monsters" doesn't get to the emotional depths of a Pixar film, but delivers arguably more laughs. Regardless, you'll have a blast. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">XnUjkQGG3cJ6p7RHGmTXmJ</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/YBqWw8j2vNxRmvd88XuVgg-1280-80.png" type="image/png" length="0"></enclosure>
                                                                        <pubDate>Wed, 01 Jul 2026 06:00:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Movies]]></category>
                                                    <category><![CDATA[Entertainment]]></category>
                                                                                                <author><![CDATA[ malcolm.mcmillan@futurenet.com (Malcolm McMillan) ]]></author>                    <dc:creator><![CDATA[ Malcolm McMillan ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/sSDLEbNEgBXf86HpujaWZ6.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Malcolm McMillan is a Streaming Editor for Tom&#039;s Guide, covering all the latest in streaming TV shows and movies. That means news, analysis, recommendations, reviews and more for just about anything you can watch, including sports! If it can be seen on a screen, he can write about it. &lt;/p&gt;&lt;p&gt;Malcolm has been with Tom&#039;s Guide since June 2022, starting as a staff writer covering breaking news. Since then, he&#039;s transitioned to cover artificial intelligence (AI), A/V tech and VR headsets. Since late 2023 he has almost exclusively covered streaming and entertainment for Tom&#039;s Guide.&lt;/p&gt;&lt;p&gt;Before writing for Tom&#039;s Guide, Malcolm worked as a fantasy football analyst writing for several sites and also had a brief stint working for Microsoft selling laptops, Xbox products and even the ill-fated Windows phone. He is passionate about video games and sports, though both cause him to yell at the TV frequently. He proudly sports many tattoos, including an Arsenal tattoo, in honor of the team that causes him to yell at the TV the most.&lt;/p&gt; ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/png" url="https://cdn.mos.cms.futurecdn.net/YBqWw8j2vNxRmvd88XuVgg-1280-80.png">
                                                            <media:credit><![CDATA[Universal Pictures]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[&quot;Minions and Monsters&quot; (2026)]]></media:description>                                                            <media:text><![CDATA[&quot;Minions and Monsters&quot; (2026)]]></media:text>
                                <media:title type="plain"><![CDATA[&quot;Minions and Monsters&quot; (2026)]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/YBqWw8j2vNxRmvd88XuVgg-1280-80.png" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <div  class="fancy-box"><div class="fancy_box-title">Tom's Guide Verdict: 'Minions and Monsters'</div><div class="fancy_box_body"><p class="fancy-box__body-text"><ul><li><strong>Rating:</strong> <strong>3.5/5 stars</strong></li><li><strong>Verdict: </strong>Unlike Pixar films, "Minions and Monsters" doesn't even attempt to delve into a deeper emotional story. But that's OK. The movie is clearly aimed at Minion-sized humans and their parents, and both are sure to laugh plenty in this 90-minute animated romp.</li><li><strong>Where to watch:</strong> <a data-analytics-id="inline-link" href="https://www.fandango.com/minions-and-monsters-2026-244409/movie-overview" target="_blank" rel="nofollow">See "Minions and Monsters" in theaters now</a></li></ul></p></div></div><p>"<strong>Minions and Monsters</strong>" is not only a contender for best animated movie of the summer, but it's inarguably one of the <a href="https://www.tomsguide.com/entertainment/movies/37-biggest-summer-movies-of-2026-spider-man-star-wars-the-odyssey-toy-story-and-more">biggest summer movies</a> to watch this year. But it's not the only contender; "Toy Story 5" came out a few weeks ago, and it laid down the gauntlet both critically and commercially. I rated it four stars in my <a href="https://www.tomsguide.com/entertainment/movies/toy-story-5-review">"Toy Story 5" review</a>, praising it for its fresh story.</p><p>Here's the thing, though: I'm not sure "Minions and Monsters" cares.</p><p>Don't get me wrong, I'm sure that the people over at Illumination and Universal want this animated movie about the golden age of Hollywood to make enough money to fill a studio lot. But it's clear, watching the follow-up to "Despicable Me" and "Minions," that this movie isn't concerned about plumbing the emotional depths of its characters the way Pixar tries to. Instead, <strong>"Minions and Monsters" just wants to be funny. It wants you to laugh, it wants your kids to laugh and it doesn't want you to stop laughing</strong>. And on that front, the movie undeniably succeeds.</p><a href="https://follow.it/articles-by-malcolm-mcmillan-streaming-editor-tom-s-guide?leanpub" class="button button--medium button--primary">Get the latest from Malcolm in your inbox</a><figure class="inline-layout"><fw-embed-feed channel="toms_guide" playlist="gdR2W4" mode="row" player_placement="bottom-right"></fw-embed-feed></figure><h2 id="minions-and-monsters-is-here-for-a-good-time-not-a-long-time">'Minions and Monsters' is here for a good time, not a long time</h2><p>"Minions and Monsters" is a story told almost entirely in flashback, at least at first glance. In a tale narrated by a tour guide, Olivia (Alison Janney), she recounts how the minions traveled from villain to villain looking for work. </p><p>They weren't particularly successful, in no small part due to the incompetence of two Minions, James and Harry. James wants to make stories, and Harry wants to hang out with James. It leads to some hilarious mishaps until, finally, the Minions end up in 1920s Hollywood and start making movies with a desperate director named Max (Christopher Waltz).</p><p>Unsurprisingly, this, too, ends in uproarious disaster. But it shows James that he can tell stories through filmmaking, and so he decides to make his own monster movie ... by summoning a monster.</p><p>From here, hilarity ensues. I could get into more of the finer workings of the plot, but the plot is frankly irrelevant. </p><p>That's not to say it's bad! It's not. But it's irrelevant. The entire purpose of this movie is to deliver physical comedy and animated stuntwork on par with a Buster Keaton movie, peppered with somewhat intelligible Minionese. You're simply supposed to laugh the entire time, whether you're a kid laughing at the way the Minions say things or an adult laughing at an ancient Lego brick entering the rear orifice of a giant cyclops or the fact that the writers named the lead Minion, Dick, because ... well, he's kind of a ...</p><p>You know what? I'll let you fill in the rest.</p><h2 id="verdict-you-ll-definitely-want-to-take-your-kids-to-minions-and-monsters">Verdict: You'll definitely want to take your kids to 'Minions and Monsters'</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="high" data-lazy-src="https://www.youtube-nocookie.com/embed/ZSdOwt-G49w" allowfullscreen></iframe></div></div><p>If you're an adult, I can't in good conscience recommend you go see this movie solo. If that's your thing, all the power to you. But unlike something like "Toy Story 5" or even "<a href="https://www.tomsguide.com/entertainment/movies/hoppers-review-disney-pixars-new-original-movie-is-a-delight-with-a-surprisingly-scary-villain">Hoppers</a>," there's not really much substance behind the stylish gags and laughs.</p><p>But if you're looking to take a child, niece, nephew, cousin, etc., to a movie this summer, I cannot recommend this movie enough. Not because it's a masterpiece, because it's not. But because it's 90 minutes of animated fun that's guaranteed to make the young ones laugh and unlikely to scare them. And lucky for you, you're almost certain to laugh along with them.</p><p><em><strong>"Minions and Monsters" is in theaters now</strong></em></p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-ORVgVO"></div>                            </div>                            <script src="https://kwizly.com/embed/ORVgVO.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/entertainment/movies/house-of-the-dragon-season-3-episode-2-reaction">'House of the Dragon' season 3, episode 2 reaction: All hail the queen</a></li><li><a href="https://www.tomsguide.com/entertainment/netflix/5-best-new-netflix-movies-and-shows-to-stream-this-week-june-29-july-5-2026">5 best new Netflix movies and shows to stream this week (June 29-July 5)</a></li><li><a href="https://www.tomsguide.com/entertainment/movies/russell-crowes-new-action-crime-thriller-is-a-surprisingly-good-time">Russell Crowe's new action crime thriller is a surprisingly good time</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Netflix top 10 shows — here’s the 3 you need to binge-watch this week (June 30 - July 6) ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/entertainment/netflix/netflix-top-10-shows-heres-the-3-you-need-to-binge-watch-this-week-june-30-july-6</link>
                                                                            <description>
                            <![CDATA[ Looking for something new to watch? We've picked the best shows currently dominating Netflix's top 10 list, including the second season of “Avatar: The Last Airbender.” ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">UHw996KWDd5uqBudbZYYjf</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/ZoaUD2axBQmTdZXstqHs9P-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 30 Jun 2026 10:43:22 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Netflix]]></category>
                                                    <category><![CDATA[Entertainment]]></category>
                                                    <category><![CDATA[Streaming]]></category>
                                                                                                <author><![CDATA[ alix.blackburn@futurenet.com (Alix Blackburn) ]]></author>                    <dc:creator><![CDATA[ Alix Blackburn ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/8UxyT2McanNFLYwQ6wC7di.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/ZoaUD2axBQmTdZXstqHs9P-1280-80.jpg">
                                                            <media:credit><![CDATA[Netflix / Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Netflix logo on an orange background]]></media:description>                                                            <media:text><![CDATA[Netflix logo on an orange background]]></media:text>
                                <media:title type="plain"><![CDATA[Netflix logo on an orange background]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/ZoaUD2axBQmTdZXstqHs9P-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Knowing what to watch every week can be a real challenge when you're unsure what's new on a streaming service. The biggest platforms, like <a href="https://www.tomsguide.com/entertainment/streaming/netflix">Netflix</a>, aim to cut down your scrolling time by offering a top 10 list, presenting the trending shows and movies subscribers are tuning into. With the list refreshing every week, it's a handy guide to help you decide what to stream next.</p><p>This week, the top 10 list comprises the second season of a fantasy action-adventure series, a dystopian sci-fi world, and an intense revenge action-thriller. To save you the guesswork, I've chosen three must-watch series from Netflix's latest top 10. The platform's full rankings are also included below (at the time of writing).</p><p><strong>Note: This list is based on the Netflix U.S. top 10 shows as of Tuesday, June 30, 2026. </strong></p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-W2Y8ve"></div>                            </div>                            <script src="https://kwizly.com/embed/W2Y8ve.js" async></script><h3 class="article-body__section" id="section-best-shows-in-the-netflix-top-10"><span>Best shows in the Netflix top 10</span></h3><h2 id="avatar-the-last-airbender">‘Avatar: The Last Airbender’</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/M_Las484swM" allowfullscreen></iframe></div></div><p>“Avatar: The Last Airbender” is a live-action fantasy reimagining, designed to bring one of the most beloved animated series to life as a premium drama. Netflix went all in on the adaptation, and it appears to have paid off. The series has now returned for a second season, with a third already renewed. The result is a visually stunning, action-packed, and respectful adaptation that satisfies longtime fans while offering newcomers a compelling introduction to one of the greatest fictional worlds ever created.</p><p>Aang (Gordon Cormier) is a young boy who awakens after being frozen in an iceberg for 100 years and discovers he is the Avatar, the only person able to control all four elements. With siblings Katara (Kiawentiio) and Sokka (Ian Ousley) from the Southern Water Tribe, he travels across the world to master water, earth, fire, and airbending.  Season 2 follows Aang and his friends as they uncover a hidden conspiracy within Ba Sing Se. </p><p><em><strong>Stream "Avatar: The Last Airbender" seasons 1-2 on </strong></em><a href="https://www.netflix.com/title/70142405" target="_blank" rel="nofollow"><em><strong>Netflix</strong></em></a><em><strong> </strong></em></p><h2 id="the-last-ship">‘The Last Ship’</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/2Vng00SYRL0" allowfullscreen></iframe></div></div><p>For thriller fans, you’ll want to binge-watch “The Last Ship” this week. Loosely based on the 1988 novel by William Brinkley, the show was executive produced by Hollywood action legend Michael Bay. This show very much behaves like a tense claustrophobic thriller, as the entire dynamic relies on the fact that the crew is completely isolated at sea, with the world falling apart around them. Plus, there’s 56 episodes currently on Netflix, making it perfect for binge-watchers.</p><p>The crew of the USS Nathan James, a U.S. Navy destroyer, is deployed in the Arctic when a global virus spreads across the world. Cut off from communication, Captain Tom Chandler learns that most governments have collapsed and that civilian virologist Dr. Rachel Scott (Rhona Mitra) is aboard with critical research. As the ship remains unaffected, the crew is tasked with protecting Scott, securing resources, and travelling across the Atlantic to locate survivors and continue her work. </p><p><em><strong>Stream "The Last Ship" seasons 1-5 on </strong></em><a href="https://www.netflix.com/title/70285747" target="_blank" rel="nofollow"><em><strong>Netflix</strong></em></a></p><h2 id="agent-kim-reactivated">‘Agent Kim Reactivated’</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/k5IDEniQNEk" allowfullscreen></iframe></div></div><p>There’s another compelling show for thriller fans, which is “Agent Kim Reactivated.” This Korean revenge series adapts the smash-hit digital webtoon Manager Kim into a hyper cinematic TV experience. It’s essentially a “John Wick” meets “Taken” blueprint, with the entire energy of the series shifting between a normal lifestyle and absolute chaos. “Agent Kim Reactivated” seems like an incredibly satisfying Friday-night binge-watch for those who need an adrenaline boost.</p><p>Kim Do-hyeon (So Ji-sub) is a quiet bank manager living an unremarkable life with his teenage daughter, Min-ji (Seo Su-min). Beneath his ordinary routine, he hides a past as an elite black-ops operative tied to covert North Korean missions. When Min-ji suddenly disappears after being kidnapped, Kim is forced to abandon his low-profile existence and reactivate his long-buried skills. Each step pulls him deeper into a violent underworld, where he must uncover who took his daughter before time runs out.</p><p><em><strong>Watch "Agent Kim Reactivated" on </strong></em><a href="https://www.netflix.com/title/82682338" target="_blank" rel="nofollow"><em><strong>Netflix</strong></em></a><em><strong> </strong></em></p><h3 class="article-body__section" id="section-netflix-top-10-shows-right-now"><span>Netflix top 10 shows right now</span></h3><p>1. "I Will Find You" (2026)<br>2. "Avatar: The Last Airbender" (2024)<br>3. "Salish & Jordan Matter" (2026)<br>4. "The Last Ship" (2014)<br>5. "Agent Kim Reactivated" (2026)<br>6. "The Polygamist" (2026)<br>7. "The American Experiment" (2026)<br>8. "America's Sweethearts: Dallas Cowboys Cheerleaders" (2024)<br>9. "Sweet Magnolias" (2020)<br>10. "Oasis" (2026)</p><figure class="inline-layout"><fw-embed-feed channel="toms_guide" playlist="gdR2W4" mode="row" player_placement="bottom-right"></fw-embed-feed></figure><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/entertainment/netflix/5-best-new-netflix-movies-and-shows-to-stream-this-week-june-29-july-5-2026">5 best new Netflix movies and shows to stream this week</a></li><li><a href="https://www.tomsguide.com/entertainment/netflix/new-on-netflix-in-july-2026-5-best-movies-and-shows-to-stream-plus-full-release-list">Everything new on Netflix in July 2026</a></li><li><a href="https://www.tomsguide.com/entertainment/netflix/bad-news-netflix-now-wants-every-single-profile-in-your-house-to-have-its-own-email-log-in">Netflix wants every profile in your house to have its own login</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ 3 new to Prime Video thriller movies to stream this week — including a dark romance with Timothée Chalamet playing a cannibal (June 30-July 6) ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/entertainment/prime-video/3-new-to-prime-video-thriller-movies-to-stream-this-week-including-a-dark-romance-with-timothee-chalamet-playing-a-cannibal-june-30-july-6</link>
                                                                            <description>
                            <![CDATA[ Prime Video is dropping dozens of movies this week, and I've picked out a trio of exciting thrillers worth adding to your watchlist now. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">bBhrFYL7uuqgzR3FK53sSS</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/JBy4JwfMvxZAJ2z6VKQGeK-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 30 Jun 2026 09:58:28 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Prime Video]]></category>
                                                    <category><![CDATA[Entertainment]]></category>
                                                    <category><![CDATA[Streaming]]></category>
                                                                                                <author><![CDATA[ rory.mellon@futurenet.com (Rory Mellon) ]]></author>                    <dc:creator><![CDATA[ Rory Mellon ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/5Rv6LtQXMj5JB4Eu8Lt4Sn.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/JBy4JwfMvxZAJ2z6VKQGeK-1280-80.jpg">
                                                            <media:credit><![CDATA[Prime Video; Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Prime Video logo on a blue pink film reel background]]></media:description>                                                            <media:text><![CDATA[Prime Video logo on a blue pink film reel background]]></media:text>
                                <media:title type="plain"><![CDATA[Prime Video logo on a blue pink film reel background]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/JBy4JwfMvxZAJ2z6VKQGeK-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Fans of thriller movies are spoilt for choice on Prime Video this week. The streaming service typically adds dozens of movies to its library on the first of each new month, and with July arriving this week, get ready to top up your watchlist with some very compelling thrillers. </p><p>With so many new arrivals on the <a href="https://www.tomsguide.com/us/best-streaming-video-services,review-2625.html">streaming service</a>, it can be rather overwhelming picking out the gems. That’s why I’ve combed through the recent additions for you and picked out three must-watch thriller movies. These include a chilling survival drama based on a true story, a warped romance starring Timothée Chalamet and a hilarious crime-fueled thriller from the director of “The Hangover” and “Joker” (also, “Joker 2,” but let's ignore that one).</p><p>These are three new to Prime Video thriller movies worth adding to your watchlist over the coming days.</p><h2 id="alive-1993">'Alive' (1993)</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/3P5N0kd6pYY" allowfullscreen></iframe></div></div><p>“Alive” is one of the multiple movies about the real-life experience of a Uruguayan sports team that crashed in the Andes Mountains and had to survive for more than two months in the hostile region. While I’d argue 2023’s “Society of the Snow” is the <em>best</em> feature film dramatisation of this story that captivated the world, “Alive” is no slouch and, in this survival thriller starring Ethan Hawke and Josh Hamilton, successfully chronicles the hardships endured by these men thrown into a frozen nightmare. </p><p>Flying over the Andes mountain range on October 13, 1972, the members of the Stella Maris College's Old Christians Rugby Team are stranded in the snow-blanketed region after a plane crash. To survive the harsh conditions, they are forced to take extreme measures and even contemplate the unthinkable: eating their deceased teammates. Eventually, a small group sets off on a perilous trek in the hopes of finding rescue. </p><p><em><strong>Watch </strong></em><a href="https://www.amazon.com/Alive-Ethan-Hawke/dp/B005FDWAXM" target="_blank" rel="nofollow"><em><strong>"Alive" on Prime Video</strong></em></a><em><strong> starting July 1</strong></em></p><h2 id="bones-and-all-2022">'Bones and All' (2022)</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/0Nu7Z9AxGNg" allowfullscreen></iframe></div></div><p>“Bones and All” offers up Timothée Chalamet as you’ve never seen him before, and I don’t just mean because his trademark curls have been dyed red. In this dark thriller that mashes together a host of tones, including romance and horror, Chalamet plays a young man with an uncontrollable appetite for human flesh. It's not only a skin-crawling movie, but also a surprisingly tender one, with a sweet (but doomed) love story at its core.</p><p>The flick opens with the adolescent experience of Maren (Taylor Russell). Abandoned by her father on her 18th birthday as he’s unable to cope with her hunger for human flesh, Maren becomes a drifter and meets Lee (Chalamet). The two become companions and then lovers. But their odyssey across America leads to a confrontation with Sully (Mark Rylance), a warped “eater” obsessed with Maren. </p><p><em><strong>Watch </strong></em><a href="https://www.amazon.com/gp/video/detail/B0GYJDNG39" target="_blank" rel="nofollow"><em><strong>"Bones and All" on Prime Video</strong></em></a><em><strong> starting July 1</strong></em></p><h2 id="war-dogs-2016">War Dogs (2016)</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/Rwh9c_E3dJk" allowfullscreen></iframe></div></div><p>One of my more memorable movie-watching experiences was watching a PG-cut of “War Dogs” on a plane. The R-rated flick had been censored to remove all the curse words. This crime thriller comes from “The Hangover” and “Joker” director Todd Phillips, so let’s just say there is <em>a lot</em> of cursing. This actually made the movie absolutely hilarious, but not for the intended reason. Fortunately, Prime Video is adding the uncensored version this week. So you can enjoy it with all the f-bombs very much intact! </p><p>Inspired by a true story, “War Dogs” centers on David Packouz (Miles Teller) and Efraim Diveroli (Jonah Hill), two small-time hustlers who discover that military equipment contracts are posted publicly for anybody to bid on. So, they create their own arms-dealing company and start selling hundreds of millions of dollars worth of ammunition to the American government. Before long, they find themselves in over their heads and in hot water.</p><p><em><strong>Watch </strong></em><a href="https://www.amazon.com/gp/video/detail/B01KGRXSVO/" target="_blank" rel="nofollow"><em><strong>"War Dogs" on Prime Video</strong></em></a><em><strong> starting July 1</strong></em></p><figure class="inline-layout"><fw-embed-feed channel="toms_guide" playlist="gdR2W4" mode="row" player_placement="bottom-right"></fw-embed-feed></figure><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/entertainment/prime-video/new-on-prime-video-in-july-2026-top-picks-and-all-the-new-movies-and-shows-to-watch">New on Prime Video in July 2026</a></li><li><a href="https://www.tomsguide.com/how-to/how-to-cancel-prime-video">How to cancel your Prime Video subscription</a></li><li><a href="https://www.tomsguide.com/entertainment/prime-video/prime-video-top-10-movies-heres-the-3-worth-watching-this-week-june-29-july-5">Prime Video top 10 movies — here’s the 3 worth watching</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I would definitely cancel Prime Video, Disney+ and Hulu in July 2026 —here's why ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/entertainment/streaming/i-would-definitely-cancel-prime-video-disney-and-hulu-in-july-2026-heres-why</link>
                                                                            <description>
                            <![CDATA[ Here's why you should consider canceling Prime Video, Disney+ and Hulu in July 2026. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">poWSkC9YYMeQY42656L7zi</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/4V46B2BuMVm2yk8mow2o2R-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 30 Jun 2026 05:30:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Streaming]]></category>
                                                    <category><![CDATA[Entertainment]]></category>
                                                                                                <author><![CDATA[ kelly.woo@futurenet.com (Kelly Woo) ]]></author>                    <dc:creator><![CDATA[ Kelly Woo ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/jpnR8RZd8njtxaHRHimzsi.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Kelly is the managing editor of streaming for Tom’s Guide, so basically, she watches TV for a living. She writes news, features and reviews about the streaming realm — hardware, software and content. In a given week, she might test a new Roku stick, check out an interface update on HBO Max, sound off on the trailer for a new Netflix show and provide info on how to watch a fan-favorite series. &lt;/p&gt;&lt;p&gt;In addition to streaming coverage, she also occasionally contributes to the fitness and home sections.&lt;/p&gt;&lt;p&gt;Before joining Tom&#039;s Guide, she was a freelance entertainment writer for Yahoo, Vulture, TV Guide and other outlets and a content creator for HBO, Apple and DotDash. Prior to that, she was a senior editor at AOL Television and Moviefone. She graduated from Duke University with a degree in English literature.&lt;/p&gt;&lt;p&gt;When she’s not watching TV and movies for work, she’s watching them for fun, plus seeing live music, writing songs, knitting and gardening.&lt;/p&gt; ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/4V46B2BuMVm2yk8mow2o2R-1280-80.jpg">
                                                            <media:credit><![CDATA[Prime Video; Disney+; Hulu; Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Logos of Prime Video, Disney+ and Hulu with cancel signs]]></media:description>                                                            <media:text><![CDATA[Logos of Prime Video, Disney+ and Hulu with cancel signs]]></media:text>
                                <media:title type="plain"><![CDATA[Logos of Prime Video, Disney+ and Hulu with cancel signs]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/4V46B2BuMVm2yk8mow2o2R-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>July is all about vacations, backyard barbecues and squeezing every last drop out of summer. If you're spending more time outside than planted on the couch, now's also a good time to trim a few recurring expenses — starting with the streaming services you're barely opening.</p><p>According to <a href="https://www.depositaccounts.com/blog/digital-subscription-inflation-study.html" target="_blank">Lending Tree</a>, the average American spends about $84 a month on some combination of the best streaming services. With streaming costs continuing to creep upward, keeping every platform year-round is harder to justify. Rotating your subscriptions based on what's actually worth watching remains the smartest way to save money without feeling like you're missing out.</p><p>For July 2026, the easiest services to put on pause are Prime Video, Disney+ and Hulu. Each has a few notable additions, but not enough to make a compelling case for sticking around all month. Here's why these three streamers are the ones to cancel for now.</p><figure class="inline-layout"><fw-embed-feed channel="toms_guide" playlist="gdR2W4" mode="row" player_placement="bottom-right"></fw-embed-feed></figure><h2 id="why-i-d-cancel-prime-video">Why I'd cancel Prime Video</h2><p>Prime Video is a bit of an oddball on this list because, for most people, it comes bundled with an Amazon Prime membership rather than as a standalone subscription. If you actually pay for it separately, though, July is a good month to cancel Prime Video.</p><p>The service still has a deep catalog, but new releases are what keep a streaming subscription feeling worthwhile, and <a href="https://www.tomsguide.com/entertainment/prime-video/new-on-prime-video-in-july-2026-top-picks-and-all-the-new-movies-and-shows-to-watch">July 2026's Prime Video lineup</a> feels rather lackluster. There are a couple of decent additions, but nothing that feels like the kind of must-watch TV or movie that demands you keep paying for another month.</p><p>The most noteworthy title is "Elle," a prequel series to the "Legally Blonde" movies that premieres July 1. It follows teen Elle Woods (Lexi Minetree), years before she conquered Harvard Law School. After her family relocates from Bel-Air to Seattle, a pink-clad Elle finds herself starting over ... in 1995, during peak grunge era. </p><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/6KsT3K5ynrU" allowfullscreen></iframe></div></div><p>Another big release on July 15 is "Ride or Die," an action comedy series starring Octavia Spencer and Hannah Waddingham as friends who have to go on the run from a mysterious enemy — but it turns out, one of them is a trained assassin!</p><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/QFGAxkTRAG8" allowfullscreen></iframe></div></div><p>Last thing of note, the animated series "Batman: Caped Crusader" returns for season 2 on July 31. But that's literally the last day of the month, so it barely counts.</p><p>All in all, there's nothing here that really lands with that “drop everything and watch this tonight” energy. In all three of these cases, you can cancel now, wait a few weeks, cancel now, and just jump back in down the road when there are buzzier titles to view.</p><h2 id="why-i-d-cancel-disney-and-hulu">Why I'd cancel Disney+ and Hulu</h2><p>Disney+ and Hulu are bundled for many subscribers, which does create savings, but also has a way of hiding just how much you're paying for and how much you're actually using both. </p><p>While Disney+ is a go-to for families, July is one of those rare stretches when it's less necessary when you factor in outdoor time, camps, and vacations. Hulu feels less essential during this time, as well, with ABC's season over. The services themselves seem to know it, as the <a href="https://www.tomsguide.com/entertainment/hulu/new-on-hulu-and-disney-in-july-2026-all-the-new-shows-and-movies-to-watch">Disney+ and Hulu July 2026 calendar is pretty bare.</a></p><p>The only Disney+ originals of note are "X-Men '97" season 2 on July 1 and "Descendants: Wicked Wonderland," the fifth in the Disney Channel's musical fantasy film franchise," on July 17.</p><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/mfUtseK27pc" allowfullscreen></iframe></div></div><p>As for Hulu, it's got several interesting releases on deck, like the boxing drama film "They Fight" on July 17, the crime thriller series "Furious" on July 27, Lollapalooz live streams starting July 30, and the twentysomething comedy "Adults" on July 31.</p><p>Note how most of those dates are later in the month. If you cancel Hulu alongside Disney+, you'd barely have to wait at all to binge them, while still saving at least a month's subscription.</p><h2 id="how-much-you-ll-save-by-canceling-prime-video-disney-and-hulu">How much you'll save by canceling Prime Video, Disney+ and Hulu</h2><p>Canceling Prime Video, Disney+ and Hulu this month can save you more than you’d expect, especially in a season when you’re likely not using them all that much anyway.</p><p>Disney+ and Hulu’s bundled plan runs $12.99/month with ads, or $19.99/month for the ad-free tier. Separately, Disney+ with ads and Hulu with ads are $11.99/month; without ads, each is $18.99/month. Prime Video comes in at $8.99/month for the ad-supported standalone version, while the ad-free option is $13.98/month. And for most subscribers, it’s worth remembering that Amazon Prime itself costs $14.99/month and comes with ad-supported Prime Video.</p><p>Taken together, stepping away from these services for a month can realistically put roughly $18 to $30+ back in your pocket, depending on how you subscribe. It doesn’t sound like a life-changing amount on its own, but these small monthly charges quietly stack up in the background. At a time when everyday costs are already high, saving a little now can leave room for bigger expenses coming later in the year.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-ey6xaW"></div>                            </div>                            <script src="https://kwizly.com/embed/ey6xaW.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/news/how-to-get-free-netflix">How to get Netflix for free</a></li><li><a href="https://www.tomsguide.com/entertainment/streaming/what-streaming-costs-in-2026-the-price-of-netflix-disney-plus-max-and-more">What streaming costs in 2026</a></li><li><a href="https://www.tomsguide.com/best-picks/best-free-streaming-services">Best free streaming services</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ iOS 27 takes huge leaps with AI, but it's still missing this key feature Android has had for years ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/phones/iphones/ios-27-takes-huge-leaps-with-ai-but-its-still-missing-this-key-feature-android-has-had-for-years</link>
                                                                            <description>
                            <![CDATA[ iPhone users are missing out on an Apple's take on Android's Circle to Search, and that needs to change. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">T3R6GCQjageXDnVzGs7reN</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/K5SQbjBSv85JzgqYxoY5Lm-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 30 Jun 2026 04:30:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[iPhones]]></category>
                                                    <category><![CDATA[Phones]]></category>
                                                                                                <author><![CDATA[ tom.pritchard@futurenet.com (Tom Pritchard) ]]></author>                    <dc:creator><![CDATA[ Tom Pritchard ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/biCewUkKfSA6QnT2HxVc3f.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/K5SQbjBSv85JzgqYxoY5Lm-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Guide/Apple/Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[iOS 27 icon shown on an iPhone screen]]></media:description>                                                            <media:text><![CDATA[iOS 27 icon shown on an iPhone screen]]></media:text>
                                <media:title type="plain"><![CDATA[iOS 27 icon shown on an iPhone screen]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/K5SQbjBSv85JzgqYxoY5Lm-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p><a href="https://www.tomsguide.com/phones/iphones/ios-27-11-biggest-features-coming-to-your-iphone">iOS 27</a> seems to be the turning point for Artificial Intelligence on iPhones, thanks to Apple adding a bunch of new features and upgrading Siri to offer AI-chatbot capabilities. AI in the <a href="https://www.tomsguide.com/phones/iphones/i-just-installed-the-ios-27-beta-and-reframe-is-unlike-any-other-ai-feature-ive-come-across">iOS 27 beta</a> is still rather rough around the edges though, especially where Siri is concerned, but it's good to see Apple start to catch up with its rivals. Sadly, there is one feature that Apple seems to have forgotten about — and it's easily my favorite AI-adjacent feature on Android.</p><p>I'm talking about <a href="https://www.tomsguide.com/opinion/circle-to-search-is-my-favorite-galaxy-s24-feature-if-samsung-and-google-dont-screw-it-up">Circle to Search</a>, which landed on the first Android phones back in January of 2024. The feature isn't really an AI feature in and of itself, but it does offer a useful shortcut to <a href="https://www.tomsguide.com/us/google-lens-guide,review-5219.html">Google Lens</a>, which does use AI for a variety of things. We're talking translation, image and text recognition, reverse image search and so on.</p><p>iOS has offered something similar to Google Lens since its inception with Visual Intelligence, which has since been rebranded "<a href="https://www.tomsguide.com/ai/apple-finally-fixed-siri-heres-all-the-features-for-the-new-siri-ai-announced-at-wwdc">Siri Mode</a>" in iOS 27's camera. But so far, there's no Cupertino equivalent of Circle to Search, and that's something Apple needs to fix.</p><h2 id="circle-to-search-made-google-lens-way-more-convenient">Circle to Search made Google Lens way more convenient</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:800px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="3CJ2hM5rfHy86RgmQ3qeT6" name="ezgif-1aabc27c3989ce" alt="Circle to search helping in the middle of a game on the Z Fold 7" src="https://cdn.mos.cms.futurecdn.net/3CJ2hM5rfHy86RgmQ3qeT6.gif" mos="" align="middle" fullscreen="" width="800" height="450" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Google )</span></figcaption></figure><p>Google Lens is quite a broad feature, starting life as a camera mode and eventually maneuvering its way into a bunch of different parts of the Android ecosystem. These days, Lens offers real time translation via the Google translate app, image search capabilities in Google Photos and, of course, the dedicated camera mode that is accessible through the standalone app.</p><p>Circle to Search doesn't give you access to the full Google Lens experience. The shortcut doesn't bring you to the camera mode, to scan and look at the world around you. Instead, it's been designed to bring the Google Lens experience to whatever is on your screen. That's useful in itself, but it's the actual mechanism that makes it so valuable to have.</p><p>Circle to Search is activated by pressing and holding at the very bottom of your Android phone screen — the spot you'd swipe up from to return to the home screen. It doesn't matter what you're doing on your phone, this brings up the Lens overlay on your phone screen. This brings up shortcuts to various tools, like song recognition and translation, as well as the headline feature: the ability to circle and search.</p><p>Draw a circle around anything on your screen, and Google's AI will go looking for it across the internet. Sometimes those results are totally useless, and other times they're so impressively accurate that it feels like magic. </p><p>The great thing about Circle to Search is that if you ever come across anything you'd like to know more about, you simply have to perform the gesture and fling a circle around it. There's no need to ask a chatbot for more information or take a screenshot to bring to Google Lens, everything is done on your screen within a few seconds. </p><p>I've never been a big fan of mobile AI, or using my voice to bark commands at my phone, but Circle to Search is so convenient that you can't afford to ignore it. Heck, I even forget that there's AI involved a lot of the time, and it makes very little sense that the iPhone doesn't have an equivalent feature of its own.</p><h2 id="siri-mode-could-learn-a-thing-or-two">Siri Mode could learn a thing or two</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3490px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="qdS9MAp79UU3D85qwZjEV6" name="iOS 27 Siri AI" alt="iOS 27 Siri AI running on iPhone 17 Pro." src="https://cdn.mos.cms.futurecdn.net/qdS9MAp79UU3D85qwZjEV6.jpg" mos="" align="middle" fullscreen="" width="3490" height="1963" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: John Velasco / Tom's Guide)</span></figcaption></figure><p>I will preface this part by pointing out that Siri AI is in pretty rough shape right now. Not only is iOS 27 still in beta, but Apple has confirmed that Siri AI will remain in beta even after the stable version of iOS 27 launches later this year. There are definitely some kinks to be worked out of the new AI, and anyone that has used Siri AI will have come across some of them.</p><p>Apple has been working on getting Siri AI ready for over two years now, and the priority has clearly been to make a serviceable version of Siri AI that's available for the public to use. With all the effort focussed on making that happen, and now ensuring all the bugs and wrinkles can be ironed out, it makes sense that other features might fall to the wayside. </p><p>But that doesn't mean that Apple should ignore the concept of bringing a Circle to Search-like feature to iOS in the near future — either as part of a future update to iOS 27 or with iOS 28 next year.</p><p>The new Siri Mode, like Visual Intelligence before it, does a lot of the same things as Google Lens — and the more recent Gemini Live. You point your camera at objects in the real world, and then use Siri to learn about the different things that are within view of your iPhone's camera. This can be done with voice commands, or by using the shutter button and circling specific objects to initiate a Google search.</p><p>Unlike Google Lens, which has always been a standalone thing, iOS 27 beta lets you access Siri Mode via the Action or Camera Control buttons, depending on how you've set them up. This is certainly very convenient, and sure as heck beats the way Google has set up how you access <a href="https://www.tomsguide.com/ai/google-gemini/gemini-live-what-features-are-available-now-and-what-is-coming-soon">Gemini Live</a> on my<a href="https://www.tomsguide.com/phones/google-pixel-phones/ive-been-using-the-pixel-10-pro-for-6-months-heres-what-i-love-and-hate"> Pixel 10 Pro</a>.</p><p>But there's no alternative to Circle to Search. If you want to know about what's on your phone screen, the best that's currently on offer is the ability to ask Siri AI. As I said before, the beta version of Siri AI is still in pretty rough shape, and that means the experience you get by asking about what's on your screen isn't always that great.</p><p>From my use, I've found answers can be vague or sometimes completely wrong. I even asked Siri what was happening on my screen, and it went off to explain exactly what sunscreen was, continuing that explanation every time I repeated my request. It was only later that I found out Siri AI doesn't quite understand the home screen and just starts repeating its last answer every time you try to ask. Or, at least, that's what happened on my <a href="https://www.tomsguide.com/phones/iphones/iphone-17-pro-max-review" target="_blank">iPhone 17 Pro Max</a> after installing iOS 27 beta 2.</p><p>The equivalent of Circle to Search just doesn't exist on iOS, and that means Android phones have that edge when it comes to discoverability and searching for things they come across. </p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-O9RkLX"></div>                            </div>                            <script src="https://kwizly.com/embed/O9RkLX.js" async></script><h2 id="bottom-line">Bottom line</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="dHpUy2hZbBQcMSMjVGQhNV" name="iPhone 17 Pro Max-3" alt="iPhone 17 Pro Max shown in hand" src="https://cdn.mos.cms.futurecdn.net/dHpUy2hZbBQcMSMjVGQhNV.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>There may be iPhone users out there that don't feel like they need Circle to Search, but having never used an Android phone they don't fully understand what they're missing out on. I didn't really give the feature much thought when it first launched, but only because I didn't fully understand what it was actually capable of doing. </p><p>After more than two years of using it almost every single day, I can tell you, I couldn't live without Circle to Search on a future phone. There are alternative ways of getting the right kind of results, like taking screenshots and running them through Google Lens, but that is far from convenient. There's nothing quite like tapping your thumb against the screen and scrawling around something to get near-instant search results. </p><p>Honestly, it's surprising that Apple hasn't developed its own version our Circle to Search yet — either as a rebranded clone or something it built from scratch. With all the emphasis on adding AI, and all the copy/pasting Android and iOS do with each others' best features, it feels as though the iPhone experience is worse off without it. Here's hoping that things will change in either a future version of iOS 27 or the inevitable iOS 28 upgrade.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/phones/iphones/iphone-18-pro-launch-date-tipped-in-new-gurman-report-and-we-have-a-fresh-look-at-the-design">iPhone 18 Pro launch date just tipped in new Gurman report — and we have a fresh look at the design</a></li><li><a href="https://www.tomsguide.com/phones/android-phones/this-hidden-android-feature-can-turbocharge-autocorrect-and-stop-all-your-ducking-mistakes">This hidden Android feature can turbocharge autocorrect and stop all your 'ducking' mistakes</a></li><li><a href="https://www.tomsguide.com/phones/network-carriers/t-mobile-is-forcing-long-time-customers-to-move-to-new-plans-that-cost-more">T-Mobile is forcing long-time customers to move to new plans that cost more</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Prime Video top 10 movies — here’s the 3 worth watching this week (June 29-July 5) ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/entertainment/prime-video/prime-video-top-10-movies-heres-the-3-worth-watching-this-week-june-29-july-5</link>
                                                                            <description>
                            <![CDATA[ I watch a lot of Prime Video, and these are the three movies from the top 10 I'd stream first this week. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">ryarDKYTZNpNRWx33xbKkC</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/jei6mM4DzGfkzn9S6Ezz7U-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Mon, 29 Jun 2026 09:19:37 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Prime Video]]></category>
                                                    <category><![CDATA[Entertainment]]></category>
                                                    <category><![CDATA[Streaming]]></category>
                                                                                                <author><![CDATA[ alix.blackburn@futurenet.com (Alix Blackburn) ]]></author>                    <dc:creator><![CDATA[ Alix Blackburn ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/8UxyT2McanNFLYwQ6wC7di.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/jei6mM4DzGfkzn9S6Ezz7U-1280-80.jpg">
                                                            <media:credit><![CDATA[Prime Video; Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Prime Video logo on a yellow popcorn background]]></media:description>                                                            <media:text><![CDATA[Prime Video logo on a yellow popcorn background]]></media:text>
                                <media:title type="plain"><![CDATA[Prime Video logo on a yellow popcorn background]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/jei6mM4DzGfkzn9S6Ezz7U-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>When a new week rolls around, deciding what to watch can feel almost as difficult as dragging yourself out of bed on a Monday morning. I know I get frustrated after endlessly scrolling through a streaming service. Thankfully, <a href="https://www.tomsguide.com/entertainment/streaming/prime-video">Prime Video</a> makes things a little easier with its top 10 list, highlighting the movies everyone is watching right now.</p><p>The top 10 isn't always packed with winners, and Prime Video's chart can be pretty underwhelming. To save you the hassle, I've picked out three movies from this week's trending list that are actually worth watching. That includes a cozy mystery comedy about a flock of sheep turned detectives and a tense action-thriller that'll get your heart racing.</p><p>The picks below are based on Prime Video's top 10 as of <strong>Monday, June 29, 2026</strong>. Since the chart isn't exactly overflowing with must-watch movies, I've narrowed it down to the three I'd actually recommend.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-XYQaAX"></div>                            </div>                            <script src="https://kwizly.com/embed/XYQaAX.js" async></script><h3 class="article-body__section" id="section-best-prime-video-top-10-movies-to-stream-right-now"><span>Best Prime Video top 10 movies to stream right now</span></h3><h2 id="the-sheep-detectives-2026">‘The Sheep Detectives’ (2026)</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/pyZI5oM6hWk" allowfullscreen></iframe></div></div><p>“The Sheep Detectives” is one of the most beautiful and heartwarming movies I've seen in a long time. This live action/CGI hybrid adapts Leonie Swann’s bestselling 2005 novel, capturing the same warmth and sophistication that made ‘90s family movies like “Babe” so special. While it’s rated PG and perfect for families, it doesn’t shear away from heavier, more mature ideas. If you enjoy cozy British murder mysteries, the charming animal logic of “Shaun the Sheep,” or the witty humor of modern ensemble comedies, this woolly whodunit is an absolute delight.</p><p>George Hardy (Hugh Jackman) is a shepherd who spends his evenings reading detective novels aloud to his beloved flock, never realizing they understand every word. When George is found dead under mysterious circumstances, the local investigation stalls, prompting the sheep to launch an amateur investigation of their own. Led by the clever Lily (Julia Louis-Dreyfus), with the loyal Mopple (Chris O'Dowd) and the independent Sebastian (Bryan Cranston), the unlikely detectives venture beyond their familiar meadow.</p><p><em><strong>Watch "The Sheep Detectives" on </strong></em><a href="https://www.amazon.com/gp/video/detail/B0GZ3FG6Q5/" target="_blank" rel="nofollow"><em><strong>Prime Video</strong></em></a><em><strong> now</strong></em></p><h2 id="superman-2025">‘Superman’ (2025)</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/Ox8ZLF6cGM0" allowfullscreen></iframe></div></div><p>There's no better time to rewatch “Superman” now that “Supergirl” has flown into theaters, since James Gunn is clearly intertwining their stories in the DC universe. What I love most about “Superman” is that it skips the traditional origin story we all know about, instead dropping audiences straight into the life of a younger hero who’s already established but still finding his footing. The result is a 129-minute celebration of everything that makes Superman such an enduring character, complete with stunning visuals that are the cherry on top.</p><p>A few years into his career as Earth’s protector, Superman (David Corenswet) is already an established hero balancing life as mild-mannered reporter Clark Kent with his responsibilities as the Man of Steel. When he intervenes in a growing international conflict, his actions spark widespread controversy and give ruthless tech billionaire Lex Luthor (Nicholas Hoult) the opportunity to turn public opinion against him. As Luthor orchestrates an elaborate plan to destroy Superman’s reputation, Clark joins forces with Lois Lane (Rachel Brosnahan) and several other metahumans to uncover the truth. </p><p><em><strong>Watch "Superman" on </strong></em><a href="https://www.amazon.com/gp/video/detail/B0F4VQ6XXF/" target="_blank" rel="nofollow"><em><strong>Prime Video</strong></em></a><em><strong> now</strong></em></p><h2 id="ruthless-2023">‘Ruthless’ (2023)</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/Kv17RrulLvE" allowfullscreen></iframe></div></div><p>Adding “Ruthless” to this list is a bit of a rogue pick, but sometimes all you need is an intense action-thriller with a simple plot. “Ruthless” is a straightforward, unpretentious late-night popcorn movie that knows exactly what it wants to be, giving a veteran actor the chance to go full action hero. If you love tense, street-level vigilante stories where a determined protagonist wages a relentless one-man war against a criminal underbelly, this 2023 release delivers exactly what its title promises. Just don’t expect many surprises along the way.</p><p>Harry (Dermot Mulroney) is a high school wrestling coach who is still grieving the murder of his teenage daughter. When he discovers one of his students, Catia (Melissa Diaz), is being abused at home, he steps in to protect her, only for her to be swept into a dangerous human trafficking operation. Refusing to stand by, Harry launches his own relentless rescue mission, following a trail that leads him deep into the criminal underworld of Las Vegas. He soon uncovers a far-reaching network of traffickers and risks everything to save Catia before it's too late.</p><p><em><strong>Watch "Ruthless" on </strong></em><a href="https://www.amazon.com/gp/video/detail/B0CJJGHK78/" target="_blank" rel="nofollow"><em><strong>Prime Video</strong></em></a><em><strong> now</strong></em></p><h3 class="article-body__section" id="section-prime-video-top-10-movies-right-now"><span>Prime Video top 10 movies right now</span></h3><ol start="1"><li>"The Sheep Detectives" (2026)</li><li>"Superman" (2025)</li><li>"Jack Ryan: Ghost War" (2026)</li><li>"Aquaman and the Lost Kingdom" (2023)</li><li>"Despicable Me 4" (2024)</li><li>"Your Fault: London" (2026)</li><li>"Battleship" (2012)</li><li>"Ruthless" (2023)</li><li>"The Pout-Pout Fish" (2026)</li><li>"A Working Man" (2025)</li></ol><figure class="inline-layout"><fw-embed-feed channel="toms_guide" playlist="gdR2W4" mode="row" player_placement="bottom-right"></fw-embed-feed></figure><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/entertainment/prime-video/new-on-prime-video-in-july-2026-top-picks-and-all-the-new-movies-and-shows-to-watch">Everything new on Prime Video in July 2026</a></li><li><a href="https://www.tomsguide.com/entertainment/prime-video/i-found-one-of-nicolas-cages-best-most-overlooked-movies-hidden-on-prime-video-youre-welcome">I found one of Nicolas Cage's most overlooked movies on Prime Video</a></li><li><a href="https://www.tomsguide.com/entertainment/netflix/new-on-netflix-in-july-2026-5-best-movies-and-shows-to-stream-plus-full-release-list">Everything new on Netflix in July 2026</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I just reviewed the Hoka Kaha 3 hiking shoes and was underwhelmed, so here are three alternatives I recommend for summer ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/wellness/fitness/i-reviewed-the-hoka-kaha-3-hiking-shoes-and-was-underwhelmed-so-here-are-three-alternatives-i-recommend-for-summer</link>
                                                                            <description>
                            <![CDATA[ I wanted to love the Hoka Kaha 3 hiking shoes, but they didn't suit my needs for hiking. However, I have a few other recommendations up my sleeve for summer. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">yWPpPDYXsJvgVapehCej8a</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/YNnZX64kSdoVbiSmr9siGn-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Mon, 29 Jun 2026 06:30:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Fitness]]></category>
                                                    <category><![CDATA[Wellness]]></category>
                                                                                                <author><![CDATA[ ashley.thieme@futurenet.com (Ashley Thieme) ]]></author>                    <dc:creator><![CDATA[ Ashley Thieme ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/3AWovHjApwuNrSGRS6WBcL.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Ashley Thieme is a staff writer on the Reviews team at Tom’s Guide where she tests out the latest tech so you can know what’s going to be worth your time and money. She has a master’s degree in Magazine Journalism and a bachelor’s degree in Journalism, Media and Sociology from Cardiff University. She has bylines in titles including Women’s Health UK, sharing the latest health and wellness news stories, and Virgin Radio UK, providing the latest entertainment news and working on celebrity interviews. She has experience reporting on a variety of topics including music, literature, motorsport, entertainment and health. In previously published work, she has reviewed live music events, books, and wellness products. She values the importance of tech enhancing your life rather than taking over, and as a music fanatic, she is always looking for the best way to listen to new music releases. Discovering the top audio equipment that enhances sound quality and provides optimum comfort is what Ashley does best. In her spare time, Ashley enjoys hitting her reading goals on Goodreads by getting into the latest novels with a cup of tea as well as getting out in the Welsh mountains for a good hike on the weekend.&lt;/p&gt; ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/YNnZX64kSdoVbiSmr9siGn-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Hoka Kaha 3 Low GTX (left), Keen Leiki (right)]]></media:description>                                                            <media:text><![CDATA[Hoka Kaha 3 Low GTX (left), Keen Leiki (right)]]></media:text>
                                <media:title type="plain"><![CDATA[Hoka Kaha 3 Low GTX (left), Keen Leiki (right)]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/YNnZX64kSdoVbiSmr9siGn-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>If you watched any of this year's marathons, whether it was Boston, London or Tokyo, you likely saw a stream of Hokas running past you. We all know Hoka makes some of the bounciest, cloud-like footwear you can get your hands on when it comes to running, and the shoes have earned that status. </p><p>So it's no surprise that on paper, The <a href="https://www.tomsguide.com/wellness/fitness/hoka-kaha-3-low-gtx-review">Hoka Kaha 3 Low GTX</a> looks like another powerhouse. They have a dual-density sugarcane EVA midsole, Vibram soles for traction and Gore-Tex waterproofing. However, after clocking up the miles, I found myself underwhelmed... and a little uncomfortable. </p><p>Firstly, sizing on the shoes runs small, and even when going up a full shoe size, they still felt a little snug. They lack breathability and don't feel very breathable, even after months of wear. There's also minimal arch support, and the narrow toe box left me daydreaming of my usual Keen hiking boots. </p><p>So, in short, these shoes aren't for me, but I've compiled a list of low-cut shoes that I consider to be some of the <a href="https://www.tomsguide.com/best-picks/best-hiking-boots">best hiking shoes,</a> and I would wear out on the trails time and time again. </p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-X16ooe"></div>                            </div>                            <script src="https://kwizly.com/embed/X16ooe.js" async></script><h2 id="salomon-xt-6">Salomon XT-6</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="v5ewXZ4E496JYhzrpFPzdP" name="Salomon XT-6" alt="Salomon XT-6 in Vanilla Ice photographed in front of a blue background" src="https://cdn.mos.cms.futurecdn.net/v5ewXZ4E496JYhzrpFPzdP.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The <a href="https://www.tomsguide.com/wellness/fitness/salomon-xt-6-review">Salomon XT-6</a> is what I consider to be a God-tier shoe. Quite literally faultless. </p><p>The secure quickLACE system is easy to use and doesn't come loose even after miles and miles of walking. The shoes also have unbeatable support, making them comfortable to wear for racking up 25,000 steps every day (I did the testing so you don't have to).</p><p>The XT-6s are comfortable straight out of the box, and look incredibly sleek too. They come in 23 different color styles, so there's something for everyone.  </p><div class="product"><a data-dimension112="90999fc6-6574-4324-987a-8aeb5d1dd4ea" data-action="Deal Block" data-label="There's a reason the Salomon XT-6 sneakers have become a firm favorite in the worlds of fashion and hiking alike. They're some of the most comfortable shoes I've tried for long walks and uneven terrain, but they also look incredibly sleek and fashionable." data-dimension48="There's a reason the Salomon XT-6 sneakers have become a firm favorite in the worlds of fashion and hiking alike. They're some of the most comfortable shoes I've tried for long walks and uneven terrain, but they also look incredibly sleek and fashionable." data-dimension25="$180" href="https://www.nordstrom.com/s/salomon-gender-inclusive-xt-6-sneaker/8589402" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:780px;"><p class="vanilla-image-block" style="padding-top:150.00%;"><img id="k3XSyo5sRiapJjnc5zUQsa" name="gender-inclusive-xt6-sneaker-02391fbd-0c91-4d95-9ff1-d9467b45aeb8.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/k3XSyo5sRiapJjnc5zUQsa.jpg" mos="" align="middle" fullscreen="" width="780" height="1170" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>There's a reason the Salomon XT-6 sneakers have become a firm favorite in the worlds of fashion and hiking alike. They're some of the most comfortable shoes I've tried for long walks and uneven terrain, but they also look incredibly sleek and fashionable.<a class="view-deal button" href="https://www.nordstrom.com/s/salomon-gender-inclusive-xt-6-sneaker/8589402" target="_blank" rel="nofollow" data-dimension112="90999fc6-6574-4324-987a-8aeb5d1dd4ea" data-action="Deal Block" data-label="There's a reason the Salomon XT-6 sneakers have become a firm favorite in the worlds of fashion and hiking alike. They're some of the most comfortable shoes I've tried for long walks and uneven terrain, but they also look incredibly sleek and fashionable." data-dimension48="There's a reason the Salomon XT-6 sneakers have become a firm favorite in the worlds of fashion and hiking alike. They're some of the most comfortable shoes I've tried for long walks and uneven terrain, but they also look incredibly sleek and fashionable." data-dimension25="$180">View Deal</a></p></div><h2 id="keen-leiki">Keen Leiki</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="EjgPSd7NhMS8Y7BCDSzRvS" name="Keen Leiki" alt="Keen Leiki hiking shoes in slate gray colorway" src="https://cdn.mos.cms.futurecdn.net/EjgPSd7NhMS8Y7BCDSzRvS.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The <a href="https://www.tomsguide.com/wellness/fitness/keen-leiki-waterproof-hiking-shoes-review">Keen Leiki</a> are the shoes I grab when it's hot, but I'm going to come across water on my trail and need a little extra support for my posture. </p><p>These stiff walking shoes are great for staying steady on the trail. They have a lot of traction on the soles, with 4mm lugs to dig into the ground, but the firm soles make them feel more like a sturdy hiking boot than a sneaker.</p><p>What impresses me most about these hoses is the waterproofing. I can wade through streams (up to my ankles) and stay completely dry. I didn't even have an issue with water rushing in around the tongue. Absolute win. </p><div class="product"><a data-dimension112="eeab616d-e61e-4db1-986d-d5b7d37671fd" data-action="Deal Block" data-label="The Keen Leiki Waterproof Hiking Shoes are excellent all-terrain sneakers, offering great support. Waterproof and styled like tennis shoes, they suit year-round walking. Their sturdy outsole offers good grip, but they lack ankle support. However, the stiff soles mean they are perfect for tackling tougher terrain and giving you support exactly when you need it." data-dimension48="The Keen Leiki Waterproof Hiking Shoes are excellent all-terrain sneakers, offering great support. Waterproof and styled like tennis shoes, they suit year-round walking. Their sturdy outsole offers good grip, but they lack ankle support. However, the stiff soles mean they are perfect for tackling tougher terrain and giving you support exactly when you need it." data-dimension25="$119" href="https://www.rei.com/product/C05007/keen-leiki-waterproof-hiking-shoes-womens?color=BLACK%252FSTEEL%2520GREY" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1285px;"><p class="vanilla-image-block" style="padding-top:57.51%;"><img id="JEgs6FdD6QcVBfSseqQLf5" name="keen-womens-leiki-speed-hiking-shoes-bla-6b88aa31-6668-4425-8177-991caf027094.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/JEgs6FdD6QcVBfSseqQLf5.jpg" mos="" align="middle" fullscreen="" width="1285" height="739" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>The Keen Leiki Waterproof Hiking Shoes are excellent all-terrain sneakers, offering great support. Waterproof and styled like tennis shoes, they suit year-round walking. Their sturdy outsole offers good grip, but they lack ankle support. However, the stiff soles mean they are perfect for tackling tougher terrain and giving you support exactly when you need it.<a class="view-deal button" href="https://www.rei.com/product/C05007/keen-leiki-waterproof-hiking-shoes-womens?color=BLACK%252FSTEEL%2520GREY" target="_blank" rel="nofollow" data-dimension112="eeab616d-e61e-4db1-986d-d5b7d37671fd" data-action="Deal Block" data-label="The Keen Leiki Waterproof Hiking Shoes are excellent all-terrain sneakers, offering great support. Waterproof and styled like tennis shoes, they suit year-round walking. Their sturdy outsole offers good grip, but they lack ankle support. However, the stiff soles mean they are perfect for tackling tougher terrain and giving you support exactly when you need it." data-dimension48="The Keen Leiki Waterproof Hiking Shoes are excellent all-terrain sneakers, offering great support. Waterproof and styled like tennis shoes, they suit year-round walking. Their sturdy outsole offers good grip, but they lack ankle support. However, the stiff soles mean they are perfect for tackling tougher terrain and giving you support exactly when you need it." data-dimension25="$119">View Deal</a></p></div><h2 id="merrell-moab-3">Merrell Moab 3</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="iGVANraRm4D6WQTQYSeBZh" name="Merrell Moab 3 14.JPG" alt="the merrell moab 3 photographed against a blue tom's guide background" src="https://cdn.mos.cms.futurecdn.net/iGVANraRm4D6WQTQYSeBZh.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The <a href="https://www.tomsguide.com/wellness/fitness/merrell-moab-3-review">Merrell Moab 3</a> hiking shoes are another comfort wonder. The Vibram soles are responsive and supportive for even the longest treks, and the 5mm lugs ensure stability even on tricky terrain. </p><p>The shoes are very breathable, making them great for summer, but also retain heat in colder months, making them a great shoe for seasonal transitions. They've also got the looks for trail, since these are <em>very</em> pretty shoes. </p><div class="product"><a data-dimension112="2a00be1f-3fe0-4bd1-80f8-f93184b4dbcf" data-action="Deal Block" data-label="The Merrell Moab 3 are some of the comfiest hiking shoes you can get your hands on. The Vibram soles mean every step is responsive and supported, and the cushioned interior helps soothe tired feet even on long treks." data-dimension48="The Merrell Moab 3 are some of the comfiest hiking shoes you can get your hands on. The Vibram soles mean every step is responsive and supported, and the cushioned interior helps soothe tired feet even on long treks." data-dimension25="$113" href="https://www.amazon.com/Merrell-Womens-Moab-Hiking-Falcon/dp/B098KK9G7B" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:500px;"><p class="vanilla-image-block" style="padding-top:59.00%;"><img id="ksKgTBYf9WbcKxtBWha4i6" name="merrell-womens-moab-3-hiking-shoe-falcon-f70c0bdf-fecf-4196-9d2a-1b0d3f8c5145.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/ksKgTBYf9WbcKxtBWha4i6.jpg" mos="" align="middle" fullscreen="" width="500" height="295" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>The Merrell Moab 3 are some of the comfiest hiking shoes you can get your hands on. The Vibram soles mean every step is responsive and supported, and the cushioned interior helps soothe tired feet even on long treks.<a class="view-deal button" href="https://www.amazon.com/Merrell-Womens-Moab-Hiking-Falcon/dp/B098KK9G7B" target="_blank" rel="nofollow" data-dimension112="2a00be1f-3fe0-4bd1-80f8-f93184b4dbcf" data-action="Deal Block" data-label="The Merrell Moab 3 are some of the comfiest hiking shoes you can get your hands on. The Vibram soles mean every step is responsive and supported, and the cushioned interior helps soothe tired feet even on long treks." data-dimension48="The Merrell Moab 3 are some of the comfiest hiking shoes you can get your hands on. The Vibram soles mean every step is responsive and supported, and the cushioned interior helps soothe tired feet even on long treks." data-dimension25="$113">View Deal</a></p></div><p>I wanted to love the Hokas, but the Salomon XT-6s, Keen Leikis and Merrell Moab 3s are solid choices for most summer hikes. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/wellness/fitness/i-wore-the-salomon-xt-6-sneakers-on-a-5-day-city-break-and-clocked-over-93-000-steps-heres-how-they-held-up"><strong>I wore the Salomon XT-6 sneakers on a 5-day city break and clocked over 93,000 steps — here's how they held up</strong></a></li><li><a href="https://www.tomsguide.com/audio/earbuds/im-the-biggest-fan-of-open-earbuds-when-im-hiking-and-ive-been-testing-these-sub-usd200-buds-for-a-week-heres-what-i-think"><strong>I'm obsessed with open-ear buds for hiking — here's what I think after testing this sub-$200 pair out in the wild</strong></a></li><li><a href="https://www.tomsguide.com/computing/vpns/how-to-use-a-vpn-to-get-better-signal-on-crowded-networks-stadiums-airports-world-cup-fan-zones"><strong>How to use a VPN to get better signal on crowded networks – stadiums, airports, World Cup fan zones</strong></a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I wore Meta AI glasses for a month — and even after struggling with privacy concerns, I'm still not convinced they're the future of wearables ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/computing/smart-glasses/i-wore-meta-ai-glasses-for-a-month-and-even-after-struggling-with-privacy-concerns-im-still-not-convinced-theyre-the-future-of-wearables</link>
                                                                            <description>
                            <![CDATA[ I spent a month living with Meta’s Ray-Ban and Oakley AI glasses to see if they could truly replace my phone. While the features are undeniably fun, the reality of the experience and significant privacy concerns left me wary. Here's why. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">Biyw6hrpsLKhrDTNPsETGn</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/TpFkdwbGfGfkrcECiKMXxc-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Mon, 29 Jun 2026 01:53:51 +0000</pubDate>                                                                                                                                <updated>Mon, 29 Jun 2026 23:34:58 +0000</updated>
                                                                                                                                            <category><![CDATA[Smart Glasses]]></category>
                                                    <category><![CDATA[Computing Peripherals]]></category>
                                                    <category><![CDATA[VR &amp; AR]]></category>
                                                                                                <author><![CDATA[ lucy.scotting@futurenet.com (Lucy Scotting) ]]></author>                    <dc:creator><![CDATA[ Lucy Scotting ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/UC9ncAYxkmJ5ipHEyX44ri.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Lucy Scotting is a staff writer for Tom’s Guide Australia, primarily covering lifestyle, streaming and internet-related news. Lucy started her career writing for HR and staffing industry publications, with articles covering emerging tech, business and finance.&lt;/p&gt;&lt;p&gt;In her spare time, Lucy can be found watching sci-fi movies, working on her dystopian fiction novel (in progress since 2017) or hanging out with her dog, Fletcher. If she’s not found doing any of the above, she’s likely on her next adventure to a new city, country, or continent. &lt;/p&gt; ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/TpFkdwbGfGfkrcECiKMXxc-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Guide / Lucy Scotting]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A woman (Lucy Scotting) wearing Meta Ray Ban glasses ]]></media:description>                                                            <media:text><![CDATA[A woman (Lucy Scotting) wearing Meta Ray Ban glasses ]]></media:text>
                                <media:title type="plain"><![CDATA[A woman (Lucy Scotting) wearing Meta Ray Ban glasses ]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/TpFkdwbGfGfkrcECiKMXxc-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>As someone who is largely (if not always) inseparable from my iPhone's camera, the desire to test out Meta's elusive AI glasses was a natural next step. To me, in theory, using the smart wearables would take away the undeniable glue keeping my fingers around my phone, and let me capture, navigate and communicate all while using a screenless device — which is pretty rare in today's world. </p><p>Over the course of a month, I got my hands on the <a href="https://www.meta.com/au/ai-glasses/oakley-meta-vanguard-black-prizm-24k/" target="_blank">Meta Oakley Vanguard glasses</a> and the <a href="https://www.meta.com/au/ai-glasses/ray-ban-meta-wayfarer-gen-2/" target="_blank">Meta Ray-Ban Wayfarer Gen 2 glasses</a>, with higher hopes than most, seeing the pairs had gotten rave reviews from my colleagues across <a href="https://www.tomsguide.com/computing/smart-glasses/ray-ban-meta-gen-2-review" target="_blank">Tom's Guide</a> and <a href="https://www.techradar.com/computing/virtual-reality-augmented-reality/ray-ban-meta-gen-2-ai-glasses-have-more-flair-battery-life-and-video-power-and-i-think-they-look-good-on-me" target="_blank">TechRadar</a>. But within 24 hours of receiving the pairs, my perspective on what was supposed to be a cool, fun wearable gizmo turned a little sour. Let's dive into it.</p><h2 id="privacy-concerns-were-rife-from-the-jump">Privacy concerns were rife from the jump</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3430px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="zwB6rDEkC2BAJCKewsDufc" name="meta-oakleys" alt="Meta Oakley Vanguard glasses" src="https://cdn.mos.cms.futurecdn.net/zwB6rDEkC2BAJCKewsDufc.jpg" mos="" align="middle" fullscreen="" width="3430" height="1930" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide / Lucy Scotting)</span></figcaption></figure><p>Meta was <a href="https://www.tomsguide.com/ai/meta-sued-over-smart-glasses-privacy-claims-6-changes-you-should-make-right-now" target="_blank">sued over privacy claims in early March</a>, with users reporting concerns about the use of human contractors to review footage taken by the glasses. These reports surfaced less than 24 hours after receiving my review units, which was definitely not perfect timing.  According to the reports, ICYMI, contractors at Sama, a Kenyan subcontracting firm employed by Meta, say some of the footage they're asked to review includes:</p><ul><li>People using the bathroom or changing clothes</li><li>Users' credit card details captured mid-transaction</li><li>Sexual content, either viewed or recorded by the wearer</li><li>Footage of people in their bedrooms, captured after a wearer set down their glasses without turning them off</li></ul><p>You might ask, 'well how does this happen?', but it's as simple as saying Meta's magic words. When a user says, "Hey Meta, what am I looking at?", that footage can be flagged and sent for human review. This happens as a way to train the AI model on analysing scenes/scenarios. However, this content isn't being captured behind users' backs; it's footage that users themselves triggered, but often without realising it would be seen by a human being overseas.</p><p>This is also largely outlined in Meta AI's T&Cs, which state that the company can "review your interactions with AIs" via "automated or manual (human) review." But that language is hidden deep within the document, and most users have never read it. And there's even further cause for concern as some Meta employees have confirmed that anonymity doesn't always work, so faces can remain visible to Meta workers when reviewing footage. </p><p>I tried my best to avoid unintentionally recording, and followed suggested best practices — like disabling cloud processing and checking privacy settings. Privacy concerns aside, my time with the Meta AI glasses didn't shape up to be everything I hoped it would be… and it all started with the app. </p><h2 id="app-solutely-not">App-solutely not</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1600px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="yC4bQPWfNdJoMw9dwX2jym" name="meta-app-screenshots" alt="Screenshots of Meta AI app" src="https://cdn.mos.cms.futurecdn.net/yC4bQPWfNdJoMw9dwX2jym.jpg" mos="" align="middle" fullscreen="" width="1600" height="900" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide / Lucy Scotting)</span></figcaption></figure><p>Much like the invisible tether I have to my phone, there's an equally intricate link between the Meta glasses and the Meta AI app. As with most smart glasses, there is often a software component that ensures regular updates and pairs with the frames to use certain features, like live translation and navigation assistance. Crucially, the glasses need to connect to Meta's always-online app to work. </p><p>That often meant having the app open in the background of my phone, which led to multiple Meta-targeted ads across my social platforms, as well as random "suggested prompts" on my lock screen based on conversations I had or searches I made. This wasn't ideal, to say the least, but considering my every move online is already being tracked, it wasn't the most alarming. </p><p>In contrast, what made the targeted ads somewhat more troubling was the fact that tied in with the privacy footage revelations — where the glasses are recording to an extent even if they're not — was the feeling that the glasses could see everything I saw. And that was a hard thing to shake. </p><p>Sure, most people on the internet are aware of search history, cookies, tracking, and personal data use being leveraged to promote products, ideas or suggested searches. But being confronted by targeted suggestions based on what you're seeing immediately in front of you is a somewhat shocking wake-up call. </p><p>On top of that, the app itself is a disappointment, largely resembling a sad version of Gemini's Nano Banana image editor mixed with ChatGPT's monotone prompt page, and a splash of Meta products thrown in. It does keep a track record of your voice prompts that you've asked of the glasses in the side panel, as well as all of the images and videos you've taken. Of course, there are some rather fun settings which I really enjoyed — like changing my glasses' AI voice to John Cena — and other great app integrations, like checking your movement levels through Garmin or syncing your health data.</p><p>I will say, I needed to constantly have the app open to make the most of my time with the glasses, which wasn't necessarily a deal breaker, but it made me very aware of everything I was asking them to do. And I still couldn't fully get over that murky gut feeling.</p><h2 id="storage-struggles">Storage struggles</h2><p>One of the biggest gripes I had with the app was the storage space it took up. Aside from cloud saving any footage I had recorded, the app itself took up between 500MB to 1GB of phone storage during my test period, with the latter being when I had a longer 3-minute video saved. That's around the same size as most streaming or video media apps with larger offline caches. Comparatively, AI apps like ChatGPT, Claude and Gemini usually cap out at around 300MB. </p><p>Sure, if you have the means to purchase a phone off the rack with over 200GB storage, then it might not even matter to you. But as I've mentioned, my phone is my lifeline, so needing it to take photos or videos of review products is the most important thing in my job. At the time of the test period, I was using my tried and true blue iPhone 14 with 128GB storage, which was plenty fine for my needs. But unfortunately, due to Meta's app size, I did find myself having to delete a few lesser-used apps and images to accommodate its fluctuating size. </p><h2 id="unmatched-visuals-and-audio">Unmatched visuals and audio </h2><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/KsQyAXcCvZnsP6udakJbGc.jpg" alt="Images captured by Lucy Scotting using the Meta Ray Ban glasses" /><figcaption><small role="credit">Tom's Guide / Lucy Scotting</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/9kXLgEptM6hw864C9vAWec.jpg" alt="Images captured by Lucy Scotting using the Meta Ray Ban glasses" /><figcaption><small role="credit">Tom's Guide / Lucy Scotting</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/Uq9C7CTqayZHqneDcJy795.png" alt="Landscape with Garmin stats" /><figcaption><small role="credit">Tom's Guide / Nico Arboleda</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/CdPP7S5wzYyemYkkVRfPEX.png" alt="Harbour bridge and Garmin specs " /><figcaption><small role="credit">Tom's Guide / Nico Arboleda</small></figcaption></figure></figure><p>For everything I disliked and was wary of during my test period, there were features that I'm now missing, now that my test period has come to an end. Notably, the ability to film high-quality video and photos hands-free was unrivalled. </p><p>I enjoyed taking long walks around my local park, and got to capture my dog playing fetch without having to finagle my phone to get the shot. I even took them along to the Australian Hi-Fi Show to capture the atmosphere of the high-end speakers and audio equipment without feeling like I was blocking anyone's shot (or earshot) of the music being played. </p><p>I even enjoyed taking them on walks around the city and asking directions or recommendations of lunch spots nearby to Tom's Guide's AU office, and spoiler alert: I ended up finding a new matcha spot that I now go to every other week. I even asked about particular plants I walk past every day but didn't know the name of, and the glasses gave me the answer right away. It was pretty neat. </p><iframe src="https://content.jwplatform.com/players/Nc6UoQPq.html" id="Nc6UoQPq" title="Edits Meta 20260629 112637" width="1080" height="1920" frameborder="0" scrolling="auto" allowfullscreen></iframe><p>I also particularly liked the audio settings, especially in the Meta Oakley Vanguards during active activities like biking or running. My colleague Nico, who also tested the Vanguards, really liked the convenience of not needing an extra pair of headphones for either music during solo rides or runs, or navigating with Google Maps. Using voice commands to start and stop recording was also nifty, although he wished the prompts were louder as he sometimes didn’t know whether the recording had started or stopped, especially on a windy day.</p><p>One thing on Nico’s wishlist for the next models would be slimmer temples to make them fit in helmet vents when the Vanguards aren’t in use (just like analogue cycling sunnies) — although he admits it’s not a major dealbreaker, as there are still other ways of stowing the device away while still on the bike. </p><p>As for the Ray-Ban Wayfarer Gen 2s, it's not to say audio calls or listening to music was drastically different, but the sound does have more bleed-through when compared to the Oakley Vanguards. </p><p>But with that comes a healthy caveat — none of these activities listed are things that I necessarily <em>needed</em> smart glasses for. </p><h2 id="final-thoughts">Final thoughts</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4032px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="yWxCs9FVYmYubmENP3mYQc" name="meta-glasses" alt="Meta Ray Ban glasses" src="https://cdn.mos.cms.futurecdn.net/yWxCs9FVYmYubmENP3mYQc.jpg" mos="" align="middle" fullscreen="" width="4032" height="2268" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide / Lucy Scotting)</span></figcaption></figure><p>When it comes to my final take on Meta's AI glasses, I'd issue a word of caution before committing to a pair. Yes, they're really cool, they're a fun concept, and I'm sure there are a fair few people who would get meaningful use out of them. </p><p>From posting cool adventures like skiing or gorgeous landscapes directly to your Facebook or Instagram account, and feeling "more present" when taking photos or videos of growing kids or once-in-a-lifetime experiences, to live translating conversations from select languages and getting navigational guidance when in a new city, there's a lot to like about Meta's foray into wearable technology. </p><p>Having said that, users should know and intrinsically understand what they're signing up for before signing on the dotted line. You may find, as I did, that all the online tools and services we’ve all become blasé about are still — as they’ve always been — immensely intrusive, and privacy today is a rare and fleeting experience. It’s only when it’s all right in front of you, literally in your face, that you realise just how deep we are in this construct, and are we really the ones being served here?</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Forget 'Supergirl' —DC's next big show is replicating the best season of HBO's ultimate crime thriller ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/entertainment/forget-supergirl-dcs-next-big-show-is-replicating-the-best-season-of-hbos-ultimate-crime-thriller</link>
                                                                            <description>
                            <![CDATA[ While everyone looks toward the theatrical release of Supergirl, I’m actually counting down the days until DC’s "Lanterns" hits HBO. Here is why this grounded, "True Detective"-inspired superhero series is the upcoming project you should really be watching. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">NnBq2pLnvPNTahttDaZw85</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/mfZt7pzBsAzGnEJmzysANR-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sun, 28 Jun 2026 09:30:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Entertainment]]></category>
                                                                                                                    <dc:creator><![CDATA[ Dan Girolamo ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/vxcyd6Ys4CLeC8aB9eihZR.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/mfZt7pzBsAzGnEJmzysANR-1280-80.jpg">
                                                            <media:credit><![CDATA[HBO]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Kyle Chandler and Aaron Pierre as Hal Jordan and John Stewart in HBO&#039;s &quot;Lanterns&quot;]]></media:description>                                                            <media:text><![CDATA[Kyle Chandler and Aaron Pierre as Hal Jordan and John Stewart in HBO&#039;s &quot;Lanterns&quot;]]></media:text>
                                <media:title type="plain"><![CDATA[Kyle Chandler and Aaron Pierre as Hal Jordan and John Stewart in HBO&#039;s &quot;Lanterns&quot;]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/mfZt7pzBsAzGnEJmzysANR-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>It’s been almost one year since James Gunn kicked off his film slate for the <strong>DC Universe</strong> with “Superman.” At the end of the movie, Superman’s cousin, Kara Zor-El, stumbled into the Fortress of Solitude to pick up Krypto the dog. That brief cameo set the stage for Kara Zor-El’s first solo adventure in the DCU, “<strong>Supergirl</strong>,” in theaters on June 26. </p><p>Bringing Superman's relative into the DCU is a smart move moving forward. As someone intrigued by the new DC Universe, I will see the movie. However, I’d be lying if I said I wasn’t looking ahead to the next DCU project. </p><p>No, I’m not talking about “Clayface.” I’m fixated on a certain green-glowing ring that will populate our televisions this August on HBO; I’m talking about <strong>“Lanterns.”</strong></p><figure class="inline-layout"><fw-embed-feed channel="toms_guide" playlist="gdR2W4" mode="row" player_placement="bottom-right"></fw-embed-feed></figure><h2 id="i-m-not-down-on-supergirl-but-i-m-not-exactly-high-on-it-which-isn-t-great">I’m not down on ‘Supergirl,’ but I’m not exactly high on it, which isn’t great</h2><p>I fully admit that I’m a superhero movie fan and a comic book novice. I’ve seen the overwhelming majority of Marvel and DC movies. However, I don’t have a connection to their comic roots. Therefore, I don’t have much of a relationship with Supergirl besides what I’ve seen in movies. Before talking about <strong>Milly Alcock</strong>, I will say that I enjoyed Sasha Calle’s brief portrayal of Supergirl in “The Flash.” Calle played her like a no-nonsense badass, which contrasted nicely with Ezra Miller’s high-energy Flash.</p><p>Back to the DCU. The worst place to be — in life, in your career, or even in the NBA  — is the middle. It’s perfectly normal not to like something. Ask any filmmaker, and I bet they would rather have the audience have a strong dislike of their movie than an indifferent response. Having a strong reaction, good or bad, is better than no reaction at all.</p><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/s1-pfiVMKAs" allowfullscreen></iframe></div></div><p>I say all that to explain why I'm extremely neutral on “Supergirl.” Alcock seems to be the right choice for Supergirl, as she exudes punk-rock energy in the trailers, which likely builds toward a climactic moment when she fully embraces her role as Supergirl. Speaking of that footage, I wasn’t particularly impressed with the trailers that resemble a version of “Guardians of the Galaxy.” Kara is a drunk Peter Quill, and Krypto is a silent Rocket. I liked “Guardians of the Galaxy.” I don’t need a fourth movie.</p><p>My opinion could easily change once I see the movie, but I’m not racing out to see it on Thursday night. Not every movie has to be an event; “Supergirl” certainly doesn’t feel like one. I’m perfectly content with having a fun time at the theater, so hopefully, “Supergirl” will deliver there. Until then, call me “Middle-Man Dan,” as feelings remain neutral.</p><h2 id="lanterns-mirrors-another-successful-hbo-show">‘Lanterns’ mirrors another successful HBO show</h2><p>If my enthusiasm for “Supergirl” sits at the speed limit, then my excitement for "Lanterns" is well over 100 mph. The third TV show in the DCU puts the spotlight on the Green Lantern Corps, and in particular, two characters: Hal Jordan (<strong>Kyle Chandler</strong>) and John Stewart (<strong>Aaron Pierre</strong>). Hal is the weathered veteran on the verge of retirement, while John is his recruit.</p><p>The series depicts two timelines: one in 2016 and one a decade later. In 2016, Hal and John are called to a small town in Nebraska to investigate a shooting. Hal thinks it’s a shooting, while Sheriff Kerry (<strong>Kelly Macdonald</strong>) believes it’s something else. A decade later, another strange occurrence emerges, meaning “Lanterns” will have two mysteries to solve.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="eNiaf2mVU7Tyzx4oayKZWg" name="truedetective.jpg" alt="Woody Harrelson and Matthew McConaughey in True Detective" src="https://cdn.mos.cms.futurecdn.net/eNiaf2mVU7Tyzx4oayKZWg.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: AJ Pics / Alamy Stock Photo)</span></figcaption></figure><p>If you’re thinking it sounds like the style of another hit HBO show, then say it out loud because you’re right. “Lanterns” is “True Detective” season 1, with Chandler as Woody Harrelson and Pierre as Matthew McConaughey. That excellent first season also involved two investigations on different timelines. In layman’s terms, we’re getting “True Detective” with space cops. Now you can see why I'm excited about a detective story featuring superheroes.</p><p>Showrunner Chris Mundy is not hiding from the “True Detective” comparisons; he’s embracing them. “Lanterns” follows a similar approach, where the perpetrator is less important than the reason they did it.</p><p>"It was less of a whodunnit as much as, like, what happened and why?” Mundy told <a href="https://ew.com/lanterns-dc-space-cops-drama-dueling-timelines-exclusive-11971022" target="_blank" rel="nofollow">EW</a>. “We think of this as a relationship show between John and Hal, and there's a lot to unpack over the course of the eight episodes."</p><h2 id="lanterns-is-the-best-type-of-superhero-show">'Lanterns' is the best type of superhero show</h2><p>I might be in the minority because I prefer my superhero tales that incorporate grounded storytelling. I’m fully aware that superhero shows exist in a fictional world, so to tell grounded stories in a world where characters can fly might be an oxymoron.</p><p>When I say I prefer a more grounded approach, I mean I want these stories to have human emotions with moral consequences. I'm always down to watch the Avengers save the world against Thanos, but most of the time, I prefer something like Matt Reeves’ “The Batman,” with less fantastical elements and more practical consequences.</p><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/XmcIjxwLJcY" allowfullscreen></iframe></div></div><p>Mundy and his co-creators Damon Lindelof and Tom King have positioned “Lanterns” as a grounded detective show featuring an Earth-based mystery. Instead of creating a Green Lanterns-based world for a mystery show, “Lanterns” inserts the superheroes into the real world or something that closely resembles it.</p><p>"The aesthetic of the show — it's supposed to be very grounded and real, so we're shooting practically in places," Mundy said in the same EW interview. "We're not heavily green-screened. It's not like day glow in its presentation of anything. I think Green Lantern fans will not feel like we've somehow made a brown show of their green comic at all. It's very much 'we're in the world,' and then when we use the constructs, they're what people would expect them to be."</p><p>So to everyone enjoying “Supergirl,” I’m happy for you. Meanwhile, I’ll be waiting for my DC Universe–"True Detective” crossover.</p><p><em><strong>Lanterns premieres August 16 on HBO and streams on </strong></em><a href="https://play.hbomax.com/show/8c11d041-6b71-4e54-8369-fdb310e063b8" target="_blank" rel="nofollow"><em><strong>HBO Max</strong></em></a><em><strong>.</strong></em></p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-W3wvJW"></div>                            </div>                            <script src="https://kwizly.com/embed/W3wvJW.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/entertainment/netflix/new-on-netflix-in-may-2026-5-best-shows-and-movies-to-stream-plus-full-release-list">Everything new on Netflix in May 2026</a></li><li><a href="https://www.tomsguide.com/entertainment/netflix/netflixs-new-survival-thriller-movie-with-charlize-theron-is-intense-feral-and-wickedly-evil">"Apex" review: Intense, feral and wickedly evil</a></li><li><a href="https://www.tomsguide.com/entertainment/netflix/5-best-survival-thriller-movies-to-stream-on-netflix-april-2026">5 best survival thriller movies to stream on Netflix</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I found one of Nicolas Cage's best, most overlooked movies hidden on Prime Video. You're welcome ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/entertainment/prime-video/i-found-one-of-nicolas-cages-best-most-overlooked-movies-hidden-on-prime-video-youre-welcome</link>
                                                                            <description>
                            <![CDATA[ Stream "The Old Way" for free on Tubi before it rides off into the sunset. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">DeVUM2aKrdpmniQ7Y53xGi</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/SvNDjQUpyrnQ9xRxjH9D8b-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sun, 28 Jun 2026 08:00:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Prime Video]]></category>
                                                    <category><![CDATA[Entertainment]]></category>
                                                    <category><![CDATA[Streaming]]></category>
                                                                                                                    <dc:creator><![CDATA[ Brittany Vincent ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/JDgb6vqXHys3nrFJpkRCub.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/SvNDjQUpyrnQ9xRxjH9D8b-1280-80.jpg">
                                                            <media:credit><![CDATA[Saban Films]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[The Old Way]]></media:description>                                                            <media:text><![CDATA[The Old Way]]></media:text>
                                <media:title type="plain"><![CDATA[The Old Way]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/SvNDjQUpyrnQ9xRxjH9D8b-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>If you like your Westerns with a little more meat behind the gun smoke, it’s time to head over to Tubi before "The Old Way" rides off into the sunset. This 2023 revenge tale stands as one of Nicolas Cage’s best — and most overlooked — Westerns, and it is well worth catching before it departs the platform.</p><p>Cage stars as Colton Briggs, a reformed gunslinger who traded his pistols for a wife, a child, and the quiet life of a general store owner. The peace he fought so hard for is shattered in an instant when the son of a man he killed decades ago rides into town looking for payback, leaving Briggs' wife dead in his wake. Strapping his old irons back on, Briggs refuses to leave his 12-year-old daughter behind. Instead, he brings her along for the ride, forcing her to see exactly who her father used to be — for better or worse.</p><p>"The Old Way" is streaming on Prime Video right now, and it is well worth your time, even if Westerns aren’t your usual jam. Seeing Cage trade his signature quirkiness for a somber, grounded performance alongside a remarkable young co-star is a genuine treat. This is one hidden gem you shouldn't miss.</p><figure class="inline-layout"><fw-embed-feed channel="toms_guide" playlist="gdR2W4" mode="row" player_placement="bottom-right"></fw-embed-feed></figure><h2 id="what-is-the-old-way-about">What is 'The Old Way' about?</h2><p>Colton Briggs (Nicolas Cage) is a retired gunslinger living a quiet life. Two decades ago he was a cold-blooded killer with a fearsome reputation, but the love of his wife Ruth (Kerry Knuppe) pulled him out of that world for good. Now he runs a general store, tends a small farm, and is raising his 12-year-old daughter Brooke (Ryan Kiera Armstrong). The only thing that troubles him is how withdrawn Brooke can be as it reminds him of his past. </p><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/eWakq9qQ6Ik" allowfullscreen></iframe></div></div><p>Everything changes when four outlaws ride up to the farm. Their leader, James McAllister (Noah Le Gros), is the son of a man Colton gunned down 20 years ago and has come to settle an old debt in blood. With Colton and Brooke away in town, the gang murders Ruth and leaves a taunting message behind for him to find.</p><p>When the marshal urges him to grieve and let the law handle it, Colton has to make an important call. He digs out his old gunfighter's clothes and burns the homestead to the ground. Then, rather than leave Brooke in someone else's care, he saddles her up and brings her along on the hunt. He'll find revenge or die trying. </p><h2 id="why-i-recommend-you-stream-the-old-way-right-now">Why I recommend you stream 'The Old Way' right now</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1448px;"><p class="vanilla-image-block" style="padding-top:66.71%;"><img id="X2X5jiHtX9RVtP5ss5b34U" name="The Old Way" alt="The Old Way" src="https://cdn.mos.cms.futurecdn.net/X2X5jiHtX9RVtP5ss5b34U.jpg" mos="" align="middle" fullscreen="" width="1448" height="966" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Saban Films)</span></figcaption></figure><p>As someone who thinks a lot about the traits and burdens we pass down to our children — often without ever meaning to — this movie struck a powerful chord. I went in expecting a disposable, run-of-the-mill Nic Cage shoot-’em-up, but it proved to be surprisingly deep.</p><p>Look beneath the surface, and "The Old Way" isn't just about a man hunting the gang that murdered his wife. It's about a father slowly realizing that his daughter is inheriting the exact same coldness he spent 20 years trying to bury. Fortunately, the film doesn't bog itself down in heavy-handed melodrama; it keeps its eyes on the revenge plot, delivering a story that is both action-packed and, in many spots, deeply touching.</p><p>Cage delivers some of his finest, most controlled work here, perhaps his best since "Bringing Out the Dead". But the film's biggest surprise is young Ryan Kiera Armstrong as Brooke. She plays the girl with a genuinely unreadable, chilling stoicism that makes her character fascinating to watch. Her performance leaves you wondering whether Colton is protecting his daughter from the world, or accidentally mentoring the frontier's next deadly gunslinger.</p><p>"The Old Way" isn't a flashy or perfect movie by any means. But if you’re a fan of Nicolas Cage or looking for a Western with a psychological edge, it’s a journey well worth taking.</p><p><em><strong></strong></em><a href="https://www.amazon.com/gp/video/detail/amzn1.dv.gti.02e490e4-89b0-4071-a8be-28e4185c0214" target="_blank" rel="nofollow"><em><strong>Stream "The Old Way" on Prime Video</strong></em></a></p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-ey6xaW"></div>                            </div>                            <script src="https://kwizly.com/embed/ey6xaW.js" async></script>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I just watched Denzel's 1999 sports biopic and I can't believe I didn't know about this Oscar-nominated movie ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/entertainment/movies/i-just-watched-denzels-1999-sports-biopic-and-i-cant-believe-i-didnt-know-about-this-oscar-nominated-movie</link>
                                                                            <description>
                            <![CDATA[ "The Hurricane" stars Denzel Washington in an Oscar-nominated sports biopic movie, and it might be the most underrated performance of his career. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">UmzFLkKPZE6xKbAhN6bk5j</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/ZfqLckFuTF5ALGh2NnxNJF-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sat, 27 Jun 2026 10:00:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Movies]]></category>
                                                    <category><![CDATA[Entertainment]]></category>
                                                                                                <author><![CDATA[ malcolm.mcmillan@futurenet.com (Malcolm McMillan) ]]></author>                    <dc:creator><![CDATA[ Malcolm McMillan ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/sSDLEbNEgBXf86HpujaWZ6.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Malcolm McMillan is a Streaming Editor for Tom&#039;s Guide, covering all the latest in streaming TV shows and movies. That means news, analysis, recommendations, reviews and more for just about anything you can watch, including sports! If it can be seen on a screen, he can write about it. &lt;/p&gt;&lt;p&gt;Malcolm has been with Tom&#039;s Guide since June 2022, starting as a staff writer covering breaking news. Since then, he&#039;s transitioned to cover artificial intelligence (AI), A/V tech and VR headsets. Since late 2023 he has almost exclusively covered streaming and entertainment for Tom&#039;s Guide.&lt;/p&gt;&lt;p&gt;Before writing for Tom&#039;s Guide, Malcolm worked as a fantasy football analyst writing for several sites and also had a brief stint working for Microsoft selling laptops, Xbox products and even the ill-fated Windows phone. He is passionate about video games and sports, though both cause him to yell at the TV frequently. He proudly sports many tattoos, including an Arsenal tattoo, in honor of the team that causes him to yell at the TV the most.&lt;/p&gt; ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/ZfqLckFuTF5ALGh2NnxNJF-1280-80.jpg">
                                                            <media:credit><![CDATA[Alamy]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Denzel Washington in &quot;The Hurricane&quot; (1999)]]></media:description>                                                            <media:text><![CDATA[Denzel Washington in &quot;The Hurricane&quot; (1999)]]></media:text>
                                <media:title type="plain"><![CDATA[Denzel Washington in &quot;The Hurricane&quot; (1999)]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/ZfqLckFuTF5ALGh2NnxNJF-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <div  class="fancy-box"><div class="fancy_box-title">The Tom's Guide Verdict: 'The Hurricane'</div><div class="fancy_box_body"><p class="fancy-box__body-text"><strong>Rating: 3.5/5 stars</strong></p><p class="fancy-box__body-text"><em><strong>Verdict:</strong></em> "The Hurricane" is barely a sports biopic, and it's relatively pedestrian as a legal drama, which is its true genre. But Denzel Washington's performance as the wrongly imprisoned boxer Rubin "Hurricane" Carter is incredible without being over-the-top, and might be the most underrated of his storied career. Its Oscar nomination is well-deserved, and it takes a merely good movie up another level.</p><p class="fancy-box__body-text"><em><strong>Where to watch: </strong></em><a data-analytics-id="inline-link" href="https://www.youtube.com/watch?v=g98RBBekqOc" target="_blank" rel="nofollow">Steam "The Hurricane" for free on YouTube (with ads),</a> or without ads as part of your <a data-analytics-id="inline-link" href="https://www.paramountplus.com/" target="_blank" rel="nofollow">Paramount+ subscription</a></p></div></div><p>We're now almost halfway through my 52-week <a href="https://www.tomsguide.com/tag/denzelwatchathon"><strong>Denzel Watchathon</strong>,</a> and we're almost halfway through Denzel Washington's Oscar-nominated performances. This week's movie, "<strong>The Hurricane</strong>," marks the fourth of nine such performances in Denzel's resume, and after watching it, I can definitely see why he was nominated. His performance as the titular Rubin "Hurricane" Carter takes this movie to a whole other level.</p><p>That's not to say that without him, this movie would be bad. While there's not much sports in this sports biopic (we only get glimpses of boxing matches), as a legal thriller or crime drama it's perfectly fine. It's relatively pedestrian at times, though it has a few creative flourishes, such as switching from black-and-white film stock for Rubin's bouts, simulating what a broadcast would have looked like at the time, to color film for everything else. But 146 minutes later and its clear that Denzel is what makes this movie anything that borders on remarkable.</p><p><em>If you want to watch this movie before you read on, I have great news! Not only is "The Hurricane" streaming on </em><a href="https://www.paramountplus.com/" target="_blank" rel="nofollow"><em>Paramount+</em></a><em>, one of the </em><a href="https://www.tomsguide.com/us/best-streaming-video-services,review-2625.html"><em>best streaming services</em></a><em> out there, but you can also stream it for free (with ads) on </em><a href="https://www.youtube.com/watch?v=g98RBBekqOc" target="_blank" rel="nofollow"><em>YouTube</em></a><em>.</em></p><h2 id="the-hurricane-is-a-fine-movie-elevated-by-a-great-performance">'The Hurricane' is a fine movie elevated by a great performance</h2><div  class="fancy-box"><div class="fancy_box-title">Read more Denzel Watchathon</div><div class="fancy_box_body"><p class="fancy-box__body-text">Here are the other Denzel Washington movies I've covered so far in our Denzel Watchathon:</p><p class="fancy-box__body-text"><ol><li><strong></strong><a data-analytics-id="inline-link" href="https://www.tomsguide.com/entertainment/movies/i-just-watched-denzel-washingtons-controversial-first-movie-and-you-can-stream-it-free-right-now"><strong>"Carbon Copy" (1981)</strong></a><strong></strong></li><li><strong></strong><a data-analytics-id="inline-link" href="https://www.tomsguide.com/entertainment/movies/im-watching-all-52-denzel-washington-movies-in-2026-and-this-must-watch-murder-mystery-is-a-combination-of-sinners-and-a-few-good-men-in-the-best-way"><strong>"A Soldier's Story" (1984)</strong></a><strong></strong></li><li><strong></strong><a data-analytics-id="inline-link" href="https://www.tomsguide.com/entertainment/movies/im-watching-all-52-denzel-washington-movies-in-2026-and-hes-the-high-point-of-this-1980s-political-thriller"><strong>"Power" (1986)</strong></a><strong></strong></li><li><strong></strong><a data-analytics-id="inline-link" href="https://www.tomsguide.com/entertainment/movies/this-denzel-washington-political-biopic-is-a-must-watch-in-2026-and-its-an-oscar-worthy-performance"><strong>"Cry Freedom" (1987)</strong></a><strong></strong></li><li><strong></strong><a data-analytics-id="inline-link" href="https://www.tomsguide.com/entertainment/movies/this-denzel-washington-crime-drama-was-a-total-flop-in-the-1980s-but-it-might-be-his-most-underrated-movie"><strong>"For Queen and Country" (1988)</strong></a></li><li><strong></strong><a data-analytics-id="inline-link" href="https://www.tomsguide.com/entertainment/movies/im-watching-all-52-denzel-washington-movies-and-this-highly-rated-mystery-movie-is-currently-streaming-for-free"><strong>"The Mighty Quinn" (1989)</strong></a></li><li><strong></strong><a data-analytics-id="inline-link" href="https://www.tomsguide.com/entertainment/movies/denzels-first-oscar-winner-still-holds-up-36-years-later-and-you-can-stream-it-on-netflix-now"><strong>"Glory" (1989)</strong></a></li><li><a data-analytics-id="inline-link" href="https://www.tomsguide.com/entertainment/movies/i-watched-the-lowest-rated-denzel-washington-movie-of-all-time-and-its-not-as-bad-as-you-think"><strong>"Heart Condition" (1990)</strong></a></li><li><a data-analytics-id="inline-link" href="https://www.tomsguide.com/entertainment/movies/nearly-36-years-later-denzel-and-spike-lees-first-team-up-remains-a-must-watch"><strong>"Mo' Better Blues" (1990)</strong></a></li><li><strong></strong><a data-analytics-id="inline-link" href="https://www.tomsguide.com/entertainment/movies/hbo-max-has-one-of-the-best-denzel-washington-movies-that-youve-probably-never-seen-and-its-a-must-watch"><strong>"Mississippi Masala" (1991)</strong></a></li><li><strong></strong><a data-analytics-id="inline-link" href="https://www.tomsguide.com/entertainment/movies/this-denzel-washington-crime-thriller-features-a-twisted-villain-and-you-can-stream-it-for-free"><strong>"Ricochet" (1992)</strong></a></li><li><strong></strong><a data-analytics-id="inline-link" href="https://www.tomsguide.com/entertainment/movies/denzel-was-robbed-of-an-oscar-in-this-1992-biopic-stream-it-and-see-for-yourself"><strong>"Malcolm X" (1992)</strong></a></li><li><a data-analytics-id="inline-link" href="https://www.tomsguide.com/entertainment/movies/33-years-later-denzel-still-shines-in-this-star-studded-shakespeare-adaptation-and-you-can-stream-it-for-free-right-now"><strong>"Much Ado About Nothing" (1993)</strong></a></li><li><strong></strong><a data-analytics-id="inline-link" href="https://www.tomsguide.com/entertainment/movies/julia-roberts-and-denzel-washington-teaming-up-for-a-legal-thriller-should-be-a-perfect-movie-but-32-years-later-i-think-it-missed-the-mark"><strong>"The Pelican Brief" (1993)</strong></a></li><li><a data-analytics-id="inline-link" href="https://www.tomsguide.com/entertainment/movies/i-just-watched-philadelphia-and-i-cant-believe-this-was-the-only-time-tom-hanks-and-denzel-teamed-up-for-a-movie"><strong>"Philadelphia" (1993)</strong></a></li><li><a data-analytics-id="inline-link" href="https://www.tomsguide.com/entertainment/movies/over-30-years-later-this-denzel-washington-and-gene-hackman-action-thriller-is-still-one-of-my-favorite-movies"><strong>"Crimson Tide" (1995)</strong></a></li><li><a data-analytics-id="inline-link" href="https://www.tomsguide.com/entertainment/movies/30-years-ago-denzel-washington-and-russell-crowe-teamed-up-for-this-sci-fi-action-movie-about-the-dangers-of-ai-and-you-can-stream-it-for-free"><strong>"Virtuosity" (1995)</strong></a></li><li><strong></strong><a data-analytics-id="inline-link" href="https://www.tomsguide.com/entertainment/movies/denzel-washington-and-don-cheadles-1995-crime-drama-is-still-worth-streaming-over-30-years-later"><strong>"Devil in a Blue Dress" (1995)</strong></a></li><li><strong></strong><a data-analytics-id="inline-link" href="https://www.tomsguide.com/entertainment/movies/denzel-washingtons-1996-war-drama-is-a-few-good-men-meets-saving-private-ryan-and-its-still-a-must-watch-nearly-30-years-later"><strong>"Courage Under Fire" (1996)</strong></a></li><li><a data-analytics-id="inline-link" href="https://www.tomsguide.com/entertainment/movies/i-just-watched-denzels-90s-romantic-comedy-and-im-not-sure-even-he-can-convince-me-to-like-christmas-movies"><strong>"The Preacher's Wife" (1996)</strong></a></li><li><strong></strong><a data-analytics-id="inline-link" href="https://www.tomsguide.com/entertainment/movies/i-just-watched-this-cult-classic-supernatural-thriller-starring-denzel-washington-and-the-critics-got-this-movie-so-wrong"><strong>"Fallen" (1998)</strong></a></li><li><strong></strong><a data-analytics-id="inline-link" href="https://www.tomsguide.com/entertainment/movies/denzel-goes-one-on-one-with-an-nba-legend-in-this-spike-lee-drama-and-you-can-stream-it-for-free-right-now"><strong>"He Got Game" (1998)</strong></a></li><li><a data-analytics-id="inline-link" href="https://www.tomsguide.com/entertainment/movies/critics-hated-parts-of-denzels-1998-action-thriller-movie-but-28-years-later-it-hits-completely-differently"><strong>"The Siege" (1998)</strong></a></li><li><a data-analytics-id="inline-link" href="https://www.tomsguide.com/entertainment/movies/critics-and-audiences-do-not-agree-about-denzels-26-year-old-serial-killer-crime-thriller-movie-so-i-had-to-stream-it-for-myself"><strong>"The Bone Collector" (1999)</strong></a></li></ol></p></div></div><p>As I mentioned, this movie centers around Rubin "Hurricane" Carter, a professional boxer with a checkered past from Paterson, New Jersey. He's had a few brushes with greatness and a few brushes with the law, but his life comes to a grinding halt when he's convicted of three murder charges and sentenced to three life sentences.</p><p>Normally, that'd be the end of the story. But Rubin knows he's innocent, something that's not outright shown to the viewer right away, but is always heavily implied until the film makes it explicit. This movie isn't about whether or not Rubin should be free, but whether or not he can prove he's been wrongfully imprisoned.</p><p>As part of his strategy, he writes a book from prison, which eventually is published and makes its way into the hands of Lesra Martin (Vicellous Reon Shannon). He starts reading it vociferously, and then begins a correspondence with Rubin, convinced that the former boxer should be freed.</p><p>Their relationship is a cornerstone of what makes this movie special, and that's heavily reliant on Denzel, though Vicellous Reon Shannon does drop a remarkable, single tear on demand in one scene. The more I've watched Denzel's performances, the more I've come to realize that his range is a big reason he's so good. He admittedly tends to play a certain type of character more often than not: a Black man with some hard edges to him. But while Denzel can do over-the-top and aggressive with ease, he can also soften those edges with similar deftness, and it's a skill we see on display time and time again in "The Hurricane."</p><p>Take the first scene in the movie, for example. In that scene, Denzel is getting ready to fight anyone who dares to come in and try to search through his cell. It comes from an understandable place, but it's overly dramatic and aggressive behavior nonetheless. But by the end of the movie, which is admittedly set years later from that initial scene, he's an urbane, eloquent speaker making a passionate but even-toned plea for his own freedom. </p><p>A lesser actor would take a moment like that to ham it up a bit. To really chew some scenery. And sometimes, that's what's called for (see Gary Oldman in "Léon"), but sometimes less is more, and Denzel knows that this courtroom monologue is exactly one of those times. He's one of the best at cutting through to the audience while being calm and collected, and in "The Hurricane," that talent is utilized frequently.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-OoNVoW"></div>                            </div>                            <script src="https://kwizly.com/embed/OoNVoW.js" async></script><a href="https://follow.it/articles-by-malcolm-mcmillan-streaming-editor-tom-s-guide?leanpub" class="button button--medium button--primary">Get the latest from Malcolm in your inbox</a><h2 id="verdict-streaming-this-movie-for-free-is-a-no-brainer">Verdict: Streaming this movie for free is a no-brainer</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/GxtcUmaTHMY" allowfullscreen></iframe></div></div><p>Again, it's important to point out that, for the most part, this movie is just fine, maybe even good. If you take out Denzel's performance, it's not anything on par with <a href="https://www.tomsguide.com/entertainment/movies/i-just-watched-philadelphia-and-i-cant-believe-this-was-the-only-time-tom-hanks-and-denzel-teamed-up-for-a-movie">"Philadelphia"</a> or even "<a href="https://www.tomsguide.com/entertainment/movies/im-watching-all-52-denzel-washington-movies-in-2026-and-this-must-watch-murder-mystery-is-a-combination-of-sinners-and-a-few-good-men-in-the-best-way">A Soldier's Story</a>," another legal drama from director Norman Jewison that features an impressive Denzel performance.</p><p>But, thankfully, we do get a Denzel performance in "The Hurricane," and despite earning an Oscar nomination for it, it might be his most underrated, if not his most unheralded. Given that it's currently streaming on YouTube for free (albeit with ads), there's no excuse not to watch it, and thanks to Denzel, watching it is genuinely worth your time.</p><p><em></em><a href="https://www.youtube.com/watch?v=g98RBBekqOc" target="_blank" rel="nofollow"><em>Steam "The Hurricane" for free on YouTube (with ads) right now</em></a></p><figure class="inline-layout"><fw-embed-feed channel="toms_guide" playlist="gdR2W4" mode="row" player_placement="bottom-right"></fw-embed-feed></figure><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/entertainment/movies/the-invite-review">‘The Invite’ review: Olivia Wilde and Seth Rogen’s new film is the best movie I’ve seen in 2026. Yeah, I’m as surprised as you are</a></li><li><a href="https://www.tomsguide.com/entertainment/paramount-plus/3-new-to-paramount-movies-you-need-to-stream-this-weekend-june-26-28-2026">3 new to Paramount+ movies you need to stream this weekend (June 26-28)</a></li><li><a href="https://www.tomsguide.com/entertainment/movies/ive-seen-the-bear-season-5-premiere-and-im-ready-to-say-yes-chef-one-last-time">I’ve seen ‘The Bear’ season 5 premiere and I'm ready to say 'Yes, chef' one last time</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Electric bike laws are badly needed, but New Jersey's new rules go way too far ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/vehicle-tech/electric-bikes/electric-bike-laws-are-badly-needed-but-new-jerseys-new-rules-go-way-too-far</link>
                                                                            <description>
                            <![CDATA[ New Jersey's new e-bike law is about to go into effect, but it's way too onerous and restrictive. Here's how I'd change it. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">4s8PJ6ZcxybL7beSGoHYx6</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/xc5gcxYqYtBZQxsoU7rbYL-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sat, 27 Jun 2026 09:45:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Electric Bikes]]></category>
                                                    <category><![CDATA[Vehicle Tech]]></category>
                                                                                                <author><![CDATA[ mike.prospero@futurenet.com (Mike Prospero) ]]></author>                    <dc:creator><![CDATA[ Mike Prospero ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/6ZM8mX4UwccqDJTh9gLPqV.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Michael A. Prospero is the U.S. Editor-in-Chief for Tom’s Guide. He oversees all evergreen content and oversees the Homes, Smart Home, and Fitness/Wearables categories for the site. In his spare time, he also tests out the latest drones, electric scooters, and smart home gadgets, such as video doorbells. Before his tenure at Tom&#039;s Guide, he was the Reviews Editor for Laptop Magazine, a reporter at Fast Company, the Times of Trenton, and, many eons back, an intern at George magazine. He received his undergraduate degree from Boston College, where he worked on the campus newspaper The Heights, and then attended the Columbia University school of Journalism. When he’s not testing out the latest running watch, electric scooter, or skiing or training for a marathon, he’s probably using the latest sous vide machine, smoker, or pizza oven, to the delight — or chagrin — of his family.&lt;/p&gt; ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/xc5gcxYqYtBZQxsoU7rbYL-1280-80.jpg">
                                                            <media:credit><![CDATA[Future]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Aventon Abound LR]]></media:description>                                                            <media:text><![CDATA[Aventon Abound LR]]></media:text>
                                <media:title type="plain"><![CDATA[Aventon Abound LR]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/xc5gcxYqYtBZQxsoU7rbYL-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>I get it. Every day, there's a new story about some kid getting injured or even killed while riding an electric bike. When I'm walking in New York City, I've more than one nearly been run down by someone flying along on their e-bike, oblivious to the pedestrian right-of way.</p><p>So I agree that e-bike laws are needed, but the one that's about to go into effect in New Jersey — my home state — goes way too far, which will put a damper both on the economy and the environment. </p><p>As someone who rides an ebike almost every day, here's how I'd change it to have it make more sense.</p><h2 id="what-the-law-says">What the law says</h2><p>New Jersey's new e-bike law, which goes into effect on July 19, defines an e-bike as:</p><ul><li><strong>Low-Speed Electric Bicycles </strong>–<strong> </strong>Pedal assisted bicycles with a helper motor that only provides assistance while pedaling up to 20 MPH.</li><li><strong>Motorized Bicycle/Moped</strong> -- Pedal assisted bicycles with either:<ul><li>An engine under 50 cubic centimeters, or</li><li>An electric motor that assists while pedaling between 21 and 28 mph, or</li><li>An electric motor that assists with using a throttle up to 15 mph.</li></ul></li></ul><p>That's pretty much every e-bike in existence. If you own one of these bikes, you have to do the following:</p><ul><li><strong>Be at least 15 years old and have (1) an e-bike license or (2) a valid driver’s license.</strong></li><li><strong>Register your e-bike with the New Jersey Motor Vehicle Commission</strong></li><li><strong>Get insurance for any motorized bicycle.</strong></li></ul><p><strong>If you don't have a driver's license</strong>, you have to make an <a href="https://telegov.njportal.com/njmvc" target="_blank"><u>appointment</u></a> for an initial e-bike permit and complete an application (<a href="https://www.nj.gov/mvc/pdf/vehicles/BA-208.pdf" target="_blank"><u>BA-208</u></a> form) for an e-bike permit, and then take a knowledge and eyesight test, followed by a road test.</p><p>To register your e-bike, you first have to get it insured (<strong>if it's classified as a motorized bicycle</strong>), then make an appointment at a vehicle center to get it registered with the MVC, who will then give you stickers to attach to the bike's frame — a sort of mini- license plate.</p><p>Fortunately, license and registration fees have been waived until January 2027, though it's not clear how much they'll cost afterwards. This feels like just another money grab from the state.</p><p>I also looked up how much it would cost to insure an e-bike with a throttle up to 20 MPH: At minimum, it would cost $100 per year with a $500 deductible, and that's without any coverage for liability or medical.  </p><h2 id="laws-are-needed-but-this-is-too-much">Laws are needed, but this is too much</h2><p>I agree that legislation is needed to make sure that people are using e-bikes safely and properly, but this is too much.</p><p>For starters, the law (and the MVC's site) is frustratingly vague on this point, as the two muddle the definition between a "low-speed electric bicycle" and a "motorized bicycle." Here's what the statues say:</p><ul><li><a href="https://law.justia.com/codes/new-jersey/title-39/section-39-1-1/"><strong>Low-speed electric bicycle: </strong></a><strong> </strong>A<strong> two or three-wheeled vehicle with fully operable pedals</strong> and an <strong>electric motor of less than 750 watts</strong>, that meets the requirements of one of the following classifications: "<strong>class 1 low-speed electric bicycle</strong>" which means a low-speed electric bicycle equipped with a motor that provides assistance only when the rider is pedaling, and that <strong>ceases to provide assistance when the bicycle reaches the speed of 20 miles per hour</strong>; or "<strong>class 2</strong> low-speed electric bicycle'' which means a <strong>low-speed electric bicycle equipped with a motor that may be used exclusively to propel the bicycle</strong>, and that is not capable of providing assistance when the bicycle reaches the speed of <strong>20 miles per hour</strong>.</li><li><strong>Motorized bicycle: </strong>A pedal bicycle having a helper motor characterized in that either the maximum piston displacement is less than 50 cc. or said motor is rated at no more than 1.5 brake horsepower or is powered by an electric drive motor and said bicycle is capable of a maximum speed of no more than 25 miles per hour on a flat surface or a pedal bicycle having an electric motor that is capable of propelling the bicycle in excess of 20 miles per hour with a maximum motor-powered speed of no more than 28 miles per hour on a flat surface. <strong>This term shall not include a low-speed electric bicycle or low-speed electric scooter as defined in this section.</strong></li></ul><p>However, the <a href="https://www.nj.gov/mvc/vehicletopics/ebike.htm?fbclid=IwY2xjawSqFnBleHRuA2FlbQIxMABicmlkETFGQmtjMkFtUUR0SHQ3RmNDc3J0YwZhcHBfaWQQMjIyMDM5MTc4ODIwMDg5MgABHn5f8gT2LDKneN_CHPskerufLRfpyRdp4ZIHHM6V48PLvJu2xaqA7HacSSsU_aem_YWdncwNkMPriPAA4qhT3h0nnpRWl&brid=YWdncwGD1cSBiK7NxRzCCRIz0R7E" target="_blank">MVC's site</a> classifies a low-speed electric bicycles as a "pedal assisted bicycles with a helper motor that only provides assistance while pedaling up to 20 mph, and a motorized bicycle as "an electric motor that assists with using a throttle up to 15 mph."  </p><p>The difference between the two classifications is big. If you have a low-speed ebike, then you don't need to purchase insurance. But does that mean any e-bike with a throttle needs to be insured? </p><p>If a legal expert can shed light on this, please let me know in the comments.</p><p>The law doesn't even cover <a href="https://www.tomsguide.com/vehicle-tech/electric-scooters/best-electric-scooters">electric scooters</a>, many of which can go just as fast — if not faster — than ebikes, and are a lot less stable at high speeds. </p><p>Regardless of the insurance question, having to register any and all ebikes with the MVC is just another annoying bureaucratic hassle. As anyone knows, dealing with the MVC on a good day is a nightmare, as people in New Jersey are still trying to get their Real IDs. Throw thousands of ebike owners into the mix, and it gets even worse.</p><h2 id="here-s-how-i-d-rewrite-the-law">Here's how I'd rewrite the law</h2><ul><li><strong>Anyone riding a bike — e-bike or otherwise — needs to wear a helmet. </strong>This is just common sense. Brain injuries are the biggest issue when riding bikes. Making everyone wear a helmet will inevitably save lives.</li><li><strong>Require registration for e-bikes with throttles that go over 28 MPH</strong>. These bikes are getting into the territory of mopeds and motorcycles, so it makes sense to group them together, rather than lower-speed bikes.</li><li><strong>Limit kids under 17 to pedal-assist only ebikes.</strong> They're young and have lots of energy, so they shouldn't need a throttle, which encourages more reckless behavior.</li></ul><p>As someone who tests some of the <a href="https://www.tomsguide.com/best-picks/best-electric-bikes">best electric bikes</a>, this new law is certainly going to put a wrinkle in my plans if I have to register and insure every new e-bike I test with the MVC. </p><p>But outside of work, I use an e-bike almost every day to go into town, commute to the train station, and bring my kid to school or to her activities. In the process, I've saved hundreds of miles of mileage on my car — and plenty of money on gas, too.</p><p>At a time when we should be encouraging people to use alternative methods of transportation, this legislation will make it more expensive and more onerous to purchase and own an electric bike. It's almost certainly going to put a damper on e-bike sales in the state, and will also discourage people from riding the e-bikes they own — and back into their cars. And that's the last thing I want.</p><p>Let me know in the comments — what do you think about NJ's e-bike law, and how would you change it?</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/home/electric-bikes/i-rode-this-electric-bike-40-miles-through-every-borough-in-new-york-city-5-things-i-learned">I rode this electric bike 40 miles through every borough in New York</a></li><li><a href="https://www.tomsguide.com/vehicle-tech/electric-bikes/segway-muxi-review">Segway Muxi electric bike review </a></li><li><a href="https://www.tomsguide.com/news/i-commuted-with-this-folding-e-bike-for-a-month-heres-what-i-liked-and-didnt-like">I commuted with this folding e-bike for a month</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ ‘Couture’ review: Angelina Jolie shines in a bleak fashion week drama that loses the thread ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/entertainment/movies/couture-review-angelina-jolies-new-fashion-drama-is-no-the-devil-wears-prada</link>
                                                                            <description>
                            <![CDATA[ "Couture" stars Angelina Jolie as a filmmaker in a tempest of turmoil during a Paris Fashion Week shoot. But despite its weighty themes, this French fashion drama is more style than substance. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">j4AX7LiBHKSKquWeiouou9</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/ZCQknojsPezVgSLeMW3Ao7-1280-80.png" type="image/png" length="0"></enclosure>
                                                                        <pubDate>Sat, 27 Jun 2026 08:45:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Movies]]></category>
                                                    <category><![CDATA[Entertainment]]></category>
                                                                                                <author><![CDATA[ malcolm.mcmillan@futurenet.com (Malcolm McMillan) ]]></author>                    <dc:creator><![CDATA[ Malcolm McMillan ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/sSDLEbNEgBXf86HpujaWZ6.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Malcolm McMillan is a Streaming Editor for Tom&#039;s Guide, covering all the latest in streaming TV shows and movies. That means news, analysis, recommendations, reviews and more for just about anything you can watch, including sports! If it can be seen on a screen, he can write about it. &lt;/p&gt;&lt;p&gt;Malcolm has been with Tom&#039;s Guide since June 2022, starting as a staff writer covering breaking news. Since then, he&#039;s transitioned to cover artificial intelligence (AI), A/V tech and VR headsets. Since late 2023 he has almost exclusively covered streaming and entertainment for Tom&#039;s Guide.&lt;/p&gt;&lt;p&gt;Before writing for Tom&#039;s Guide, Malcolm worked as a fantasy football analyst writing for several sites and also had a brief stint working for Microsoft selling laptops, Xbox products and even the ill-fated Windows phone. He is passionate about video games and sports, though both cause him to yell at the TV frequently. He proudly sports many tattoos, including an Arsenal tattoo, in honor of the team that causes him to yell at the TV the most.&lt;/p&gt; ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/png" url="https://cdn.mos.cms.futurecdn.net/ZCQknojsPezVgSLeMW3Ao7-1280-80.png">
                                                            <media:credit><![CDATA[Vertical]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Angelina Jolie in &quot;Couture&quot; (2026)]]></media:description>                                                            <media:text><![CDATA[Angelina Jolie in &quot;Couture&quot; (2026)]]></media:text>
                                <media:title type="plain"><![CDATA[Angelina Jolie in &quot;Couture&quot; (2026)]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/ZCQknojsPezVgSLeMW3Ao7-1280-80.png" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <div  class="fancy-box"><div class="fancy_box-title">Tom's Guide Verdict: 'Couture'</div><div class="fancy_box_body"><p class="fancy-box__body-text"><ul><li><strong>Rating:</strong> <strong>2/5 stars</strong></li><li><strong>Verdict: </strong>"Couture" attempts to share a deep story of a woman going through a tumultuous time on numerous fronts. Instead, it delivers an unengaging but polished drama that struggles to hold its attention on its main character.</li><li><strong>Where to watch:</strong> <a data-analytics-id="inline-link" href="https://www.fandango.com/couture-2026-245898/movie-overview" target="_blank" rel="nofollow">See "Couture" in theaters now</a></li></ul></p></div></div><p><strong>"Couture" </strong>is not your typical <a href="https://www.tomsguide.com/entertainment/movies/37-biggest-summer-movies-of-2026-spider-man-star-wars-the-odyssey-toy-story-and-more">summer movie</a>. It's no blockbuster by any means, nor was it intended to be a summer movie. Debuting at the Toronto International Film Festival last year, it's a pure drama film, pitched as being centered around an award-worthy performance from Angelina Jolie.</p><p>To her credit, this movie's shortcomings aren't really Jolie's fault. In fact, that's the problem. If we got more of Jolie in this movie, maybe she'd have more opportunities to make or break this film. But for a movie that's supposedly centered around her and her emotional journey, she's missing from at least a third of it.</p><p>Unfortunately, her absence seriously derails the movie. The other characters we focus on — there are three point-of-view characters in the story — aren't uninteresting, but Jolie remains the main focus of the movie, and so we don't spend enough time to sink into the other storylines either.</p><p>In the end, the result is a surprisingly flat movie for a drama that clearly has ambitions of plumbing the depths of its characters' emotions. Jolie's character is going through genuine turmoil that should be engaging, but because the movie refuses to let us sit in her turmoil, our attention is free to wander.</p><a href="https://follow.it/articles-by-malcolm-mcmillan-streaming-editor-tom-s-guide?leanpub" class="button button--medium button--primary">Get the latest from Malcolm in your inbox</a><h2 id="couture-struggles-to-focus-on-its-story">'Couture' struggles to focus on its story</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/5XNuytIE4sg" allowfullscreen></iframe></div></div><p>In "Couture," Jolie plays Maxine, an American filmmaker hired by a Parisian fashion house to craft a short film to precede its Paris Fashion Week show. As the movie goes along, it's made clear that she's also going through a tumultuous divorce that's caused friction between her and her daughter.</p><p>But then the real kicker comes: she's diagnosed with breast cancer. She's not expecting it at all, and now her time and attention are divided between filming, the divorce and the cancer diagnosis.</p><p>Unfortunately, the movie then chooses to divide our attention between her and two others. Ada (Anyier Anei) is a rookie model from South Sudan (via Kenya) hired to not only star in Maxine's movie but also to then walk out on the runway before everyone else during the show. Then there's Angèle (Ella Rumpf), a makeup artist who is working on writing a screenplay based on her experiences in the industry while running around the city to work at various events.</p><p>Any of these stories would be genuinely interesting. And if the movie chose to focus on just one of them, it'd be far better for it. Alternatively, if the movie chose to be a loose series of interconnected vignettes, that would also have been an intriguing choice with serious potential. But instead, it tries to portray Maxine as the main character while devoting significant chunks of time to Ada's story, and wrapping it up in the end with narration by Angèle, seemingly making it her story all along.</p><figure class="inline-layout"><fw-embed-feed channel="toms_guide" playlist="gdR2W4" mode="row" player_placement="bottom-right"></fw-embed-feed></figure><h2 id="verdict-couture-stumbles-on-the-runway">Verdict: 'Couture' stumbles on the runway </h2><p>I wish I could recommend this movie, I really do. I find the individual stories contained within 'Couture' to be fascinating ... save a weird love story that feels shoehorned in towards the end. I'd have loved to see a version of this movie that focused just on Maxine, or brought her and Ada's storylines much closer together.</p><p>But that's not what we got, so I have to declare this movie not worth a trip to the cinema. It's likely to eventually come to one of the <a href="https://www.tomsguide.com/us/best-streaming-video-services,review-2625.html">best streaming services</a> (probably <a href="https://www.tomsguide.com/entertainment/streaming/hulu">Hulu</a>, given it's distributed by Vertical), so if you want to check it out for yourself, I'd wait until then. In the meantime, perhaps check out "The Devil Wears Prada" if you need your Parisian fashion fix, because this movie is too far off the mark. </p><p><em><strong>"Couture" is in theaters now</strong></em></p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-ORVgVO"></div>                            </div>                            <script src="https://kwizly.com/embed/ORVgVO.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/entertainment/movies/the-invite-review">‘The Invite’ review: Olivia Wilde and Seth Rogen’s new film is the best movie I’ve seen in 2026. Yeah, I’m as surprised as you are</a></li><li><a href="https://www.tomsguide.com/entertainment/hulu/3-new-to-hulu-movies-you-need-to-stream-this-weekend-june-26-28-2026">3 new to Hulu movies you need to stream this weekend (June 26-28)</a></li><li><a href="https://www.tomsguide.com/entertainment/movies/ive-seen-the-bear-season-5-premiere-and-im-ready-to-say-yes-chef-one-last-time">I’ve seen ‘The Bear’ season 5 premiere and I'm ready to say 'Yes, chef' one last time</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I played Star Fox on Switch 2 in Mouse Mode and with an N64 controller — here's the one I'd recommend ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/gaming/nintendo/i-played-star-fox-on-switch-2-in-mouse-mode-and-with-an-n64-controller-heres-the-one-id-recommend</link>
                                                                            <description>
                            <![CDATA[ Star Fox is out now on Switch 2 with 4K visuals and a precision Mouse Mode, but I tested it against the classic N64 controller to find the best setup. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">Qjonq3uzsBh6gRaUDktySN</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/rGe2ks9gLX4AFzszoat4MX-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sat, 27 Jun 2026 08:30:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Nintendo]]></category>
                                                    <category><![CDATA[Gaming]]></category>
                                                                                                <author><![CDATA[ anthony.spadafora@futurenet.com (Anthony Spadafora) ]]></author>                    <dc:creator><![CDATA[ Anthony Spadafora ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/z73LEoj7FkUjNG85GcWHtH.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Anthony Spadafora is the managing editor for security and home office furniture at Tom’s Guide where he covers everything from data breaches and malware to password managers and the best way to cover your whole home or business with a strong Wi-Fi signal.&lt;/p&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;Before joining the team, he spent three years covering cybersecurity and B2B tech for ITProPortal while living in South Korea. After moving back to the US. Anthony joined the TechRadar Pro team where he covered these topics along with VPNs, web hosting, online collaboration software and video conferencing for four years. Anthony also has his ears to the ground and is on the lookout for the next major cyberattack or data breach.&lt;/p&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;Based in Houston, Texas, Anthony also handles VPN testing for both Tom’s Guide and TechRadar. As someone who has worked from home exclusively since 2018, he has reviewed dozens of standing desks as well as office chairs and has taken a closer look at other essential remote working accessories. As part of these reviews, Anthony frequently builds intricate desk setups which is why he’s such a big advocate for cable management and keeping things organized. When he’s not writing, he can be found tinkering with PCs and game consoles, managing cables and making upgrades to his smart home.&lt;/p&gt; ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/rGe2ks9gLX4AFzszoat4MX-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A pair of Joy-Cons next to an N64 controller with Star Fox running on a Switch 2 in the background]]></media:description>                                                            <media:text><![CDATA[A pair of Joy-Cons next to an N64 controller with Star Fox running on a Switch 2 in the background]]></media:text>
                                <media:title type="plain"><![CDATA[A pair of Joy-Cons next to an N64 controller with Star Fox running on a Switch 2 in the background]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/rGe2ks9gLX4AFzszoat4MX-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Despite <a href="https://www.tomsguide.com/news/live/gta-6-pre-orders-live-updates-and-news">GTA 6 pre-orders</a> stealing the headlines this week, another game you can play right now actually just hit store shelves. Of course, I’m talking about <a href="https://www.tomsguide.com/gaming/nintendo/star-fox-review">Nintendo’s Star Fox remake</a>, which I recently gave a glowing review.</p><p>I still remember inserting the Rumble Pak into the back of my N64 controller and booting up Star Fox 64 for the first time almost 30 years ago. Now, though, I get to experience one of my favorite childhood games with modern graphics, crisp 4K visuals, and new cutscenes that help fill out the story even further.</p><p>Playing Star Fox on the Nintendo Switch 2 has been an absolute blast so far, and I even managed to take the hard path that eluded me as a child. Still, after several playthroughs ahead of my review, I wasn’t done yet.</p><p>Besides being able to play with a <a href="https://www.tomsguide.com/gaming/gaming-peripherals/i-tried-the-nintendo-switch-2-pro-controller-and-it-adds-the-one-feature-ive-always-wanted">Nintendo Switch 2 Pro Controller</a>, you can also detach your Joy-Cons and play Star Fox in <a href="https://www.tomsguide.com/gaming/nintendo/i-was-struggling-to-set-up-my-switch-2-until-i-tried-using-mouse-mode-heres-why">Mouse Mode</a>. I definitely had to take this new, more precise, fully first-person way to take the game out for a spin. However, I also have one of Nintendo’s modern <a href="https://www.tomsguide.com/news/its-not-1997-but-n64-controllers-are-out-of-stock-until-2022">N64 controllers</a> on hand, so I decided to give that a try too out of sheer nostalgia.</p><p>Whether you’re playing Star Fox for the first time or revisiting one of your favorite childhood games like I am, both of these control schemes completely change the experience — but one definitely stands above the other.</p><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/HqWlwWvO-9k" allowfullscreen></iframe></div></div><h2 id="precision-meets-sheer-terror">Precision meets sheer terror</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3000px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="5fRHTNV64EyVRugPVZ6zVb" name="Star Fox Mouse Mode-1" alt="A person playing Star Fox with Joy-Cons in Mouse Mode on the Switch 2" src="https://cdn.mos.cms.futurecdn.net/5fRHTNV64EyVRugPVZ6zVb.jpg" mos="" align="middle" fullscreen="" width="3000" height="1688" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>If you haven’t upgraded to a Switch 2 yet, Mouse Mode is one of the new console’s more interesting features. With your Joy-Cons detached, you can use a <a href="https://www.tomsguide.com/opinion/this-is-the-most-underrated-accessory-for-your-desk-and-its-super-cheap">desk mat</a> — or any surface for that matter — to engage this new mode and control one of your Joy-Cons like a mouse. This gives you a much greater level of precision and is especially useful in first-person shooters.</p><p>Speaking of which, the first game I tried Mouse Mode out on was <a href="https://www.tomsguide.com/gaming/nintendo/metroid-prime-4-beyond-review">Metroid Prime 4</a>. What I like about that game’s implementation of this new mode is that you can instantly switch back and forth between it and using your Joy-Cons the standard way. Thankfully, Star Fox does the exact same thing.</p><p>The second you flip one of your Joy-Cons on its side, Mouse Mode is enabled. However, in Star Fox, this also switches the game from using its normal third-person perspective to a first-person one. It felt like I was Fox McCloud myself, sitting inside my Arwing with all of its various screens and dials visible in the ship’s central console. This adds a new level of immersion you just don’t get in third-person.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="EoNfsjWD23xX5jKvs3Wdtm" name="2026062314355600_s" alt="Playing Star Fox in first-person using Mouse Mode on the Nintendo Switch 2" src="https://cdn.mos.cms.futurecdn.net/EoNfsjWD23xX5jKvs3Wdtm.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nintendo)</span></figcaption></figure><p>I’ll admit, getting the hang of using Mouse Mode in Star Fox did take me a bit. I think that’s because of how high-stakes and fast the game’s flying and shooting feels. After I finished the game’s first level, though, I had the hang of it. Well, for the most part.</p><p>With a Joy-Con held normally in my left hand, I was able to control the yawing of my Arwing while most of the work was done with the Joy-Con in my right hand, which handled shooting, boosting, braking, and aiming my laser’s reticle. It definitely takes some getting used to, but there are on-screen prompts to help you with the more difficult controls.</p><p>One thing I wasn’t expecting was how different playing the game in first-person would make some of the levels feel. For instance, the asteroid field in Meteo and the enemies that pop out behind them had me on the edge of my seat. While not necessarily scary, when playing in first-person, everything felt a lot more spooky. The same was true on the planet Solar, as it really felt like the waves of lava were coming right at me.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3000px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="yUXi57Mj75TyYjPnmDTyTf" name="Star Fox Mouse Mode-1-3" alt="A person playing Star Fox with Joy-Cons in Mouse Mode on the Switch 2 controlling the Landmaster tank" src="https://cdn.mos.cms.futurecdn.net/yUXi57Mj75TyYjPnmDTyTf.jpg" mos="" align="middle" fullscreen="" width="3000" height="1688" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>In retrospect, it makes perfect sense, but I was elated when I realized I could play through the Macbeth stage in first-person. Controlling the Landmaster tank has never come naturally to me, and during my first playthroughs, I got stuck on this level longer than I care to admit. In Mouse Mode with a first-person perspective, though, I was able to not only clear it but also shoot down the eight switches to divert the train fairly easily.</p><p>I bypassed Aquas completely during my Mouse Mode playthrough, but seeing the ocean and all the various creatures underwater from the cockpit of the Blue Marine has me excited about starting another run already.</p><h2 id="single-stick-nostalgia">Single-stick nostalgia</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3000px;"><p class="vanilla-image-block" style="padding-top:56.23%;"><img id="H24mehvXA7vjQW4v6DR22j" name="Star Fox Mouse Mode-1-4" alt="A person playing Star Fox on Switch 2 with an N64 controller" src="https://cdn.mos.cms.futurecdn.net/H24mehvXA7vjQW4v6DR22j.jpg" mos="" align="middle" fullscreen="" width="3000" height="1687" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Given it was my first introduction to using an analog stick instead of a D-pad, I bought one of Nintendo’s modern N64 controllers when they first went on sale. I mainly did so to re-experience playing Super Mario 64 this way, but I also played through a bit of Star Fox 64 too. Controlling my Arwing the old-fashioned way was just as awkward as I remembered it, though.</p><p>With Star Fox on the Switch 2, you can use an N64 controller if you want to relive that exact same experience, just with modern visuals. In the game’s on-the-rails levels, I felt like I was right back in 1997, sitting on the floor in front of the TV.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3000px;"><p class="vanilla-image-block" style="padding-top:56.23%;"><img id="N3R7Wp2z3YSG7mxv8giz6n" name="Star Fox Mouse Mode-1-5" alt="A person playing Star Fox on Switch 2 with an N64 controller" src="https://cdn.mos.cms.futurecdn.net/N3R7Wp2z3YSG7mxv8giz6n.jpg" mos="" align="middle" fullscreen="" width="3000" height="1687" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Even the game’s boss fights — like when I took on the Gorgon in Area 6 — felt great and were easy enough to handle. The old control scheme came right back to me, even if I did miss using my Switch 2 Pro Controller’s extra GR button (which I had mapped to A) to shoot. Once I switched to All-Range Mode, however, that’s when things got tricky. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="8KxtKS5nqu44ueyEpwZvn4" name="2026062620273400_s" alt="A screenshot showing how N64 controller controls work in Star Fox on Switch 2" src="https://cdn.mos.cms.futurecdn.net/8KxtKS5nqu44ueyEpwZvn4.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nintendo)</span></figcaption></figure><p>Just like in Star Fox 64, you point the analog stick down and press either the down or left C-button at the same time to do a somersault or U-turn, respectively. During the second fight with Star Wolf and his crew, these old controls made things quite difficult. </p><p>If I held down and pressed one of the C-buttons after, nothing happened. Instead, I had to press down on the analog stick while hitting the C-button at the exact same time to pull off the maneuver. With Star Wolf hot on my heels, my Arwing took a lot more damage than it did when using modern controls with my Switch 2 Pro controller.</p><p>Even if All-Range Mode was just as difficult as I remember with an N64 controller, it was still a fun experiment testing it out in Star Fox on the Switch 2.</p><h2 id="now-it-truly-feels-like-summer">Now it truly feels like summer</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3000px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="zMnidB6J82ZpVME6PPaJQB" name="StarFox 2026-LIST" alt="Fox McCloud flying over the water in Corneria in Star Fox on the Nintendo Switch 2" src="https://cdn.mos.cms.futurecdn.net/zMnidB6J82ZpVME6PPaJQB.jpg" mos="" align="middle" fullscreen="" width="3000" height="1688" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nintendo)</span></figcaption></figure><p>If you’re a seasoned player who knows all the hidden paths, you can finish Star Fox in around an hour. With other Nintendo games like The Legend of Zelda: Tears of the Kingdom taking 60+ hours to finish, Star Fox’s campaign may feel short, but that’s only at face value. The beauty of Star Fox 64 and this reimagined outing is that you’re supposed to replay it, as that’s the only way to find hidden paths and earn medals.</p><p>Star Fox on the Switch 2 is fun enough on its own to warrant multiple playthroughs. However, if you want to mix things up a bit, I highly recommend giving Mouse Mode a try. Even if you don't, you can still experience the entire campaign in first-person mode just by hitting the Minus button on your Joy-Cons or Pro Controller.</p><p>Personally, I had a ton of fun during my first-person, Mouse Mode playthrough, and I can’t wait to go back to Corneria for another run. In fact, the timing of this release brings me right back to the summer of 1997, and Nintendo made an excellent choice by releasing Star Fox when it did.</p><p>Whether you grew up playing Star Fox on the Nintendo 64 or this is your first time saving the Lylat system from Andross, Star Fox on Switch 2 is this summer’s must-play game — just like it was all those years ago.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/gaming/gaming-peripherals/i-tried-genkis-covert-dock-3-with-the-nintendo-switch-2-and-it-beats-the-official-dock-for-one-key-reason">I tried Genki’s new Covert Dock 3 and it beats the Switch 2's official dock for one big reason</a></li><li><a href="https://www.tomsguide.com/gaming/nintendo/yoshi-and-the-mysterious-book-review">I played Yoshi and the Mysterious Book and haven’t had this much fun playing a Yoshi game since the Super Nintendo</a></li><li><a href="https://www.tomsguide.com/gaming/nintendo/i-tried-playing-mario-kart-world-with-this-racing-wheel-for-the-original-switch-and-it-works-like-a-charm-on-switch-2">I tried playing Mario Kart World with a racing wheel on Switch 2 — and it's perfect for cruising in Free Roam mode</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Analysts warn the iPhone 18 price hike could be worse than we thought ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/phones/iphones/analysts-warn-the-iphone-18-price-hike-could-be-worse-than-we-thought</link>
                                                                            <description>
                            <![CDATA[ Apple hiked up a bunch of prices this week, but iPhones were spared. That isn't likely to last long, though. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">k3vBLurmJ4BgR5NtUfkLbP</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/7iBdM6RkBx9vY5PWZDt6ef-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sat, 27 Jun 2026 05:03:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[iPhones]]></category>
                                                    <category><![CDATA[Phones]]></category>
                                                                                                <author><![CDATA[ tom.pritchard@futurenet.com (Tom Pritchard) ]]></author>                    <dc:creator><![CDATA[ Tom Pritchard ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/biCewUkKfSA6QnT2HxVc3f.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/7iBdM6RkBx9vY5PWZDt6ef-1280-80.jpg">
                                                            <media:credit><![CDATA[Aptenod / YouTube]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[iPhone 18 Pro mockup]]></media:description>                                                            <media:text><![CDATA[iPhone 18 Pro mockup]]></media:text>
                                <media:title type="plain"><![CDATA[iPhone 18 Pro mockup]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/7iBdM6RkBx9vY5PWZDt6ef-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>The list of tech companies that increased their prices just got a little longer, now that <a href="https://www.tomsguide.com/computing/macbooks/apple-price-hikes-are-official-heres-how-much-more-youll-pay-for-macbooks-and-ipads-now">Apple has instigated hefty price hikes</a> on most of its products. <a href="https://www.tomsguide.com/phones/iphones/apple-ceo-tim-cook-confirmed-price-hikes-are-unavoidable-so-get-ready-to-pay-more">Apple CEO Tim Cook warned us this was coming</a>, and now the company has confirmed that the rising cost of memory and storage means it's unable to shoulder the increased cost of components.</p><p>“The rapid expansion of AI data centers has created an extraordinary surge in demand for memory and storage," Apple said in a statement. "We have never seen a component price increase this much, this quickly.” Apple also added that it has “reached a point where we need to begin raising prices on a number of products."</p><p>Emphasis on the word "begin," because Apple already increased the price of almost its entire product lineup. That includes MacBooks, desktop Macs, iPads, Vision Pro and even the less-memory-hungry devices like Apple TV 4K and Homepod.</p><p>The only products that haven't suffered a price hike are iPhones, AirPods and the Apple Watch — and I honestly don't believe that those prices will stay at their current levels for very long.</p><h2 id="iphones-were-spared-but-don-t-expect-it-to-last-long">iPhones were spared, but don't expect it to last long</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="txq3KdVwhYyxHjEbMKvcy7" name="iPhone 18 Pro render 1" alt="iPhone 18 Pro render showing punch hole camera" src="https://cdn.mos.cms.futurecdn.net/txq3KdVwhYyxHjEbMKvcy7.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Front Page Tech)</span></figcaption></figure><p>The question as to why Apple has insulated the iPhone from the first wave of price hikes is down to the device's popularity. As analyst Francisco Jeronimo, Vice President of Client Devices at IDC, noted in a statement sent to Tom's Guide, the iPhone is Apple's personal cash cow. Phones make up around 50% of Apple's business, so it makes sense that Apple will do whatever it can to protect iPhone sales volume.</p><p>It should be obvious to everyone that increasing the price of a product is not the route you go down if you want to make your devices more appealing to consumers. </p><p>However, those prices are unlikely to stay static for long. As Jeronimo notes, Apple is likely protecting the iPhone "while it works out how hard it can push prices on the September lineup." Or, in other words, Apple is trying to figure out how much of a price hike it will be able to get away with for the next generation.</p><p>Apple has shown that it isn't safe from <a href="https://www.tomsguide.com/computing/ram-price-crisis-2026-everything-you-need-to-know">RAMageddon</a>, and is unable to absorb the increased cost of components to keep prices consistent. The iPhone also doesn't have any special protection that makes it immune to the increased cost of production, and it's just as susceptible as Apple's other products. </p><p>It's possible that Apple could use iPads, Macs and all the other affected products to subsidize the cost of more popular devices like iPhone and Apple Watch. Then again, considering how popular and important iPhones are to Apple, it's unlikely that these price hikes could bring in enough additional revenue to offset the increased cost of so many devices.</p><p>Nabila Popal, another IDC analyst, <a href="https://www.tomsguide.com/phones/iphones/usd1-299-iphone-18-pro-max-analyst-now-predicts-usd200-price-hike-for-apples-next-flagship-phone">told Tom's Guide</a> the firm has been expecting price increases on the different<a href="https://www.tomsguide.com/phones/iphones/iphone-18-rumors-everything-we-know-so-far"> iPhone 18</a> models: $50 for the iPhone 18 and $100 for the <a href="https://www.tomsguide.com/phones/iphones/iphone-18-countdown-starts-now-5-rumored-upgrades-apple-could-be-giving-its-pro-models">iPhone 18 Pro</a> and <a href="https://www.tomsguide.com/phones/iphones/iphone-18-pro-max-rumors-and-leaks-everything-we-know-so-far">Pro Max</a>. But after seeing the iPad and MacBook price hikes, they are more inclined to believe the price could rise as much as $200.</p><p>"My personal instinct says the hike to iPhones may be even higher than what we assumed – perhaps even $200 to the Pro Max models," Popal said. "I think the days of $50 price increases are over."</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-XYx0ZO"></div>                            </div>                            <script src="https://kwizly.com/embed/XYx0ZO.js" async></script><h2 id="will-it-matter-that-much">Will it matter that much?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="TBYraHW2jopiVsMRak8QgV" name="iPhone 18 Pro colors Weibo" alt="iPhone 18 Pro colors: purple, brown, burgundy" src="https://cdn.mos.cms.futurecdn.net/TBYraHW2jopiVsMRak8QgV.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>While an iPhone 18 price hike feels inevitable, despite reports of <a href="https://www.tomsguide.com/phones/iphones/iphone-18-tipped-for-cost-cutting-downgrades-heres-what-we-know">aggressive cost cutting to keep prices low</a>, the real question is whether this is going to matter all that much.</p><p>As Francisco Jeronimo notes, iPhone users tend to be a pretty loyal bunch. An Android phone user can jump from one brand to another without much issue, because all those devices run on the same core software. iPhone users generally stick with what they know. Switching ecosystems is awkward, and means abandoning your entire service and app history to start afresh elsewhere. </p><div><blockquote><p>Switching ecosystems is awkward, and that means abandoning your entire service and app history to start afresh elsewhere.</p></blockquote></div><p>You also have to remember that iPhones come with an aura of prestige you don't get with a lot of Android phones. Expensive things feel premium and luxurious, and Jeronimo notes that this makes Apple's customer base less price-sensitive than Android-toting rivals. Especially since the majority of users buy iPhones on an installment plan, and offset the overall cost by trading in their old device.</p><p>Of course, increased prices mean that some customers are going to start upgrading less frequently — which will impact long-term iPhone sales. Then again, considering Apple's been proudly bragging that <a href="https://www.tomsguide.com/phones/iphones/apple-iphone-17-review">iPhone 17</a> has been the <a href="https://www.bbc.co.uk/news/articles/ce8pdk3l4d2o">most popular iPhone</a> it's sold, sales would have to drop by a considerable amount before it becomes an emergency.</p><p>Not to mention the fact that Apple is releasing its first foldable phone later this year, with the starting price <a href="https://www.tomsguide.com/phones/iphones/iphone-fold-specs-and-price-leak-and-the-sales-projections-are-absolutely-bonkers-versus-samsung">expected to be somewhere in the region of $2,400</a>. Considering this is the first iPhone of its kind, it gives Apple some extra freedom to dictate how much it will cost. There isn't a lot users can compare the high price tag to, after all, especially if it manages to successfully market the <a href="https://www.tomsguide.com/phones/iphones/iphone-fold-heres-what-the-leaks-and-rumors-say-about-apples-alleged-upcoming-foldable-phone">iPhone Ultra</a> as a more premium device than other foldables on the market.</p><h2 id="bottom-line-2">Bottom line</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2272px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="KwwUMqX3DXXqj5wDYpEhRo" name="Screenshot 2026-01-20 at 12.43.51" alt="iPhone 18 Pro leak-based render, showing the rear cameras" src="https://cdn.mos.cms.futurecdn.net/KwwUMqX3DXXqj5wDYpEhRo.jpg" mos="" align="middle" fullscreen="" width="2272" height="1278" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Front Page Tech)</span></figcaption></figure><p>An iPhone price hike was always inevitable, ever since the AI boom kicked off RAMageddon and made the cost of RAM and storage blast off to unprecedented levels. While the company hasn't confirmed any concrete plans to raise prices, and likely won't until the very last second, this week's slew of increases on Apple products means the writing is on the wall.</p><p>The real question is how that will affect the sales of iPhone 18 Pro later this year, and iPhone 18 after it (apparently) <a href="https://www.tomsguide.com/phones/iphone-18-release-just-tipped-for-major-shakeup-heres-when-all-the-new-models-could-launch">arrives in early 2027</a>. While Apple does command a lot of brand loyalty, and a few hundred dollars may not mean much for a multi-year installment plan, we're going to have to wait and see how things pan out — and how much prices will actually increase by.</p><p>But, if Apple thinks it can get away with raising the price of the popular <a href="https://www.tomsguide.com/computing/macbooks/apple-macbook-neo-review">$599 MacBook Neo</a> by $100 so soon after release, it clearly has confidence that some price hikes aren't going to make much of a dent in its bottom line.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/phones/9-tips-to-keep-your-phone-cool-during-a-heatwave-and-prevent-damage">9 tips to keep your phone cool during a heatwave — and prevent damage</a></li><li><a href="https://www.tomsguide.com/phones/simo-solis-lite-hotspot-review">I tested this puck shaped mobile hotspot — and it’s the simplest way to get online</a></li><li><a href="https://www.tomsguide.com/phones/i-tried-this-new-magsafe-wallet-that-looks-better-the-longer-i-use-it-heres-what-it-is">I tried this new MagSafe wallet that looks better the longer I use it — and it's got Find My support built in</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I ditched my usual ab routine for these 3 dumbbell exercises for a week — here's what happened to my core ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/wellness/workouts/i-swapped-my-usual-ab-routine-for-these-3-dumbbell-exercises-for-a-week-heres-what-happened</link>
                                                                            <description>
                            <![CDATA[ I swapped my usual ab routines for three new dumbbell exercises and tested them for one week; here's what happened to my core. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">T9QiL4JNfLRDWqVwcibmNY</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/AswcfqpFjqi7MwbKDinGfc-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sat, 27 Jun 2026 04:30:00 +0000</pubDate>                                                                                                                                <updated>Sat, 27 Jun 2026 13:19:56 +0000</updated>
                                                                                                                                            <category><![CDATA[Workouts]]></category>
                                                    <category><![CDATA[Fitness]]></category>
                                                    <category><![CDATA[Wellness]]></category>
                                                                                                <author><![CDATA[ sam.hopes@futurenet.com (Sam Hopes) ]]></author>                    <dc:creator><![CDATA[ Sam Hopes ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/jZ88qJqvjWaCXXv3qvUQPA.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Sam Hopes is a level 3 qualified trainer, a level 2 Reiki practitioner and a fitness editor at Tom&#039;s Guide. She is also currently undertaking her Yoga For Athletes training course. Sam has written for various fitness brands and websites over the years and has experience across brands at Future, such as &lt;a href=&quot;https://www.livescience.com/author/sam-hopes&quot;&gt;Live Science&lt;/a&gt;,&lt;a href=&quot;https://www.fitandwell.com/author/sam-hopes&quot;&gt; Fit&amp;amp;Well&lt;/a&gt;,&lt;a href=&quot;https://www.coachweb.com/author/sam-hopes&quot;&gt; Coach&lt;/a&gt;, and T3. &lt;/p&gt;&lt;p&gt;Having worked with fitness studios like F45 and Virgin Active and trained both group and 1:1, Sam now primarily teaches outdoor bootcamps, bodyweight, and kettlebells. She also coaches mobility and flexibility classes several times a week and believes that true strength comes from a holistic approach to training your body. &lt;/p&gt;&lt;p&gt;Sam has completed two mixed doubles Hyrox competitions in London and the Netherlands and finished her first doubles attempt in 1:11.&lt;/p&gt;&lt;p&gt;In her spare time, she enjoys CrossFit, hot yoga, Pilates and running and can be found perfecting her handstand walks and handstand push-ups in the gym whenever she has the chance to be upside down. At work, she can be found testing the latest in fitness technology and wearables, anything yoga and CrossFit-related and has a keen interest in nutrition, mindfulness, sleep and recovery.&lt;/p&gt; ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/AswcfqpFjqi7MwbKDinGfc-1280-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[woman with defined abs holding a dumbbell]]></media:description>                                                            <media:text><![CDATA[woman with defined abs holding a dumbbell]]></media:text>
                                <media:title type="plain"><![CDATA[woman with defined abs holding a dumbbell]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/AswcfqpFjqi7MwbKDinGfc-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>None of us enjoy repeating the same old routine on rinse-and-repeat, do we? Yes, you need consistency to achieve goals like building strength, growing muscle, losing fat, or getting faster at running, but some variety is also key. That could mean variations of exercises you love or adding in new moves to your program.</p><p>I've been getting bored with my program recently, so I decided to roll out one of the<a href="https://www.tomsguide.com/best-picks/best-yoga-mats"> best yoga mats </a>and add three new dumbbell abs exercises to my routine. Here's what happened when I swapped moves like sit-ups, bear planks and lateral shoot-throughs for something a little spicier. </p><p><em>If you plan to try the routine below, I recommend seeking advice from your trainer or physician first if you are working with an injury or illness, or you're pre- or postnatal.</em></p><h3 class="article-body__section" id="section-watch-dumbbell-abs-routine"><span>Watch: Dumbbell abs routine</span></h3><iframe src="https://content.jwplatform.com/players/EysFRU1r.html" id="EysFRU1r" title="Abs Routine" width="540" height="960" frameborder="0" scrolling="auto" allowfullscreen></iframe><p>Here's the routine structure for you to follow from the gym or at home:</p><ul><li><strong>50s on/ 10s off: 2 rounds </strong></li><li><strong>45s on/ 15s off: 2 rounds</strong></li><li><strong>40s on/ 20s off: 2 rounds</strong></li></ul><p>I'd opt for a medium-heavy weight so that the last few reps of every exercise feel like a real push. If you're cruising through rather than achieving around 4-8 solid reps per side per move during your shorter working sets, I would recommend adding load. While they're not the most comfortable, if you don't have a few sets of weights to work with, I'd consider a set of the <a href="https://www.tomsguide.com/wellness/fitness/best-adjustable-dumbbells">best adjustable dumbbells</a>.</p><p><strong>Here are the moves step-by-step: </strong></p><ul><li><strong>Marching dumbbell pass-under: </strong>Stand with your feet hip-width apart and hold a dumbbell in your right hand. Brace your core, drawing your navel in while standing tall and tucking your pelvis slightly under. Lift your left knee as if marching, then pass the dumbbell under your raised leg to the opposite hand and return to standing. Raise your right knee, then pass the dumbbell under your leg again from left to right. Continue for as many reps as you can.</li><li><strong>Modified dumbbell windmill: </strong>Start half-kneeling with your left leg forward and your right knee resting on the mat. Sit tall through your spine and engage your core. Hold a dumbbell in your left hand and press it overhead so that your weight is directly over your shoulder. Look up at the dumbbell, then slowly hinge forward at your hips and lower your right forearm to the ground, keeping the weight punched overhead. Pause, then drive upward. Remember to switch sides after a few reps to work both sides evenly.</li><li><strong>Inchworms with dumbbell plank pass-through: </strong>Place a dumbbell to the front left of your mat. Stand with your feet hip-width apart. Slowly roll down your spine and walk your hands forward into a high plank, zipping your stomach in and pressing away with your hands. Grip the dumbbell in your right hand, then drag the weight over to the right, just behind your wrist. Repeat to the left, then walk yourself to the back of your mat and slowly roll up to stand. Repeat for max reps.</li></ul><div class="product"><a data-dimension112="f59c5779-1cc8-4c50-bba1-fcc87852e94d" data-action="Deal Block" data-label="These popular Flybird dumbbells give you up to 58lbs of weight per dumbbell and five options to tailer the amount of weight to your skill level." data-dimension48="These popular Flybird dumbbells give you up to 58lbs of weight per dumbbell and five options to tailer the amount of weight to your skill level." data-dimension25="$149" href="https://www.amazon.com/FLYBIRD-Adjustable-Dumbbell-Anti-Slip-Multiweight/dp/B0FMK937PZ" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="LYXiuvg6yEPeno98ezdTcU" name="Flybird Adjustable Dumbbell review.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/LYXiuvg6yEPeno98ezdTcU.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>These popular Flybird dumbbells give you up to 58lbs of weight per dumbbell and five options to tailer the amount of weight to your skill level. <a class="view-deal button" href="https://www.amazon.com/FLYBIRD-Adjustable-Dumbbell-Anti-Slip-Multiweight/dp/B0FMK937PZ" target="_blank" rel="nofollow" data-dimension112="f59c5779-1cc8-4c50-bba1-fcc87852e94d" data-action="Deal Block" data-label="These popular Flybird dumbbells give you up to 58lbs of weight per dumbbell and five options to tailer the amount of weight to your skill level." data-dimension48="These popular Flybird dumbbells give you up to 58lbs of weight per dumbbell and five options to tailer the amount of weight to your skill level." data-dimension25="$149">View Deal</a></p></div><h3 class="article-body__section" id="section-tips-for-this-routine"><span>Tips for this routine</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:6871px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="4c66hj7wys3HyLoJiwrU2H" name="dumbbell abs" alt="a photo of a woman holding a dumbbell with abs" src="https://cdn.mos.cms.futurecdn.net/4c66hj7wys3HyLoJiwrU2H.jpg" mos="" align="middle" fullscreen="" width="6871" height="3865" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>At all times move with full control over the weights; if your weights control you, it means your form could be harmed, so focus on lots of core engagement and smooth reps rather than hitting more reps. As always, quality over quantity.</p><p>Don't be afraid to go heavy with some of these moves, as you can always scale back if you need to. I would use the first round to count reps per side for each move (remember, the timings change!), then try to hit the same number on the second round. Aim to complete a few more reps on those longer rounds. </p><p>This workout hits your deep stabilizing core muscles that act as your body's natural corset to protect your spine and pelvis, but also the abs and obliques and other muscle groups like your hips, quads, shoulders and arms. </p><p>If you have tight hamstrings, bring more bend to your knees during the inchworms, but try not to rock from side to side; keep your hips square and stable and allow all the work to go through your core to draw the weight from side to side. You can always place your knees down if you prefer.</p><h3 class="article-body__section" id="section-here-s-what-happened-when-i-tried-it-for-one-week"><span>Here's what happened when I tried it for one week</span></h3><p>I tacked this onto existing workouts for one week, gradually increasing my dumbbell weight, and man, I was humbled. These abs exercises don't look like much, but they are killer when you get your reps and load correct, which is why I recommend a practice round or two before you hit the workout for real, so you know how each move feels and what you're working with.</p><p>London is pretty hot right now, so I found I worked up a sweat even quicker than normal, but regardless, I felt this one in my core muscles for days. After a week, I was using slightly heavier weights and still loving it. However, my core didn't look any different, which I expected, of course, as core definition is pretty complicated. </p><p>If a toned midsection is your goal, there are factors like genetics, lifestyle, diet and overall energy expenditure, including how you train, to think about. Check out this handy guide on<a href="https://www.tomsguide.com/wellness/fitness/can-you-lose-fat-and-build-muscle-at-the-same-time-heres-the-scoop-on-body-recomposition"> body recomposition </a>if that's your goal. If it's not, this workout, over time, will get you a stronger, more stable core.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-ONKRJX"></div>                            </div>                            <script src="https://kwizly.com/embed/ONKRJX.js" async></script><p><em><strong>Follow </strong></em><a href="https://www.instagram.com/tomsguidefitness/" target="_blank"><em><strong>Tom's Guide fitness</strong></em></a><em><strong> on Instagram for more workouts, routines, tips, and tricks.</strong></em></p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/wellness/workouts/no-not-planks-or-sit-ups-heres-the-one-abs-exercise-you-need-for-elite-core-strength-and-stability-without-weights" target="_blank">No, not planks or sit-ups — here's the one abs exercise you need for elite core strength and stability without weights</a></li><li><a href="https://www.tomsguide.com/wellness/fitness/childs-pose-is-fine-but-here-are-the-4-mobility-exercises-i-use-when-my-spine-and-shoulders-get-stiff-from-desk-sitting" target="_blank">Child's pose is fine, but here are the 4 mobility exercises I use when my spine and shoulders get stiff from desk sitting</a></li><li><a href="https://www.tomsguide.com/wellness/workouts/im-a-35-year-old-personal-trainer-i-swear-by-these-3-moves-to-build-and-maintain-muscle-and-strength-as-you-age" target="_blank">I'm a 35-year-old personal trainer trying to build (and maintain) muscle and strength as I age: 3 essential moves I swear by</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ 3 best new to Prime Video shows to binge-watch this weekend (June 26-28) ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/entertainment/prime-video/3-best-new-to-prime-video-shows-to-binge-watch-this-weekend-june-26-28</link>
                                                                            <description>
                            <![CDATA[ Planning to binge-watch something new this weekend? Here's our weekly guide to the best new to Prime Video series you should be streaming right now. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">WdbntBEeujaL4jHWjn2btk</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/aozP98atByMPCDdiMyJSPC-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 26 Jun 2026 15:29:51 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Prime Video]]></category>
                                                    <category><![CDATA[Entertainment]]></category>
                                                    <category><![CDATA[Streaming]]></category>
                                                                                                                    <dc:creator><![CDATA[ Christina Izzo ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/LMncQCRNbbLXxxjbfZJvWE.jpeg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/aozP98atByMPCDdiMyJSPC-1280-80.jpg">
                                                            <media:credit><![CDATA[Prime Video; Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Prime Video logo on teal bubbles background]]></media:description>                                                            <media:text><![CDATA[Prime Video logo on teal bubbles background]]></media:text>
                                <media:title type="plain"><![CDATA[Prime Video logo on teal bubbles background]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/aozP98atByMPCDdiMyJSPC-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Between the swoon-worthy romantic series "Every Year After" and new installments of "The Legend of Vox Machina" and "Clarkson's Farm," we're coming off a great month for television on <a href="https://www.tomsguide.com/uk/entertainment/streaming/prime-video">Prime Video</a>. But we're not done just yet! The final weekend of June will still find some TV treasures primed and ready on the Amazon <a href="https://www.tomsguide.com/us/best-streaming-video-services,review-2625.html">streaming service.</a></p><p>Given that Prime Video has such an extensive library, with new TV titles and film releases being added to the platform on a monthly basis, we here are Tom's Guide have decided to make things easier for you and narrowed the list down to a trio of worthy shows that we think you should check out next. </p><p>Yes, there's more romance in store, this time in the form of South Korean workplace rom-com "See You at Work Tomorrow." And if you're a sports fan, we have a double dose of fun via a new four-part tennis docuseries and a fresh installment of Eli Manning's athlete-focused prank show. Here are the 3 best new to Prime Video shows to binge-watch this weekend.</p><h2 id="aces-the-atp-no-1-club">'ACES: The ATP No. 1 Club'</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/Esj4PeFiQ6w" allowfullscreen></iframe></div></div><p><strong>Genre: </strong>Sports docuseries</p><p><strong>What it's about: </strong>In five decades, only 29 men have reached No. 1 in the Association of Tennis Professionals (ATP) rankings—this new four-part doc looks at the journey of those talented athletes and explores "the obsession, sacrifice, and resilience behind that rare achievement," per Prime Video, revealing the "defining matches, rivalries, and personal costs that shaped these champions."</p><p><strong>Why you should watch it: </strong>Sure, it seems like the entire world has soccer on the brain at the moment, but between Wimbledon and the U.S. Open, tennis will soon be the talk of the sports-loving town. And this docuseries will certainly get you in the courtside mood, with talking-head interviews from tennis legends like John McEnroe, Björn Borg, Pete Sampras, Andre Agassi, Roger Federer, Rafael Nadal and Novak Djokovic, as well as current stars Carlos Alcaraz and Jannik Sinner.</p><p><em><strong>Stream '</strong></em><a href="https://www.primevideo.com/region/na/detail/0FT5BVEK47EUPXZH8GYYBZUZYT" target="_blank" rel="nofollow"><em><strong>Aces: The ATP No.1 Club' on Prime Video</strong></em></a><em><strong> now</strong></em></p><h2 id="see-you-at-work-tomorrow">'See You at Work Tomorrow'</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/kBGgK8F3CSU" allowfullscreen></iframe></div></div><p><strong>Genre: </strong>Workplace romance</p><p><strong>What it's about: </strong>Based on the 2020 Kakao webtoon "Back to Work!" by McQueen Studio, this South Korean rom-com centers on Cha Ji-yoon (Park Ji-hyun), a seventh-year product planner who is exhausted in both her professional and personal life, especially after suffering a painful breakup. However, that burnout gets a bit of a boost when, due to a departmental reorg, she begins working under Kang Si-woo (Seo In-guk), who is known to have a cold, Mr. Darcy-esque rigidity. Soon, though, the coworkers find themselves sharing some unexpected chemistry. </p><p><strong>Why you should watch it: </strong>If it's heart and humor you're after in your weekend watch, this office-set romance has plenty of both. Directed by Cho Eun-sol and written by Kim Kyung-min, the 12-episode first season blends witty workplace satire with palpable romantic tension.</p><p><em><strong>Watch </strong></em><a href="https://www.primevideo.com/region/na/detail/0NKUDJIM5VAE9079ZGUUVI3SS4" target="_blank" rel="nofollow"><em><strong>"See You at Work Tomorrow" on Prime Video</strong></em></a><em><strong> now</strong></em></p><h2 id="eli-manning-presents-the-undercovers">'Eli Manning Presents: The Undercovers'</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/hqjwmW4JIFA" allowfullscreen></iframe></div></div><p><strong>Genre: </strong>Prank comedy</p><p><strong>What it's about: </strong>In this sports comedy docuseries, football icon Eli Manning recruits fellow famous athletes to don heavy prosthetics and ridiculous disguises to prank and surprise their most diehard fans. In the newest installment, which hit Prime Video on June 11, the former NFL quarterback has roped in NASCAR champion Ryan Blaney to go undercover at the Team Penske Race Shop in Mooresville, North Carolina.</p><p><strong>Why you should watch it: </strong>Even if you're not a sports fan, there's still infectious joy to be felt watching big-time fans get the surprise of their life in this lighthearted, unscripted series. But if you <em>do </em>follow professional athletes, you'll get an extra kick out of watching the likes of linebacker Micah Parsons acting like an awkward waiter or wide receiver Justin Jefferson pretending to be a nature photographer. </p><p><em><strong>Stream "</strong></em><a href="https://www.primevideo.com/region/na/detail/0NQ2T4I0OK30WSADW946B4RZ9A/ref=atv_sr_fle_c_sra5ba81_1_1_1?sr=1-1&pageTypeIdSource=ASIN&pageTypeId=B0FYR6829N&qid=1782482483365" target="_blank" rel="nofollow"><em><strong>Eli Manning Presents: The Undercovers" on Prime Video</strong></em></a><em><strong> now</strong></em></p><figure class="inline-layout"><fw-embed-feed channel="toms_guide" playlist="gdR2W4" mode="row" player_placement="bottom-right"></fw-embed-feed></figure><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/entertainment/prime-video/no-prime-membership-required-stream-these-5-great-movies-for-free-right-now">Stream these 5 movies for free — no Prime membership required</a></li><li><strong></strong><a href="https://www.tomsguide.com/entertainment/prime-video/5-best-prime-video-movies-to-stream-now-before-they-leave-in-june-2026">5 best Prime Video movies to stream now before they leave in June 2026</a></li><li><a href="https://www.tomsguide.com/entertainment/prime-video/spike-lee-is-having-the-ultimate-knicks-championship-summer-but-his-greatest-new-york-movie-leaves-prime-video-in-days">Spike Lee is having the ultimate Knicks championship summer, but his greatest New York movie leaves Prime Video in days</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ 3 new Hulu shows you need to binge-watch this weekend (June 26-28) ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/entertainment/hulu/3-new-hulu-shows-you-need-to-binge-watch-this-weekend-june-26-28-2026</link>
                                                                            <description>
                            <![CDATA[ Here are three new to Hulu shows that you need to add to your weekend watchlist right now. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">Bz3AbTpihBPXcHU8eZG92k</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/hzQVZRbKFjLe5yKjDNRznh-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 26 Jun 2026 14:15:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Hulu]]></category>
                                                    <category><![CDATA[Entertainment]]></category>
                                                    <category><![CDATA[Streaming]]></category>
                                                                                                <author><![CDATA[ malcolm.mcmillan@futurenet.com (Malcolm McMillan) ]]></author>                    <dc:creator><![CDATA[ Malcolm McMillan ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/sSDLEbNEgBXf86HpujaWZ6.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Malcolm McMillan is a Streaming Editor for Tom&#039;s Guide, covering all the latest in streaming TV shows and movies. That means news, analysis, recommendations, reviews and more for just about anything you can watch, including sports! If it can be seen on a screen, he can write about it. &lt;/p&gt;&lt;p&gt;Malcolm has been with Tom&#039;s Guide since June 2022, starting as a staff writer covering breaking news. Since then, he&#039;s transitioned to cover artificial intelligence (AI), A/V tech and VR headsets. Since late 2023 he has almost exclusively covered streaming and entertainment for Tom&#039;s Guide.&lt;/p&gt;&lt;p&gt;Before writing for Tom&#039;s Guide, Malcolm worked as a fantasy football analyst writing for several sites and also had a brief stint working for Microsoft selling laptops, Xbox products and even the ill-fated Windows phone. He is passionate about video games and sports, though both cause him to yell at the TV frequently. He proudly sports many tattoos, including an Arsenal tattoo, in honor of the team that causes him to yell at the TV the most.&lt;/p&gt; ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/hzQVZRbKFjLe5yKjDNRznh-1280-80.jpg">
                                                            <media:credit><![CDATA[Hulu; Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Hulu logo on a yellow background]]></media:description>                                                            <media:text><![CDATA[Hulu logo on a yellow background]]></media:text>
                                <media:title type="plain"><![CDATA[Hulu logo on a yellow background]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/hzQVZRbKFjLe5yKjDNRznh-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p><strong></strong><a href="https://www.tomsguide.com/entertainment/streaming/hulu"><strong>Hulu</strong></a> is a great <a href="https://www.tomsguide.com/us/best-streaming-video-services,review-2625.html">streaming service </a>if you're looking for <strong>new shows to binge this weekend</strong>. It features a deep library of series from a range of Disney-owned networks, including FX, ABC and 20th Television. But it also has tons of original hit shows that you don't want to miss.</p><p>With so much available to watch, though, it can be overwhelming to decide where to start. Don't worry; I've put together a list of three new shows perfect for adding to your weekend watchlist. First up is the fifth and final season of "<strong>The Bear</strong>," which just ended its Emmy-laden run on Hulu with an eight-episode binge drop. Then, there's "<strong>Not Suitable for Work</strong>," a new comedy series from Mindy Kaling that's been a hit with audiences, even if critics have been colder in their reception of it. Finally, there's "<strong>Rivals</strong>"<strong> season 2</strong>, which just wrapped up the first part of its 12-episode season earlier this month.</p><p>So here are three new to Hulu shows you need to binge-watch this weekend, and why you need to watch them. For more recommendations, check out the full list of <a href="https://www.tomsguide.com/entertainment/hulu/new-on-hulu-in-june-2026-all-the-new-shows-and-movies-to-watch">everything new to Hulu in June 2026</a>.</p><figure class="inline-layout"><fw-embed-feed channel="toms_guide" playlist="gdR2W4" mode="row" player_placement="bottom-right"></fw-embed-feed></figure><a href="https://follow.it/articles-by-malcolm-mcmillan-streaming-editor-tom-s-guide?leanpub" class="button button--medium button--primary">Get the latest from Malcolm in your inbox</a><h2 id="the-bear-season-5">'The Bear' season 5</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/ojjCvICC86c" allowfullscreen></iframe></div></div><p><strong>Genre:</strong> Comedy-drama series</p><p><strong>What's it about?</strong> It's been a long ride for Carmy Berzatto (Jeremy Allen White) and the rest of the team at The Bear. The Italian beef joint has gone away and then come back as a takeaway spot, while the dining room has transformed into a Michelin Star-worthy establishment. But the restaurant industry is cruel, and after the shocking end to season 4, the gang has to get it together for one final service and one last shot at glory.</p><p><strong>Why you should watch it: </strong>Frankly, you should watch this for no other reason than this is the end. Seasons 1-2 of "The Bear" were two of the best seasons of television this century. Season 3 may have fallen off, but season 4 bounced back, and chances are you've been along for the entire ride. You owe it to yourself to see it through to the end.</p><p><em>Stream all five seasons of </em><a href="https://click.linksynergy.com/fs-bin/click?id=kXQk6%2aivFEQ&offerid=1589248.206&type=3&subid=0&u1=hawk-custom-tracking" target="_blank" rel="nofollow"><em>"The Bear" on Hulu</em></a><em> now</em></p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-ODnyGe"></div>                            </div>                            <script src="https://kwizly.com/embed/ODnyGe.js" async></script><h2 id="not-suitable-for-work-season-1">'Not Suitable for Work' season 1</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/X0oFLuUR-qQ" allowfullscreen></iframe></div></div><p><strong>Genre:</strong> Comedy series</p><p><strong>What's it about?</strong> "Not Suitable for Work" stars Ella Hunt, Avantika Vandanapu, Will Angus, Jack Martin and Nicholas Duvernay as a group of 20-somethings who are trying to make it work as young professionals in Manhattan. But one of them, AJ (Hunt), is already attracted to her boss (Jay Ellis), so it's safe to say things won't go smoothly.</p><p><strong>Why you should watch it: </strong>This show sure seems funny, at least based on the trailers. Critics on <a href="https://www.rottentomatoes.com/tv/not_suitable_for_work" target="_blank">Rotten Tomatoes</a> have not been kind, but audiences seem to like it, probably in no small part because Mindy Kaling is the creative mind behind this new comedy series. The season finale just dropped on Hulu this week, so now is the perfect time to check it out.</p><p><em>Stream all nine episodes of </em><a href="https://click.linksynergy.com/fs-bin/click?id=kXQk6%2aivFEQ&offerid=1589248.206&type=3&subid=0&u1=tomsguide-us-1981311753635218823" target="_blank" rel="nofollow"><em>"Not Suitable for Work" season 1 on Hulu</em></a><em> now</em></p><h2 id="rivals-season-2">'Rivals' season 2</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/KQYj3gMN4ko" allowfullscreen></iframe></div></div><p><strong>Genre:</strong> British period comedy-drama series</p><p><strong>What's it about?</strong> British MP Rupert Campbell-Black (Alex Hassell) does not get along with Lord Tony Baddingham (David Tennant). They have an intense rivalry with no boundaries; it's already seeped into Rutshire and into Tony's TV company, Corinium. In season 2, it's also seeped into British politics and seems ready to bring down at least one of these two men.</p><p><strong>Why you should watch it: </strong>If you love David Tennant, then it's a must-watch. If you love a British period piece, then "Rivals" is a must-watch. Catch up now before part 2 of season 2 arrives this fall.</p><p><em>Stream the first six episodes of </em><a href="https://click.linksynergy.com/fs-bin/click?id=kXQk6%2aivFEQ&offerid=1589248.206&type=3&subid=0&u1=hawk-custom-tracking" target="_blank" rel="nofollow"><em>"Rivals" season 2 on Hulu</em></a><em> now (part 2 coming in November 2026)</em></p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/entertainment/hulu/3-new-to-hulu-movies-you-need-to-stream-this-weekend-june-26-28-2026">3 new to Hulu movies you need to stream this weekend (June 26-28)</a></li><li><a href="https://www.tomsguide.com/entertainment/hbo-max/house-of-the-dragon-finally-delivers-the-epic-battle-ive-been-waiting-for-in-its-season-3-premiere">'House of the Dragon' finally delivers the epic battle I've been waiting for in its season 3 premiere</a></li><li><a href="https://www.tomsguide.com/entertainment/paramount-plus/3-new-to-paramount-movies-you-need-to-stream-this-weekend-june-26-28-2026">3 new to Paramount+ movies you need to stream this weekend (June 26-28)</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ 3 new to Paramount+ shows you need to binge-watch this weekend (June 26-28) ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/entertainment/paramount-plus/3-new-to-paramount-shows-you-need-to-binge-watch-this-weekend-june-26-28-2026</link>
                                                                            <description>
                            <![CDATA[ These three new Paramount+ shows are a must-watch this weekend. Here's what you need to add to your watchlist. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">VkmbjJmHZMNvgWkoGkSo5T</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/5s9dbBRaHHa7zTi5WUZP83-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 26 Jun 2026 13:45:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Paramount Plus]]></category>
                                                    <category><![CDATA[Entertainment]]></category>
                                                    <category><![CDATA[Streaming]]></category>
                                                                                                <author><![CDATA[ malcolm.mcmillan@futurenet.com (Malcolm McMillan) ]]></author>                    <dc:creator><![CDATA[ Malcolm McMillan ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/sSDLEbNEgBXf86HpujaWZ6.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Malcolm McMillan is a Streaming Editor for Tom&#039;s Guide, covering all the latest in streaming TV shows and movies. That means news, analysis, recommendations, reviews and more for just about anything you can watch, including sports! If it can be seen on a screen, he can write about it. &lt;/p&gt;&lt;p&gt;Malcolm has been with Tom&#039;s Guide since June 2022, starting as a staff writer covering breaking news. Since then, he&#039;s transitioned to cover artificial intelligence (AI), A/V tech and VR headsets. Since late 2023 he has almost exclusively covered streaming and entertainment for Tom&#039;s Guide.&lt;/p&gt;&lt;p&gt;Before writing for Tom&#039;s Guide, Malcolm worked as a fantasy football analyst writing for several sites and also had a brief stint working for Microsoft selling laptops, Xbox products and even the ill-fated Windows phone. He is passionate about video games and sports, though both cause him to yell at the TV frequently. He proudly sports many tattoos, including an Arsenal tattoo, in honor of the team that causes him to yell at the TV the most.&lt;/p&gt; ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/5s9dbBRaHHa7zTi5WUZP83-1280-80.jpg">
                                                            <media:credit><![CDATA[Paramount+; Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Paramount+ logo on a bright green dot background]]></media:description>                                                            <media:text><![CDATA[Paramount+ logo on a bright green dot background]]></media:text>
                                <media:title type="plain"><![CDATA[Paramount+ logo on a bright green dot background]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/5s9dbBRaHHa7zTi5WUZP83-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p><strong></strong><a href="https://www.tomsguide.com/entertainment/streaming/paramount-plus"><strong>Paramount+</strong></a> is constantly adding new shows to binge, and this weekend is no exception. The <a href="https://www.tomsguide.com/us/best-streaming-video-services,review-2625.html">streaming service</a> drops new episodes of hit shows every week, and sometimes even entire seasons to binge. In fact, it <a href="https://www.tomsguide.com/entertainment/paramount-plus/paramount-just-added-93-new-movies-and-shows-heres-the-5-im-streaming-first-june-1-2026">added 93 new movies and shows on June 1</a> alone. These aren't always new, original shows, though. While Paramount+ adds new shows from Paramount's networks, like CBS, as well as coproductions with international studios, it also brings back older shows, ripe for a binge-watch.</p><p>This weekend, I've got three shows worth watching. First, there's "<strong>Wild Cherry</strong>," a British thriller miniseries that already debuted in the U.K. but just made its streaming debut on Paramount+ this week. Then, there's "<a href="https://www.tomsguide.com/entertainment/paramount-plus/dutton-ranch-is-a-must-watch-on-paramount-for-yellowstone-fans"><strong>Dutton Ranch</strong></a>," which only has one episode left after this weekend. Finally, "<a href="https://www.tomsguide.com/entertainment/paramount-plus/michael-fassbender-shines-in-the-agency-season-2-which-is-as-twisted-a-spy-thriller-as-ever"><strong>The Agency</strong>"<strong> season 2</strong></a><strong> </strong>is now available to binge in its entirety, as Paramount opted for a 10-episode drop rather than a weekly release schedule this time around.</p><p>Here are the three new to Paramount+ shows you need to binge-watch this weekend. If you need more recommendations, check out <a href="https://www.tomsguide.com/entertainment/paramount-plus/new-on-paramount-in-june-2026-top-movies-and-shows-to-stream-this-month">everything coming to Paramount+ in June 2026</a> for more options.</p><figure class="inline-layout"><fw-embed-feed channel="toms_guide" playlist="gdR2W4" mode="row" player_placement="bottom-right"></fw-embed-feed></figure><a href="https://follow.it/articles-by-malcolm-mcmillan-streaming-editor-tom-s-guide?leanpub" class="button button--medium button--primary">Get the latest from Malcolm in your inbox</a><h2 id="wild-cherry">'Wild Cherry'</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/OaiNmeRZpwY" allowfullscreen></iframe></div></div><p><strong>Genre: </strong>British thriller miniseries</p><p><strong>What's it about?</strong> Wild Cherry centers around a self-made businesswoman, Lorna (Carmen Ejogo), and her best friend, Juliet (Eve Best). The latter was born into a world of wealth and good fortune, but now they both live in an enclave with their daughters. Their lives are rocked, though, when their daughters are suddenly implicated in a scandal and toxic secrets start to tear through the small, elite community.</p><p><strong>Why you should watch it: </strong>Despite already premiering in the U.K., there aren't too many reviews for this limited series on <a href="https://www.rottentomatoes.com/tv/wild_cherry/s01" target="_blank">Rotten Tomatoes</a>. That said, the few that exist are good, and the Brits know how to nail a six-episode miniseries. I fully expect this show to be well worth watching.</p><p><em>Stream all six episodes of </em><a href="https://www.paramountplus.com" target="_blank" rel="nofollow"><em>"Wild Cherry" on Paramount+</em></a><em> now</em></p><h2 id="dutton-ranch-season-1">'Dutton Ranch' season 1</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/19I5a1tRt98" allowfullscreen></iframe></div></div><p><strong>Genre:</strong> Neo-Western drama series</p><p><strong>What's it about?</strong> "Dutton Ranch" brings back Cole Hauser and Kelly Reilly in a "Yellowstone" spinoff, and it's addictive to watch. The duo is reprising their roles as Rip Wheeler and Beth Dutton from the original show, but this time, they're starting over in Texas. They hope to get away from the baggage of Montana, but it turns out there's plenty of new drama in the Lone Star State.</p><p><strong>Why you should watch it: </strong>"Yellowstone" never really spoke to me, but I've been enjoying this spin-off. In my <a href="https://www.tomsguide.com/entertainment/paramount-plus/dutton-ranch-is-a-must-watch-on-paramount-for-yellowstone-fans">"Dutton Ranch" review</a>, I highlighted Ed Harris and Annette Bening as being big reasons I liked it, and so far, they remain the highlights of the show. I haven't stopped watching and am eagerly awaiting next weekend's season finale.</p><p><em>Stream the first eight episodes of </em><a href="https://www.paramountplus.com/" target="_blank" rel="nofollow"><em>"Dutton Ranch" on Paramount+</em></a><em> now</em></p><h2 id="the-agency-season-2">'The Agency' season 2</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/cYpslA2ytis" allowfullscreen></iframe></div></div><p><strong>Genre:</strong> Spy thriller series</p><p><strong>What's it about?</strong> "The Agency” is adapted from the acclaimed French spy thriller series "Le Bureau des Légendes" (or "The Bureau"). It's set at the CIA's London office and stars Michael Fassbender as a deep-cover agent named Brandon, though he mostly goes by his codename: "Martian." His cover and his work life are dangerously intertwined, and in season 2, he will betray the CIA to save the woman he loves (Jodie Turner-Smith).</p><p><strong>Why you should watch it: </strong>I've seen all 10 episodes, and in my <a href="https://www.tomsguide.com/entertainment/paramount-plus/michael-fassbender-shines-in-the-agency-season-2-which-is-as-twisted-a-spy-thriller-as-ever">"The Agency" season 2 review</a>, I landed firmly in the camp of loving this show once again. It's not a perfect show; most of the problems from season 1 are still there in season 2. But this show knows how to build to an explosive finale, and I don't mean that simply as a metaphor.</p><p><em>Stream the entire second season of </em><a href="https://www.paramountplus.com" target="_blank" rel="nofollow"><em>"The Agency" on Paramount+</em></a><em> now</em></p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-Ww12aX"></div>                            </div>                            <script src="https://kwizly.com/embed/Ww12aX.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/entertainment/hulu/3-new-to-hulu-movies-you-need-to-stream-this-weekend-june-26-28-2026">3 new to Hulu movies you need to stream this weekend (June 26-28)</a></li><li><a href="https://www.tomsguide.com/entertainment/hbo-max/house-of-the-dragon-finally-delivers-the-epic-battle-ive-been-waiting-for-in-its-season-3-premiere">'House of the Dragon' finally delivers the epic battle I've been waiting for in its season 3 premiere</a></li><li><a href="https://www.tomsguide.com/entertainment/paramount-plus/3-new-to-paramount-movies-you-need-to-stream-this-weekend-june-26-28-2026">3 new to Paramount+ movies you need to stream this weekend (June 26-28)</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ 3 best new to Prime Video movies to stream this weekend (June 26-28) ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/entertainment/prime-video/3-best-new-to-prime-video-movies-to-stream-this-weekend-june-26-28</link>
                                                                            <description>
                            <![CDATA[ Planning to binge-watch something new this weekend? Here's our weekly guide to the best new to Prime Video series you should be streaming right now. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">crEDQnCnAiSjpCQY84FDdj</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/JBy4JwfMvxZAJ2z6VKQGeK-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 26 Jun 2026 13:18:30 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Prime Video]]></category>
                                                    <category><![CDATA[Entertainment]]></category>
                                                    <category><![CDATA[Streaming]]></category>
                                                                                                                    <dc:creator><![CDATA[ Brittany Vincent ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/JDgb6vqXHys3nrFJpkRCub.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/JBy4JwfMvxZAJ2z6VKQGeK-1280-80.jpg">
                                                            <media:credit><![CDATA[Prime Video; Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Prime Video logo on a blue pink film reel background]]></media:description>                                                            <media:text><![CDATA[Prime Video logo on a blue pink film reel background]]></media:text>
                                <media:title type="plain"><![CDATA[Prime Video logo on a blue pink film reel background]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/JBy4JwfMvxZAJ2z6VKQGeK-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Few things beat a weekend with nothing on the calendar, and if you're planning to spend yours horizontal with snacks in reach, the only real decision you need to make is what movie to watch. Prime Video makes that part easy, since it's always adding new movies to the streaming service. But that also presents a problem: With so many available, what exactly do you watch?</p><p>We've pulled three recent arrivals worth clearing an afternoon for, and there's a little something for every kind of mood. "Superman," James Gunn's big-hearted reboot, is for when you want a blockbuster that the whole couch can agree on. "Beetlejuice Beetlejuice" is the perfect pick if you'd rather keep things weird and fun (and if you're a big retro fan). And "Thoroughbreds" is one excellent pick if you think you want something sinister for the night.</p><p>Scroll on for a closer look at the three best new-to-Prime-Video movies to stream this weekend. You're good to go with any of them, even on rewatch. </p><figure class="inline-layout"><fw-embed-feed channel="toms_guide" playlist="gdR2W4" mode="row" player_placement="bottom-right"></fw-embed-feed></figure><h2 id="superman">'Superman'</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/Ox8ZLF6cGM0" allowfullscreen></iframe></div></div><p><strong>Genre: </strong>Superhero, action-adventure</p><p><strong>What it's about: </strong>David Corenswet dons the iconic cape and leotard as Clark Kent/Superman, with Rachel Brosnahan as Lois Lane and Nicholas Hoult as a scheming Lex Luthor. Superman grapples with what it means to do the right thing in a world that's seemingly suddenly turned against him after intervening in an international conflict. Backed by a lush cast that includes Edi Gathegi (Mister Terrific), Nathan Fillion (Guy Gardner), Isabela Merced (Hawkgirl), Anthony Carrigan (Metamorpho), Skyler Gisondo (Jimmy Olsen) and a superdog named Krypto, Superman has to win back a world that's suddenly decided it doesn't trust him.</p><p><strong>Why you should watch it: </strong>This heartfelt take on Supes became one of 2025's<strong> </strong>biggest hits and served as the official kickoff of Gunn's DCU, so catching up now sets you up for Milly Alcock's "Supergirl", which is officially in theaters now. </p><p><a href="https://www.primevideo.com/detail/0LYFYGIZPMS0O3KM7Q4YYKVNI5/ref=atv_me_new_c_SkHqOH_awns_2_1?jic=8%7CEgRzdm9k" target="_blank" rel="nofollow"><em><strong>Stream "Superman" on Prime Video now</strong></em></a></p><h2 id="beetlejuice-beetlejuice">'Beetlejuice Beetlejuice'</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/CoZqL9N6Rx4" allowfullscreen></iframe></div></div><p><strong>Genre: </strong>Horror comedy</p><p><strong>What it's about: </strong>Tim Burton reunites with the original cast of "Beetlejuice" for a sequel set decades after the 1988 classic. When a family tragedy brings three generations of Deetz women, Lydia (Winona Ryder), her stepmother Delia (Catherine O'Hara) and Lydia's teenage daughter Astrid (Jenna Ortega), back to Winter River, Astrid accidentally tears open a portal to the afterlife. That's all the chaotic Beetlejuice (Michael Keaton) needs, though he's got troubles of his own in the form of a vengeful, soul-sucking ex-wife named Delores (Monica Bellucci).</p><p><strong>Why you should watch it: </strong>If you're an OG fan or you love the similarly bleak yet comedic "Wednesday," this legacy sequel serves up hilarious afterlife-infused energy. And Keaton dons the striped suit once more perfectly, like it never left his body. </p><p><a href="https://www.primevideo.com/detail/0RABMTBIQ3C42XUZT03NCKVVTH/ref=atv_me_new_c_SkHqOH_awns_2_2?jic=8%7CEgRzdm9k" target="_blank" rel="nofollow"><em><strong>Stream "Beetlejuice Beetlejuice" on Prime Video now</strong></em></a></p><h2 id="thoroughbreds">'Thoroughbreds'</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/TPcV_3D3V2A" allowfullscreen></iframe></div></div><p><strong>Genre: </strong>Dark comedy, thriller</p><p><strong>What it's about: </strong>Two estranged childhood friends reconnect as teenagers. Lily (Anya Taylor-Joy) appears to have the perfect life but is miserable living under her controlling stepfather, while the more detached Amanda (Olivia Cooke) feels almost nothing at all. As they become closer once more, the two hatch a plan to solve Lily's problem for good, dragging a small-time hustler (Anton Yelchin) into the scheme.</p><p><strong>Why you should watch it: </strong>If you love movies like "Heathers" or "Saltburn," this stylish thriller is a true hidden gem. It's an early showcase for Taylor-Joy and Cooke before they broke out, and it's one of the final films from the late Anton Yelchin, who's wonderful in it as well. </p><p><a href="https://www.primevideo.com/detail/0KT74VPU63AHIHTGW3YP2RP7JF/ref=atv_me_new_c_SkHqOH_brws_2_16?jic=8%7CEgRzdm9k" target="_blank" rel="nofollow"><em><strong>Stream "Thoroughbreds" on Prime Video now</strong></em></a></p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I finally tried a vertical mouse and it was the ergonomic upgrade my desk setup was missing ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/computing/peripherals/i-thought-a-vertical-mouse-was-no-match-for-my-trackball-until-i-tried-one-and-now-im-never-going-back</link>
                                                                            <description>
                            <![CDATA[ Using a standard mouse day in and day out takes its toll on your wrist — so I finally decided to give a vertical mouse a try. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">TfBsTbS6DmX6o9HmQ5uUc6</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/y7bcFsms72VaRaXkfgVYW8-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 26 Jun 2026 10:30:00 +0000</pubDate>                                                                                                                                <updated>Mon, 29 Jun 2026 05:31:35 +0000</updated>
                                                                                                                                            <category><![CDATA[Computing Peripherals]]></category>
                                                                                                <author><![CDATA[ anthony.spadafora@futurenet.com (Anthony Spadafora) ]]></author>                    <dc:creator><![CDATA[ Anthony Spadafora ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/z73LEoj7FkUjNG85GcWHtH.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Anthony Spadafora is the managing editor for security and home office furniture at Tom’s Guide where he covers everything from data breaches and malware to password managers and the best way to cover your whole home or business with a strong Wi-Fi signal.&lt;/p&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;Before joining the team, he spent three years covering cybersecurity and B2B tech for ITProPortal while living in South Korea. After moving back to the US. Anthony joined the TechRadar Pro team where he covered these topics along with VPNs, web hosting, online collaboration software and video conferencing for four years. Anthony also has his ears to the ground and is on the lookout for the next major cyberattack or data breach.&lt;/p&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;Based in Houston, Texas, Anthony also handles VPN testing for both Tom’s Guide and TechRadar. As someone who has worked from home exclusively since 2018, he has reviewed dozens of standing desks as well as office chairs and has taken a closer look at other essential remote working accessories. As part of these reviews, Anthony frequently builds intricate desk setups which is why he’s such a big advocate for cable management and keeping things organized. When he’s not writing, he can be found tinkering with PCs and game consoles, managing cables and making upgrades to his smart home.&lt;/p&gt; ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/y7bcFsms72VaRaXkfgVYW8-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A person using the Keychron M5 vertical mouse on a desk]]></media:description>                                                            <media:text><![CDATA[A person using the Keychron M5 vertical mouse on a desk]]></media:text>
                                <media:title type="plain"><![CDATA[A person using the Keychron M5 vertical mouse on a desk]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/y7bcFsms72VaRaXkfgVYW8-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Just like sitting in an office chair all day isn’t good for your health, using a traditional mouse for hours on end does a number on your body. Those small, repetitive movements and awkward hand positions take a serious toll on your wrist, forearm, and even your shoulder — which is why I switched to a <a href="https://www.tomsguide.com/reference/what-is-a-trackball-mouse">trackball mouse</a> many years ago.</p><p>Not too long after I made the switch, though, a different kind of mouse started blowing up. Although the vertical mouse was first introduced by inventor Jack Lo back in 1994, it wasn’t until the launch of the <a href="https://www.tomsguide.com/us/logitech-mx-vertical-price-availability,news-27829.html">Logitech MX Vertical</a> in 2018 that they actually became mainstream.</p><p>Maybe it was because this new device was part of Logitech's excellent <a href="https://www.tomsguide.com/computing/i-went-all-in-on-logitechs-mx-master-series-for-my-new-desk-setup-and-this-accessory-was-the-real-game-changer">MX Master Series</a>, but once the MX Vertical hit store shelves, vertical mice were here to stay. More recently, the company released a cheaper, more compact version called the <a href="https://www.tomsguide.com/reviews/logitech-lift">Logitech Lift</a>. In the years since, other accessory makers have joined the fray, and these days you can find vertical mice from Acer, Anker, ProtoArc, Ugreen, and of course, Keychron.</p><p>Since I was already testing out its new <a href="https://www.tomsguide.com/computing/keyboards/i-used-keychrons-new-split-mechanical-keyboard-for-a-week-and-its-tether-free-design-is-a-complete-game-changer">Q11 Ultra split keyboard</a>, Keychron asked if I’d be interested in trying out its M5 vertical mouse. While I’ve used a trackball as my daily driver for over a decade now, I figured it was finally time to give a vertical mouse a shot. After using the Keychron M5 for the past month, I honestly wish I had sooner.</p><div class="product"><a data-dimension112="59f83a49-ba40-4f59-b9bb-1ec8ec420bdf" data-action="Deal Block" data-label="This wireless vertical mouse features a blazing fast 8K polling rate and can connect via Bluetooth or using the included 2.4 GHz dongle. In addition to a standard scroll wheel up top, you also have a vertical one on the side as well as two extra buttons that you can customize to your liking online using the Keychron Launcher." data-dimension48="This wireless vertical mouse features a blazing fast 8K polling rate and can connect via Bluetooth or using the included 2.4 GHz dongle. In addition to a standard scroll wheel up top, you also have a vertical one on the side as well as two extra buttons that you can customize to your liking online using the Keychron Launcher." data-dimension25="$59" href="https://www.amazon.com/Keychron-Ergonomic-Bluetooth-Rechargeable-Programmable/dp/B0FRMS2F1P?th=1" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1465px;"><p class="vanilla-image-block" style="padding-top:102.39%;"><img id="MKi48rY4XRGSYs2ymYLyJT" name="M5" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/MKi48rY4XRGSYs2ymYLyJT.jpg" mos="" align="middle" fullscreen="" width="1465" height="1500" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>This wireless vertical mouse features a blazing fast 8K polling rate and can connect via Bluetooth or using the included 2.4 GHz dongle. In addition to a standard scroll wheel up top, you also have a vertical one on the side as well as two extra buttons that you can customize to your liking online using the Keychron Launcher.<a class="view-deal button" href="https://www.amazon.com/Keychron-Ergonomic-Bluetooth-Rechargeable-Programmable/dp/B0FRMS2F1P?th=1" target="_blank" rel="nofollow" data-dimension112="59f83a49-ba40-4f59-b9bb-1ec8ec420bdf" data-action="Deal Block" data-label="This wireless vertical mouse features a blazing fast 8K polling rate and can connect via Bluetooth or using the included 2.4 GHz dongle. In addition to a standard scroll wheel up top, you also have a vertical one on the side as well as two extra buttons that you can customize to your liking online using the Keychron Launcher." data-dimension48="This wireless vertical mouse features a blazing fast 8K polling rate and can connect via Bluetooth or using the included 2.4 GHz dongle. In addition to a standard scroll wheel up top, you also have a vertical one on the side as well as two extra buttons that you can customize to your liking online using the Keychron Launcher." data-dimension25="$59">View Deal</a></p></div><h2 id="form-follows-forearm">Form follows forearm</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3000px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="ds7QjYGJ2AaUEQ9rXJKxZi" name="Keychron M5" alt="The Keychron M5 vertical mouse unboxed on a desk" src="https://cdn.mos.cms.futurecdn.net/ds7QjYGJ2AaUEQ9rXJKxZi.jpg" mos="" align="middle" fullscreen="" width="3000" height="1688" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>As the name suggests, a vertical mouse takes the design of a traditional mouse and shifts the buttons and scroll wheel to the side. This allows your hand to rest naturally on its edge in a "handshake" position, rather than being forced flat against your desk. The curves around the base and top of the Keychron M5 conform perfectly to your hand, making it incredibly comfortable to hold even for long stretches at a time.</p><p>In the box, alongside the mouse itself, you get a 2.4 GHz USB receiver, a braided USB-C to USB-C cable, and a USB-C to USB-A adapter just in case you’re using an older machine. Everything was really well packaged, and it was nice to see similar accessories to the ones you get with one of the <a href="https://www.tomsguide.com/best-picks/best-mechanical-keyboards">best mechanical keyboards</a> from Keychron.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3000px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="AxCNpxGDr4AMxfy5PzhPLm" name="Keychron M5-3" alt="The front USB-C port on the Keychron M5 vertical mouse" src="https://cdn.mos.cms.futurecdn.net/AxCNpxGDr4AMxfy5PzhPLm.jpg" mos="" align="middle" fullscreen="" width="3000" height="1688" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>On the front of the M5, there's a USB-C port used for charging or running the mouse in wired mode. Over on the right side, you'll find the standard left and right-click buttons, separated by a nicely textured scroll wheel that's easy to grip with your index finger. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3000px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="9X4DE27AsiZCpbcMFdtm4" name="Keychron M5-2" alt="The side buttons on the Keychron M5 vertical mouse" src="https://cdn.mos.cms.futurecdn.net/9X4DE27AsiZCpbcMFdtm4.jpg" mos="" align="middle" fullscreen="" width="3000" height="1688" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The left side is where things get interesting. In addition to where your thumb rests, Keychron placed a second, wider scroll wheel up near the top. While you can map it to scroll vertically, I used the browser-based Keychron Launcher to set it to horizontal scrolling. This way, I can easily scroll through extra wide spreadsheets horizontally without having to use the scroll bar at the bottom in Google Sheets. </p><p>In my rush to get the M5 unboxed and on my desk, I completely forgot to take a picture of the bottom. On the underside, there’s a mode toggle switch surrounded by three small buttons. One button controls your DPI, another lets you crank the polling rate all the way up to an ultra-responsive 8K and the last one lets you swap between several Bluetooth channels as you can pair this mouse with up to three devices over Bluetooth.</p><p>With the M5 all charged up, it was time to plug into my computer and take it for a scroll.</p><h2 id="sculpted-to-your-workflow">Sculpted to your workflow</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="iqEh2dGs8k8jrCR25BTRnC" name="Keychron Q11 Ultra-3" alt="A desk setup built around the Keychron Q11 Ultra and the Geekom A9 Max 2026 Edition" src="https://cdn.mos.cms.futurecdn.net/iqEh2dGs8k8jrCR25BTRnC.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>To test out the Keychron M5, I added it to a productivity-focused desk setup I put together while reviewing the <a href="https://www.tomsguide.com/computing/mini-pcs/geekom-a9-max-review">Geekom A9 Max</a> mini PC. It’s sitting right next to the Q11 Ultra split mechanical keyboard, and I’m using the <a href="https://www.tomsguide.com/computing/monitors/i-ditched-my-dual-monitor-setup-for-a-single-40-inch-ultrawide-and-two-screens-arent-better-than-one">Innocn 40C1U</a> 40-inch ultrawide as my display.</p><p>Even though I recently took a hiatus from my trusty trackball mouse to try out the <a href="https://www.tomsguide.com/computing/mice/logitech-mx-master-4-review">Logitech MX Master 4</a>, it still took me a bit to get fully accustomed to the M5. My hand wanted to rest flat out of habit, but by the second day of using this vertical mouse, that craving went away and having my hand tilted slightly felt like second nature. Once the initial novelty wore off, it was time to put the M5 to work — but before doing so, I wanted to customize those side buttons.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3328px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="SA35o9F3CFVfyhCYJhdig5" name="keychron-m5-keychron-launcher" alt="A screenshot showing how you can configure the Keychron M5 vertical mouse using the Keychron Launcher in your browser" src="https://cdn.mos.cms.futurecdn.net/SA35o9F3CFVfyhCYJhdig5.jpg" mos="" align="middle" fullscreen="" width="3328" height="1872" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>To that end, I booted up the <a href="https://launcher.keychron.com/#/not-connect" target="_blank">Keychron Launcher</a>, hit the connect button on the top right, and the web app instantly recognized the M5. You can technically customize all of the mouse’s wheels and buttons, but for my purposes, I stuck to tweaking the functionality of the ones on the left side.</p><p>Since I’m constantly working with long blocks of text when uploading and editing articles, I set the button toward the front of the mouse to copy and the one behind it to paste. Then, like I mentioned before, I set the larger scroll wheel above them to scroll horizontally. This took two steps, as I had to manually set scrolling down to go right and scrolling up to go left. Still, I appreciate that you can fine-tune how this extra scroll wheel works to your liking.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3000px;"><p class="vanilla-image-block" style="padding-top:56.23%;"><img id="BxqFVueYrkmQChJfNTKpqf" name="Keychron M5-4" alt="A person using the Keychron M5 vertical mouse" src="https://cdn.mos.cms.futurecdn.net/BxqFVueYrkmQChJfNTKpqf.jpg" mos="" align="middle" fullscreen="" width="3000" height="1687" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>In day-to-day use, what surprised me most about the M5 is that I didn’t feel any wrist strain at all, even though this vertical mouse works more like a traditional one with an optical sensor on the bottom as opposed to a trackball controlled entirely by your thumb or index finger. I chalk this up to the fact that Keychron didn’t just make a vertical mouse; they made an exceptionally fast one with an 8K polling rate. I also have my mouse cursor set to go insanely fast across the screen given the 5K2K resolution of the Innocn monitor I’m using.</p><p>As for the M5’s battery life, Keychron claims it can last up to 140 hours on a single charge. I’d say that’s fairly accurate, as during the month or so I’ve spent using this mouse (without turning it off overnight), I’ve only had to charge it once. Keep in mind, though, with the polling rate set above 1,000Hz, the mouse is going to use more power and the battery won’t last nearly as long. However, you could easily turn it up when doing a task where you need that high polling rate and then click it back down afterward using the button on the underside.</p><p>One thing I haven’t tried out with the M5 yet is gaming, but I expect it would work pretty well for that, too. After <a href="https://www.tomsguide.com/gaming/gaming-peripherals/i-just-tested-this-trackball-mouse-for-gaming-and-now-i-might-put-down-my-controller-for-good">using a trackball mouse for gaming</a>, I don’t think it would be that difficult to use a vertical mouse to do the same.</p><h2 id="a-perfect-ergonomic-pair">A perfect ergonomic pair</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="JHqG6SZYPiFZbaWhdoD9VG" name="Keychron Q11 Ultra-2" alt="A person typing on the Keychron Q11 Ultra split mechanical keyboard at their desk" src="https://cdn.mos.cms.futurecdn.net/JHqG6SZYPiFZbaWhdoD9VG.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>As a trackball convert turned diehard, I initially wrote off vertical mice. Why would I want to go back to moving my hand across my desk when I could just move my thumb? In fact, when a coworker brought them up as a great ergonomic option, I scoffed at the idea since trackballs already existed. Now, though, I’ve been converted yet again — using a vertical mouse is a lot more comfortable and enjoyable than I ever thought it would be.</p><p>There’s a steep learning curve when switching from a traditional mouse to a trackball. With a vertical mouse, there really isn’t one at all. Sure, your hand might feel slightly out of place for the first hour or so, but by the end of the day, you’ll be clicking and scrolling just like you always have.</p><p>One thing that really helped ease my transition was using it alongside a split keyboard. I had used a split keyboard for several years in the past but eventually gave it up in favor of a standard wireless mechanical keyboard. With my arms resting more naturally with the Q11 separated into halves, it just felt completely right reaching for the M5 when it came time to move my cursor.</p><p>Since I review tech for a living, I switch between different keyboards and mice as often as I try out new mini PCs. However, this combination of the Keychron Q11 keyboard and M5 mouse has really grown on me, and I think I might stick with it for a bit longer than I normally do. If, like me, you’re on the fence about giving a vertical mouse a shot, I highly recommend this one — especially since you can pick it up for around $70.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/tablets/i-ditched-my-ipad-and-kindle-for-this-tablet-with-a-paper-like-display-and-its-up-to-39-percent-off-for-prime-day">I ditched my iPad and Kindle for this tablet with a paper-like display — and it's up to 39% off for Prime Day</a></li><li><a href="https://www.tomsguide.com/computing/i-screenmaxxed-my-desk-setup-by-going-from-three-to-five-displays-but-they-arent-all-monitors">I screenmaxxed my desk setup by going from three to five displays — but they aren’t all monitors</a></li><li><a href="https://www.tomsguide.com/computing/laptops/i-held-the-macbook-neo-in-one-hand-and-the-new-xps-13-in-the-other-and-dells-affordable-laptop-is-surprisingly-lighter">I held the MacBook Neo in one hand and the new XPS 13 in the other — and Dell’s $699 laptop is surprisingly lighter</a></li></ul><div class="vizualizer-embed"><div class="tg-df-widget-host" data-widget-config="?search=vertical+mice&min_discount_ratio=0.95&widget_title=Top+Deals+Handpicked+by+Our+Editors&widget_subtitle=Discover+the+best+discounts+currently+available%2C+curated+daily+by+the+Tom%27s+Guide+Savings+Squad.&bg_color=transparent" data-vizualizer-embed="true"></div>    <script>    /**     * Tom's Guide Deals Finder - Vanilla JS Encapsulated Engine     */    (function() {      // --- Freyr Analytics Adapter ---      function initAnalytics() {        window.dataLayer = window.dataLayer || [];        window.googletag = window.googletag || {};        window.googletag.cmd = window.googletag.cmd || [];        window.hawk = window.hawk || { analytics: { freyr: [] } };        window.hawk.analytics = window.hawk.analytics || { freyr: [] };        window.hawk.analytics.freyr = window.hawk.analytics.freyr || [];        window.freyr = window.freyr || { cmd: [] };        const scriptSrc = 'https://freyr.futurecdn.net/freyr.js';        const hostname = typeof window !== 'undefined' ? window.location.hostname : '';        const isTestEnv = typeof window.navigator !== 'undefined' && (window.navigator.webdriver || window.navigator.userAgent.includes('Headless'));        const shouldSendRealAnalytics = !isTestEnv && hostname && hostname !== 'localhost' && hostname !== '127.0.0.1' && !hostname.includes('run.app');        if (shouldSendRealAnalytics && !document.querySelector(`script[src="${scriptSrc}"]`)) {          const script = document.createElement('script');          script.src = scriptSrc;          script.async = true;          document.head.appendChild(script);        }      }      function storeEventForDebug(name, data) {        if (!window.hawk || !window.hawk.analytics || !window.hawk.analytics.freyr) return;        window.hawk.analytics.freyr.push({ name, data });        try {          if (typeof window !== 'undefined' && window.localStorage) {            window.localStorage.setItem("hawk", JSON.stringify(window.hawk));          }        } catch (e) {          // Ignore storage issues        }        try {          window.dispatchEvent(new CustomEvent("hawk-analytics-update"));        } catch (e) {}      }      function sendToFreyr(eventName, data) {        if (typeof window === 'undefined') return;        window.freyr = window.freyr || { cmd: [] };        window.freyr.cmd.push(() => {          if (window.freyr && window.freyr.pushAndUpdate) {            window.freyr.pushAndUpdate(eventName, data);          }        });      }      function sendEvent(event, skip = false) {        try {          storeEventForDebug(event.name, event.data);          if (!skip) {            sendToFreyr(event.name, event.data);          }        } catch (e) {          // Ensure tracking errors don't surface to the user        }      }      function getCookie(name) {        try {          const match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)'));          return match ? match[2] : null;        } catch (e) {          return null;        }      }      function normalizeCurrency(symbol) {        const map = {          '£': 'GBP',          '$': 'USD',          'A$': 'AUD',          'CA$': 'CAD',          '€': 'EUR'        };        return map[symbol] || symbol;      }      function trackElementInteraction(props) {        sendEvent({          name: 'elementInteraction',          data: {            element: {              action: props.action || "click",              id: props.id || undefined,              class: props.class || undefined,              name: props.name || undefined,              text: props.text || undefined,              label: props.label || undefined,              container: props.container || undefined,              url: props.url || undefined,              articleId: props.articleId || undefined            }          }        });      }      function generateRevenueId(url, productName, merchantName, modelId) {        const str = `${window.location.href}|${productName}|${merchantName}|${modelId || ''}|${new Date().toDateString()}|tomsguide`;        let hash = 0;        for (let i = 0; i < str.length; i++) {          const char = str.charCodeAt(i);          hash = ((hash << 5) - hash) + char;          hash = hash & hash;        }        let numericStr = Math.abs(hash).toString();        while (numericStr.length < 19) {          numericStr += Math.floor(Math.random() * 10).toString();        }        return numericStr.substring(0, 19);      }      function rewriteAffiliateLink(url, territory, revenueId) {        if (!url) return url;        const t = (territory || 'gb').toLowerCase();        return url.replace(/hawk-custom-tracking/g, `tomsguide-${t}-${revenueId}`);      }      function trackHawkEvent(params) {        const { clickType, widgetId, productCategoryName, product, productsArray, zeroBasedProductIndexOrNull, totalDealsOrProducts, areaClicked, merchant, revenueId, isoCurrencyCode, queryName, widgetTypeName } = params;        const data = {          event: "hawkEvent",          category: "Affiliates",          affiliate: {            action: {              type: clickType,              id: widgetId,              event: clickType === "appeared" ? "viewed" : "Click from",              timestamp: Date.now()            },            component: {              flag: "Editor",              product: productCategoryName || "deals",              category: `Signal Deal Finder ${widgetTypeName || "Carousel"} widget`,              type: clickType === "appeared" ? "review" : "signal product",              label: queryName || (product ? (product.name || "") : ""),              index: zeroBasedProductIndexOrNull === null || zeroBasedProductIndexOrNull === undefined ? -1 : zeroBasedProductIndexOrNull,              linkCount: totalDealsOrProducts || 0,              blockLayout: "",              areaClicked: areaClicked || ""            }          },          products: productsArray || (product && merchant ? [            {              product: {                primary: {                  id: product.id || product.matchId || null,                  name: product.name,                  type: "deal",                  price: product.price,                  previousPrice: product.previousPrice || null,                  currency: isoCurrencyCode || "USD",                  preorder: false,                  labels: [],                  link: product.link,                  originalLink: product.originalLink || null,                  revenueId: revenueId || null,                  startTime: null,                  endTime: null,                  voucherCode: null,                  voucherAudience: null,                  voucherPercentageSaving: null,                  voucherMoneySaving: null,                  voucherType: null,                  offerExclusive: false,                  offerScope: null,                  globalId: product.globalId || null,                  inStock: product.inStock !== false,                  contractProvider: null,                  contractMinutes: null,                  contractTexts: null,                  contractData: null,                  contractLength: null,                  contractMonthlyPrice: null,                  contractCurrency: isoCurrencyCode || "USD"                }              },              merchant: {                id: merchant.id || null,                name: merchant.name,                url: merchant.url || null,                network: merchant.network || null              },              model: {                id: product.modelId || null,                brand: product.brand || null,                name: product.name,                parent: product.parent || null              }            }          ] : []),          reviews: [],          _clear: true,          "gtm.uniqueEventId": Date.now() % 10000        };        sendEvent({ name: 'hawkEvent', data });      }      function trackDealClick(params) {        trackHawkEvent({ ...params, clickType: "retailer", areaClicked: "Signal Product Card" });      }      function trackViewSimilarClick(params) {        trackHawkEvent({ ...params, clickType: "retailer", areaClicked: "Signal Product Card View Similar" });      }      function trackPriceComparisonClick(params) {        trackHawkEvent({ ...params, clickType: "retailer", areaClicked: "Signal Price Comparison" });      }      function trackReviewClick(params) {        trackHawkEvent({ ...params, clickType: "review", areaClicked: "Signal Product Card Review Link" });      }      function trackShare(params) {        trackHawkEvent({ ...params, clickType: "share", areaClicked: "Signal Product Card Share" });      }      function trackDealsAppeared(widgetId, deals, revenueId, currency, queryName, widgetTypeName) {         if (!deals || deals.length === 0) return;                  const productsArray = deals.slice(0, 50).map((deal) => {            let voucherPct = null;            let rawPrice = parseFloat(deal.rawPrice) || parseFloat(deal.price) || null;            let rawMsrp = parseFloat(deal.rawMsrp) || parseFloat(deal.msrp) || null;            if (rawMsrp > rawPrice && rawPrice > 0) {              voucherPct = Math.round((1 - (rawPrice / rawMsrp)) * 100);            }            let numId = null;            if (deal.externalProductId && !isNaN(parseInt(deal.externalProductId))) {              numId = parseInt(deal.externalProductId);            } else if (deal.id && !isNaN(parseInt(deal.id))) {              numId = parseInt(deal.id);            } else {              numId = deal.matchId || null;            }            return {              product: {                primary: {                  id: numId,                  name: deal.productName || deal.title || "",                  type: "deal",                  price: rawPrice,                  previousPrice: rawMsrp,                  currency: currency || 'USD',                  preorder: false,                  labels: deal.modelBrand || deal.brand ? [                     { type: "brand", value: deal.modelBrand || deal.brand }                  ] : [],                  link: deal.url,                  originalLink: deal.url,                  revenueId: revenueId || null,                  startTime: null,                  endTime: null,                  voucherCode: null,                  voucherAudience: null,                  voucherPercentageSaving: voucherPct,                  voucherMoneySaving: null,                  voucherType: null,                  offerExclusive: false,                  offerScope: null,                  globalId: deal.productKey || null,                  inStock: deal.inStock !== false,                  contractProvider: null,                  contractMinutes: null,                  contractTexts: null,                  contractData: null,                  contractLength: null,                  contractMonthlyPrice: null,                  contractCurrency: currency || 'USD'                }              },              merchant: {                id: deal.merchantId ? parseInt(deal.merchantId) : null,                name: deal.merchant || "Retailer",                url: deal.merchantUrl || null,                network: deal.merchantNetwork || null              },              model: {                id: deal.modelId ? parseInt(deal.modelId) : null,                brand: deal.modelBrand || deal.brand || null,                name: deal.productName || deal.title || "",                parent: deal.modelParent || null              }            };         });                  trackHawkEvent({             clickType: "appeared",             widgetId: widgetId,             productCategoryName: "deals",             zeroBasedProductIndexOrNull: null,             totalDealsOrProducts: deals.length,             productsArray: productsArray,             queryName: queryName,             widgetTypeName: widgetTypeName         });      }      // 1. Setup Shadow DOM Sandbox      const currentScript = document.currentScript;      let hostContainer = null;      let template = null;            if (currentScript) {        let prev = currentScript.previousElementSibling;        while (prev) {          if (prev.tagName === 'TEMPLATE' && prev.classList.contains('tg-df-widget-template')) {            template = prev;          } else if (prev.tagName === 'DIV' && prev.classList.contains('tg-df-widget-host') && !prev.hasAttribute('data-initialized')) {            hostContainer = prev;            break;          }          prev = prev.previousElementSibling;        }      }            // Fallbacks in case script is deferred      if (!hostContainer) {        const hosts = document.querySelectorAll('.tg-df-widget-host:not([data-initialized])');        if (hosts.length > 0) hostContainer = hosts[0];      }            // Safely embedded template for CMS environments      const rawTemplate = `  \x3Cstyle>    /* --- Shadow DOM Base Reset --- */    *, *::before, *::after {      box-sizing: border-box;    }    img, picture, svg, video {      max-width: 100%;      height: auto;      display: block;    }    /*       1. Scoped CSS for Tom's Guide Deals Widget       All classes are prefixed with \`tg-df-\` to prevent CMS style leakage.    */    .tg-df-container {      container-type: inline-size;      container-name: tg-df;      --tg-df-blue: #1F69FF;      --tg-df-blue-hover: #004d8c;      --tg-df-text: #222222;      --tg-df-text-muted: #555555;      --tg-df-bg: #ffffff;      --tg-df-bg-secondary: #f4f4f4;      --tg-df-border: #e2e8f0;      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;      color: var(--tg-df-text);      background-color: transparent;       width: 100%;      max-width: 1200px;      margin: 0 auto;      padding-bottom: 24px;    }    .tg-df-container *, .tg-df-container *::before, .tg-df-container *::after {      margin: 0;      padding: 0;      box-sizing: border-box;    }    .tg-df-container img {      border: none;      margin: 0;      padding: 0;    }    .tg-df-container a {      text-decoration: none;      color: inherit;    }    /*       2. Search & Filter Bar    */    .tg-df-controls {      display: flex;      flex-direction: column;      align-items: center;      gap: 20px;      margin-bottom: 32px;      width: 100%;    }    .tg-df-top-bar {      display: flex;      width: 100%;      max-width: 760px;      gap: 12px;      align-items: center;    }    .tg-df-search-wrapper {      position: relative;      flex: 1;      width: 100%;      box-shadow: 0 8px 24px rgba(0,0,0,0.06);      border-radius: 40px;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      z-index: 100;    }    .tg-df-autocomplete-dropdown {      position: absolute;      top: calc(100% + 4px);      left: 0;      right: 0;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 12px;      box-shadow: 0 8px 32px rgba(0,0,0,0.12);      max-height: 300px;      overflow-y: auto;      z-index: 200;      display: none;    }    .tg-df-autocomplete-dropdown.active {      display: block;    }    .tg-df-autocomplete-item {      padding: 12px 24px;      cursor: pointer;      font-size: 14px;      color: var(--tg-df-text);      transition: background 0.1s ease;    }    .tg-df-autocomplete-item:hover {      background: var(--tg-df-bg-secondary);    }    .tg-df-search-input {      width: 100%;      padding: 16px 64px 16px 24px;      font-size: 16px;      border: 2px solid transparent;      border-radius: 40px;      outline: none;      transition: border-color 0.2s ease, box-shadow 0.2s ease;      color: var(--tg-df-text);      background: transparent;    }    .tg-df-search-input:focus {      border-color: transparent;      box-shadow: 0 0 0 3px rgba(0, 108, 196, 0.15);    }    .tg-df-search-input::placeholder {      color: #999999;    }        .tg-df-search-btn {      position: absolute;      right: 8px;      top: 50%;      transform: translateY(-50%);      width: 40px;      height: 40px;      border-radius: 50%;      background: #222;      border: none;      display: flex;      align-items: center;      justify-content: center;      cursor: pointer;      transition: background 0.2s ease;    }        .tg-df-search-btn:hover {      background: #000;    }    .tg-df-search-icon {      width: 16px;      height: 16px;      fill: #fff;    }    .tg-df-settings-wrapper {      position: relative;    }        .tg-df-settings-btn {      width: 48px;      height: 48px;      border-radius: 50%;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      box-shadow: 0 4px 12px rgba(0,0,0,0.04);      display: flex;      align-items: center;      justify-content: center;      cursor: pointer;      transition: all 0.2s ease;      color: var(--tg-df-text-muted);      flex-shrink: 0;    }    .tg-df-settings-btn:hover {      background: var(--tg-df-bg-secondary);      border-color: #0000ff;      color: var(--tg-df-text);    }    .tg-df-settings-btn svg {      width: 24px;      height: 24px;      fill: currentColor;    }    .tg-df-settings-dropdown {      position: absolute;      top: calc(100% + 8px);      right: 0;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 12px;      box-shadow: 0 8px 32px rgba(0,0,0,0.12);      width: 280px;      padding: 20px;      display: none;      z-index: 100;      flex-direction: column;      gap: 20px;    }    .tg-df-settings-dropdown.active {      display: flex;    }        .tg-df-settings-dropdown-backdrop {      display: none;      position: fixed;      inset: 0;      z-index: 99;    }        .tg-df-settings-dropdown-backdrop.active {      display: block;    }    .tg-df-setting-item {      display: flex;      flex-direction: column;      gap: 10px;    }    .tg-df-setting-label {      font-size: 11px;      font-weight: 700;      color: var(--tg-df-text-muted);      text-transform: uppercase;      letter-spacing: 0.5px;    }        .tg-df-region-select {        padding: 10px 12px;        border-radius: 8px;        border: 1px solid var(--tg-df-border);        font-size: 15px;        outline: none;        background: var(--tg-df-bg-secondary);        color: var(--tg-df-text);        cursor: pointer;        width: 100%;    }    .tg-df-toggle {        position: relative;        display: inline-block;        width: 44px;        height: 24px;        flex-shrink: 0;    }    .tg-df-toggle input {        opacity: 0;        width: 0;        height: 0;    }    .tg-df-slider {        position: absolute;        cursor: pointer;        top: 0; left: 0; right: 0; bottom: 0;        background-color: #ccc;        transition: .2s;        border-radius: 24px;    }    .tg-df-slider:before {        position: absolute;        content: "";        height: 18px;        width: 18px;        left: 3px;        bottom: 3px;        background-color: white;        transition: .2s;        border-radius: 50%;    }    .tg-df-toggle input:checked + .tg-df-slider {        background-color: #1F69FF;    }    .tg-df-toggle input:checked + .tg-df-slider:before {        transform: translateX(20px);    }    .tg-df-dl-row {        flex-direction: row;        align-items: center;        justify-content: space-between;    }    .tg-df-dl-row-text {        font-size: 14px;        font-weight: 600;        color: var(--tg-df-text);    }    .tg-df-dl-row-subtext {        font-size: 12px;        font-weight: 400;        line-height: 1.3;        color: var(--tg-df-text-muted);        margin-top: 4px;        display: block;    }    .tg-df-filters {      display: flex;      gap: 12px;      justify-content: center;      flex-wrap: wrap;    }    .tg-df-sort-wrapper {      position: relative;      display: flex;      align-items: center;    }        .tg-df-sort-icon {      position: absolute;      left: 14px;      width: 14px;      height: 14px;      fill: var(--tg-df-text-muted);      pointer-events: none;    }    .tg-df-sort-select, .tg-df-filter-select {      padding: 10px 36px 10px 38px;      font-size: 14px;      border: 1px solid var(--tg-df-border);      border-radius: 100px;      outline: none;      appearance: none;      background-color: var(--tg-df-bg-secondary);      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 12 12'%3E%3Cpath fill='%23555555' d='M6 8L1 3h10z'/%3E%3C/svg%3E");      background-repeat: no-repeat;      background-position: right 14px center;      color: var(--tg-df-text);      cursor: pointer;      font-weight: 500;      transition: all 0.2s ease;    }        .tg-df-price-input::-webkit-outer-spin-button,    .tg-df-price-input::-webkit-inner-spin-button {      -webkit-appearance: none;      margin: 0;    }    .tg-df-price-input {      -moz-appearance: textfield;    }    .tg-df-sort-select:hover, .tg-df-filter-select:hover {      background-color: #e2e8f0;    }    .tg-df-multiselect-container {      position: relative;    }        .tg-df-multiselect-trigger {      display: block;      background: #fff;      user-select: none;      width: 100%;      overflow: hidden;      white-space: nowrap;      text-overflow: ellipsis;    }        .tg-df-multiselect-dropdown {      display: none;      position: absolute;      top: calc(100% + 4px);      left: 0;      width: 100%;      min-width: 220px;      max-height: 300px;      overflow-y: auto;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 8px;      box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);      z-index: 100;      padding: 8px 0;    }    .tg-df-multiselect-dropdown.active {      display: block;    }    .tg-df-ms-option {      padding: 8px 16px;      display: flex;      align-items: center;      gap: 8px;      cursor: pointer;      font-size: 14px;    }    .tg-df-ms-option:hover {      background-color: var(--tg-df-bg-secondary);    }        .tg-df-ms-option input {      cursor: pointer;      accent-color: #1f69ff;    }    .tg-df-sort-select:focus, .tg-df-filter-select:focus {      border-color: #0000ff;      box-shadow: 0 0 0 3px rgba(0, 0, 255, 0.2);      background-color: var(--tg-df-bg);    }    /*       3. Deal Grid Layout    */    .tg-df-grid.tg-df-grid-auto {      padding-top: 24px;    }    .tg-df-grid, .tg-df-grid.layout-grid {      display: grid;      grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));      gap: 10px;    }    .tg-df-grid.layout-row {      grid-template-columns: 1fr;      gap: 16px;    }        .tg-df-grid.layout-row .tg-df-card {      flex-direction: row;      align-items: stretch;      height: auto;      box-shadow: none;      border-bottom: 1px solid var(--tg-df-border);    }    .tg-df-grid.layout-row .tg-df-card:hover {      box-shadow: none;    }    .tg-df-grid.layout-row .tg-df-card-image-box {      width: 140px;      min-width: 140px;      aspect-ratio: 3/4;      border-right: none;      padding: 16px 16px 16px 32px;    }    .tg-df-grid.layout-row .tg-df-card-body {      padding: 16px;      justify-content: space-between;    }    .tg-df-grid.layout-row .tg-df-card-title {      font-size: 15px;      margin-bottom: 16px;    }    .tg-df-grid.layout-row .tg-df-card-stars { margin-bottom: 8px; }    .tg-df-grid.layout-row .tg-df-card-footer {      flex-direction: column;      align-items: flex-start;      gap: 0;    }    .tg-df-grid.layout-row .tg-df-card-merchant-pill {      margin-bottom: 4px;    }    .tg-df-grid.layout-row .tg-df-card-price-group {      margin-bottom: 8px;    }    .tg-df-grid.layout-row .tg-df-price-group {      width: auto;    }    .tg-df-grid.layout-row .tg-df-card-cta {      width: 100%;      max-width: 200px;      padding: 10px 24px;      font-size: 13px;      flex-shrink: 0;      text-align: center;      justify-content: center;    }    /*       4. Deal Card Design    */    .tg-df-card {      position: relative;      display: flex;      flex-direction: column;      background-color: #ffffff;      border-radius: 0;      overflow: hidden;      transition: transform 0.2s ease, box-shadow 0.2s ease;      text-decoration: none;      color: inherit;      height: 100%;      box-shadow: 0 0 16px rgba(0, 0, 0, 0.08);      border: 1px solid var(--tg-df-border);    }    .tg-df-card:hover {      box-shadow: 0 0 24px rgba(0, 0, 0, 0.12);    }    .tg-df-card-image-box {      width: 100%;      aspect-ratio: 3/4;      background-color: #f8f8f8;      display: flex;      align-items: center;      justify-content: center;      position: relative;      overflow: hidden;      padding: 32px;      flex: 0 0 auto;    }    .tg-df-card-image {      max-width: 100%;      max-height: 100%;      width: auto;      height: auto;      object-fit: contain;      mix-blend-mode: multiply; /* Helps white background images blend into secondary bg */      transition: transform 0.3s ease;    }    .tg-df-card:hover .tg-df-card-image {      transform: scale(1.05); /* Zoom in on hover */    }    .tg-df-card-discount-badge {      position: absolute;      top: 12px;      left: 12px;      background: #dc2626; /* Red */      color: #ffffff;      padding: 6px 8px;      font-size: 11px;      font-weight: 500;      text-transform: uppercase;      letter-spacing: 0.5px;      border-radius: 0;      z-index: 10;    }        .tg-df-card-merchant-pill {      display: block;      padding: 0;      font-size: 11px;      font-weight: 600;      text-transform: uppercase;      letter-spacing: 0.5px;      border-radius: 0;      color: var(--tg-df-text-muted);      margin-bottom: 8px;      white-space: nowrap;      overflow: hidden;      text-overflow: ellipsis;    }    .tg-df-card-body {      padding: 16px;      display: flex;      flex-direction: column;      flex-grow: 1;      min-width: 0;    }    .tg-df-card-badges {      display: flex;      flex-wrap: wrap;      gap: 6px;      margin-bottom: 8px;    }    .tg-df-tag {      display: inline-flex;      align-items: center;      padding: 4px 6px;      font-size: 11px;      font-weight: 700;      text-transform: uppercase;      border-radius: 4px;      gap: 4px;    }    .tg-df-tag-prime {      background-color: #00A8E1;      color: #fff;    }    .tg-df-tag-coupons {      background-color: #f1f5f9;      color: #334155;      border: 1px solid #cbd5e1;      cursor: pointer;      transition: background-color 0.2s;    }    .tg-df-tag-coupons:hover {      background-color: #e2e8f0;    }        .tg-df-tag-outline {      background-color: #f1f5f9;      color: #334155;      border: 1px solid #cbd5e1;      cursor: pointer;      transition: background-color 0.2s;    }    .tg-df-tag-outline:hover {      background-color: #e2e8f0;    }        @keyframes tg-df-spin {      0% { transform: rotate(0deg); }      100% { transform: rotate(360deg); }    }    .tg-df-coupon-spinner {      border: 2px solid #e2e8f0;      border-top: 2px solid #3b82f6;      border-radius: 50%;      width: 14px;      height: 14px;      animation: tg-df-spin 1s linear infinite;      margin: 4px 8px;      display: inline-block;    }        /* Vouchers Modal */    .tg-df-modal-backdrop {      position: fixed;      top: 0; left: 0; right: 0; bottom: 0;      background: rgba(0,0,0,0.5);      z-index: 10000;      display: flex;      align-items: center;      justify-content: center;      opacity: 0;      pointer-events: none;      transition: opacity 0.3s;    }    .tg-df-modal-backdrop.active {      opacity: 1;      pointer-events: auto;    }    .tg-df-modal {      background: #fff;      border-radius: 12px;      width: 90%;      max-width: 400px;      max-height: 80vh;      display: flex;      flex-direction: column;      box-shadow: 0 10px 40px rgba(0,0,0,0.2);      transform: translateY(20px);      transition: transform 0.3s;    }    .tg-df-modal-backdrop.active .tg-df-modal {      transform: translateY(0);    }    .tg-df-modal-header {      padding: 16px;      border-bottom: 1px solid #e2e8f0;      display: flex;      align-items: center;      justify-content: space-between;    }    .tg-df-modal-title {      font-size: 16px;      font-weight: 600;      margin: 0;    }    .tg-df-modal-close {      background: none;      border: none;      cursor: pointer;      padding: 4px;      color: #64748b;    }    .tg-df-modal-body {      padding: 16px;      overflow-y: auto;    }    .tg-df-voucher-item {      padding: 12px;      border: 1px dashed #cbd5e1;      border-radius: 8px;      margin-bottom: 10px;      background: #f8fafc;      display: flex;      align-items: center;      gap: 12px;      text-decoration: none;      color: inherit;      transition: background-color 0.2s, border-color 0.2s;    }    .tg-df-voucher-item:hover {      background: #f1f5f9;      border-color: #94a3b8;    }    .tg-df-voucher-item:last-child {      margin-bottom: 0;    }    .tg-df-voucher-logo {      width: 48px;      height: 48px;      object-fit: contain;      border-radius: 4px;      background: #fff;      border: 1px solid #e2e8f0;      flex-shrink: 0;    }    .tg-df-voucher-content {      flex: 1;      min-width: 0;    }    .tg-df-voucher-title {      font-size: 14px;      font-weight: 600;      margin: 0 0 4px 0;      line-height: 1.3;      color: #0f172a;    }    .tg-df-voucher-expiry {      font-size: 12px;      color: #64748b;      display: flex;      align-items: center;      gap: 4px;      margin-top: 6px;    }    .tg-df-voucher-code {      display: inline-flex;      align-items: center;      background: #f1f5f9;      border: 1px dashed #cbd5e1;      padding: 6px 10px;      font-family: monospace;      font-weight: 700;      font-size: 14px;      color: #0f172a;      border-radius: 4px;      margin-top: 8px;      cursor: pointer;      transition: all 0.2s ease;    }    .tg-df-voucher-code:hover {      background: #e2e8f0;      border-color: #94a3b8;    }    .tg-df-voucher-code.copied {      background: #ecfdf5;      border-color: #10b981;      color: #10b981;    }    .tg-df-voucher-cta {      display: inline-block;      margin-top: 8px;      font-size: 13px;      font-weight: 600;      color: #2563eb;      text-decoration: none;    }    .tg-df-card-title {      font-size: 15px;      font-weight: 400;      line-height: 1.4;      margin: 0 0 12px 0;      color: var(--tg-df-text);      display: -webkit-box;      -webkit-line-clamp: 2;      -webkit-box-orient: vertical;      overflow: hidden;    }    .tg-df-card-footer {      margin-top: auto;      display: flex;      flex-direction: column;      width: 100%;    }    .tg-df-card-price-group {      display: flex;      flex-direction: row;      align-items: center;      gap: 8px;      margin-bottom: 12px;    }    .tg-df-card-price {      font-size: 16px;      font-weight: 700;      color: #dc2626; /* Red price */      line-height: 1;    }        .tg-df-card-msrp {      font-size: 13px;      color: var(--tg-df-text-muted);      text-decoration: line-through;    }    .tg-df-container .tg-df-card-cta {      display: flex;      align-items: center;      justify-content: center;      width: 100%;      box-sizing: border-box;      background-color: #1f69ff;      color: #ffffff;      font-size: 12px;      font-weight: 700;      text-transform: uppercase;      letter-spacing: 0.5px;      padding: 12px 16px;      border-radius: 0;      border: none;      cursor: pointer;      transition: background-color 0.2s ease;    }    .tg-df-card:hover .tg-df-card-cta,    .tg-df-card-cta:hover {      background-color: #1555cc;    }    .tg-df-container .tg-df-card-cta.tg-df-cta-savings-squad {      background-color: #3c8d0d;    }    .tg-df-card:hover .tg-df-card-cta.tg-df-cta-savings-squad,    .tg-df-card-cta.tg-df-cta-savings-squad:hover {      background-color: #2b6509;    }    /*       5. State & Skeleton Styles    */    .tg-df-message {      grid-column: 1 / -1;      text-align: center;      padding: 48px 24px;      color: var(--tg-df-text-muted);      font-size: 16px;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 8px;    }    @keyframes tg-df-shimmer {      0% { background-position: -200% 0; }      100% { background-position: 200% 0; }    }    .tg-df-skeleton {      background: linear-gradient(90deg, var(--tg-df-bg-secondary) 25%, #e2e8f0 50%, var(--tg-df-bg-secondary) 75%);      background-size: 200% 100%;      animation: tg-df-shimmer 1.5s infinite;      border-radius: 4px;    }    .tg-df-skeleton-img {      width: 100%;      height: 100%;      position: absolute;      top: 0; left: 0;    }        .tg-df-skeleton-text {      height: 16px;      margin-bottom: 8px;      width: 100%;    }    .tg-df-skeleton-text.short { width: 40%; }    .tg-df-skeleton-text.title { height: 20px; margin-bottom: 16px; }    /* Editor Floating Bar & Elements */    .tg-df-editor-bar {      position: sticky;      top: 0;      z-index: 1000;      background: #111827;      color: #fff;      padding: 12px 16px;      border-radius: 8px;      margin-bottom: 16px;      display: flex;      align-items: center;      justify-content: space-between;      box-shadow: 0 4px 12px rgba(0,0,0,0.15);    }    .tg-df-editor-bar-text {      font-weight: 600;      font-size: 14px;    }    .tg-df-editor-copy-btn {      background: #10b981;      color: #fff;      padding: 6px 16px;      border: none;      border-radius: 4px;      font-weight: 600;      cursor: pointer;      display: flex;      align-items: center;      font-size: 13px;    }    .tg-df-editor-copy-btn:hover { background: #059669; }        .tg-df-deal-checkbox {      position: absolute;      top: 12px;      right: 12px;      z-index: 10;      width: 20px;      height: 20px;      cursor: pointer;      pointer-events: auto;    }    /*       6. Mobile List View (Stacks into a cleaner horizontal row/list)    */    @container tg-df (max-width: 599px) {      .tg-df-controls {        padding: 0 16px;      }            .tg-df-top-bar {        width: 100%;      }            .tg-df-settings-dropdown {        position: fixed;        top: auto;        bottom: 0;        left: 0;        right: 0;        width: 100%;        border-radius: 20px 20px 0 0;        padding: 24px;        box-shadow: 0 -8px 32px rgba(0,0,0,0.15);        z-index: 1000;        border: none;        border-top: 1px solid var(--tg-df-border);      }            .tg-df-settings-dropdown-backdrop.active {        background: rgba(0,0,0,0.4);      }            .tg-df-search-wrapper {        box-shadow: 0 0 16px rgba(0,0,0,0.08);      }            .tg-df-filters {        width: calc(100% + 32px);        margin: 0 -16px;        padding: 0 16px 4px 16px;        display: flex;        justify-content: flex-start;        gap: 8px;        flex-wrap: nowrap;        overflow-x: auto;        -webkit-overflow-scrolling: touch;        scrollbar-width: none;      }      .tg-df-filters::after {        content: "";        display: block;        flex: 0 0 8px;      }      .tg-df-filters::-webkit-scrollbar {        display: none;      }            .tg-df-sort-wrapper {        flex: 0 0 max(42%, 130px);        min-width: 0;      }      .tg-df-sort-wrapper.tg-df-price-range-wrapper {        flex: 0 0 auto;        min-width: max-content;      }            .tg-df-sort-select, .tg-df-filter-select {        width: 100%;        text-align: left;        padding: 10px 24px 10px 32px;        background-position: right 8px center;        text-overflow: ellipsis;        white-space: nowrap;        overflow: hidden;      }      .tg-df-sort-icon {        left: 10px;      }      .tg-df-grid:not(.layout-grid):not(.layout-row),      .tg-df-grid.layout-row {        grid-template-columns: 1fr;        gap: 16px;      }            .tg-df-grid.tg-df-grid-auto {        padding-top: 24px;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card,      .tg-df-grid.layout-row .tg-df-card {        flex-direction: row;        align-items: stretch;        height: auto;        box-shadow: none; /* simple line on mobile if preferred, or keep */        border-bottom: 1px solid var(--tg-df-border);      }      .tg-df-grid.tg-df-grid-auto .tg-df-card:hover,      .tg-df-grid.layout-row .tg-df-card:hover {        box-shadow: none;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-image-box,      .tg-df-grid.layout-row .tg-df-card-image-box {        width: 120px;        min-width: 120px;        aspect-ratio: 3/4;        border-right: none;        padding: 12px;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-body,      .tg-df-grid.layout-row .tg-df-card-body {        padding: 12px;        justify-content: space-between;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-title,      .tg-df-grid.layout-row .tg-df-card-title {        font-size: 14px;        margin-bottom: 12px;        -webkit-line-clamp: 3;      }      /* Single column mobile grid override */      .tg-df-grid.layout-grid {        grid-template-columns: 1fr;        gap: 16px;      }      .tg-df-grid.layout-grid .tg-df-card-image-box {        padding: 12px;      }      .tg-df-grid.layout-grid .tg-df-card-body {        padding: 10px;      }      .tg-df-grid.layout-grid .tg-df-card-title {        font-size: 13px;        -webkit-line-clamp: 3;        margin-bottom: 8px;      }      .tg-df-grid.layout-grid .tg-df-card-price {        font-size: 14px;      }            .tg-df-card-footer {        flex-direction: column;        align-items: stretch;        gap: 0;        width: 100%;        min-width: 0;      }      .tg-df-card-merchant-pill {        margin-bottom: 4px;      }      .tg-df-card-price-group {        flex: 1 1 auto;        margin-bottom: 8px;      }      .tg-df-card-price {        font-size: 16px;      }      .tg-df-card-msrp {        display: block;       }      .tg-df-grid.layout-row .tg-df-card-cta,      .tg-df-container .tg-df-card-cta {        width: 100%;        max-width: none;        min-width: 0;        box-sizing: border-box;        padding: 8px 16px;        font-size: 12px;        flex: 0 0 auto;        text-align: center;        white-space: normal;        line-height: 1.2;      }    }    .tg-df-container.is-carousel {      min-height: 760px;      background-color: #E7F0FF;      padding: 0 0 24px 0;      border-radius: 24px;    }    .tg-df-container.is-carousel.hide-header-details {      min-height: 480px;    }    /*       7. Carousel View Mode    */    .tg-df-container .tg-df-carousel-host {      /* Layout is now handled by container wrapper */    }    .tg-df-container .tg-df-carousel-eyebrow {      color: #1F69FF;      font-weight: 700;      font-size: 14px;      text-transform: uppercase;      letter-spacing: 1px;      padding: 24px 16px 0 16px;      display: none;    }    .tg-df-container .tg-df-carousel-query-title {      color: #011535;      font-size: 28px;      font-weight: 600;      padding: 0 16px 24px 16px;      line-height: 1.2;      display: none;    }    .tg-df-container .tg-df-carousel-blue-box {      background-color: transparent;      border-radius: 0;      padding: 24px 24px 0 24px;      margin: 0;      color: #1F69FF;          position: relative;      overflow: hidden;    }    .tg-df-container .tg-df-carousel-bg-circle-1 {      display: none;    }    .tg-df-container .tg-df-carousel-bg-circle-2 {      display: none;    }    .tg-df-container .tg-df-carousel-bg-circle-3 {      display: none;    }    .tg-df-container .tg-df-carousel-box-content {      position: relative;      z-index: 10;    }    .tg-df-container .tg-df-carousel-box-eyebrow {      background-color: transparent;      color: #1F69FF;      font-weight: 700;      font-size: 14px;      text-transform: uppercase;      letter-spacing: 1px;      display: inline-block;      padding: 0;      border-radius: 0;    }    .tg-df-container .tg-df-carousel-box-title {      font-size: 28px;      font-weight: 600;      line-height: 1.2;      margin-top: 8px;      color: #1e293b;    }    .tg-df-container .tg-df-countdown-wrapper {      position: absolute;      top: 0;      right: 0;      display: flex;      flex-direction: column;      align-items: flex-end;      gap: 12px;      transform: scale(0.67);      transform-origin: top right;    }    .tg-df-container .tg-df-countdown-title {      font-size: 16px;      text-align: center;      width: 100%;      font-weight: 600;      color: #011535;      margin: 0;    }    .tg-df-container .tg-df-countdown-blocks {      display: flex;      gap: 16px;    }    .tg-df-container .tg-df-countdown-item {      display: flex;      flex-direction: column;      align-items: center;      gap: 4px;    }    .tg-df-container .tg-df-countdown-box {      width: 59px;      height: 59px;      background: #03FE9E;      border-radius: 15px;      display: flex;      align-items: center;      justify-content: center;    }    .tg-df-container .tg-df-countdown-num {      font-family: 'Inter', sans-serif;      font-weight: 700;      font-size: 20px;      line-height: normal;      color: #011535;    }    .tg-df-container .tg-df-countdown-label {      font-family: 'Inter', sans-serif;      font-weight: 500;      font-size: 16px;      line-height: normal;      color: #1e293b;      text-transform: uppercase;    }    .tg-df-container .tg-df-carousel-box-subtitle {      font-size: 16px;      margin-top: 8px;      font-weight: 300;      color: #1e293b;      line-height: 24px;    }    .tg-df-container .tg-df-carousel-roundels-wrapper {      position: relative;      margin-top: 24px;      margin-left: -24px;      margin-right: -24px;    }    .tg-df-container .tg-df-carousel-roundels {      display: flex;      gap: 16px;      overflow-x: auto;            scrollbar-width: none;      padding-top: 12px;      padding-bottom: 24px;      padding-left: 24px;      padding-right: 24px;      margin-left: 0;      margin-right: 0;    }        .tg-df-container .tg-df-carousel-scroll-left,    .tg-df-container .tg-df-carousel-scroll-right {      position: absolute;      top: 50%;      transform: translateY(-50%);      height: 36px;      width: 36px;      display: flex;      align-items: center;      justify-content: center;      border-radius: 50%;      background-color: #ffffff;      border: 1px solid #e2e8f0;      box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);      color: #1F69FF;      cursor: pointer;      transition: all 0.2s;      margin-top: -4px;      z-index: 20;    }    .tg-df-container .tg-df-carousel-scroll-left { left: 8px; }    .tg-df-container .tg-df-carousel-scroll-right { right: 8px; }    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-left { left: 0px; }    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-right { right: 0px; }    .tg-df-carousel-filters-outer { margin-left: -24px; margin-right: -24px; padding-left: 24px; padding-right: 24px; }    @container tg-df (max-width: 599px) { .tg-df-carousel-filters-outer { margin-left: -16px; margin-right: -16px; padding-left: 16px; padding-right: 16px; } }        .tg-df-container .tg-df-carousel-scroll-left:hover,    .tg-df-container .tg-df-carousel-scroll-right:hover {      background-color: #f8fafc;      border-color: #cbd5e1;    }        .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-left,    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-right,    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-left,    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-right {      background-color: rgba(255, 255, 255, 0.4);      border: none;      box-shadow: none;      backdrop-filter: blur(4px);      -webkit-backdrop-filter: blur(4px);    }    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-left { left: 0; }    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-right { right: 0; }    .tg-df-grid-wrapper .tg-df-carousel-scroll-left { left: 0; }    .tg-df-grid-wrapper .tg-df-carousel-scroll-right { right: 0; }        .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-left:hover,    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-right:hover {      background-color: rgba(255, 255, 255, 0.6);      border: none;    }    .tg-df-container .tg-df-carousel-roundels::-webkit-scrollbar {      display: none;    }    .tg-df-container .tg-df-carousel-roundels::after {      content: "";      flex: 0 0 32px;    }    .tg-df-container .tg-df-roundel {      display: flex;      flex-direction: column;      align-items: center;      gap: 8px;      cursor: pointer;      min-width: 120px;      flex-shrink: 0;    }    .tg-df-container .tg-df-roundel-img-box {      width: 120px;      height: 120px;      border-radius: 50%;      background: white;      display: flex;      align-items: center;      justify-content: center;      overflow: hidden;      box-shadow: 0px 3px 14px 0px rgba(30, 41, 59, 0.08);      transition: box-shadow 0.2s;    }    .tg-df-container .tg-df-roundel:hover .tg-df-roundel-img-box {      box-shadow: 0 0 0 2px #E7F0FF, 0 0 0 4px #1F69FF;    }    .tg-df-container .tg-df-roundel.active .tg-df-roundel-img-box {      box-shadow: 0 0 0 2px #E7F0FF, 0 0 0 4px #1F69FF;    }    .tg-df-container .tg-df-roundel:hover .tg-df-roundel-img-box img {      transform: scale(1.08);    }    .tg-df-container .tg-df-roundel-img-box img {      width: 100%;      height: 100%;      object-fit: contain;      padding: 10px;      box-sizing: border-box;      transition: transform 0.3s ease;    }    .tg-df-container .tg-df-roundel-label {      font-size: 13px;      font-weight: 400;      color: #1e293b;      text-align: center;      transition: font-weight 0.2s;    }    .tg-df-container .tg-df-roundel.active .tg-df-roundel-label {      font-weight: 700;    }    .tg-df-container .tg-df-carousel-filters-label {      font-size: 16px;      font-weight: 400;      color: #1e293b;      white-space: nowrap;      margin-right: 4px;    }    .tg-df-container .tg-df-carousel-filters-wrap {      display: flex;      align-items: center;      flex-wrap: nowrap;      gap: 8px;      margin-top: 8px;      overflow-x: auto;      scrollbar-width: none;      -webkit-overflow-scrolling: touch;      padding-bottom: 8px;      margin-left: -24px;      margin-right: -24px;      padding-left: 24px;      padding-right: 24px;    }    .tg-df-container .tg-df-carousel-filters-wrap::-webkit-scrollbar {      display: none;    }        .tg-df-container .tg-df-carousel-filter-btn img,    .tg-df-container .tg-df-carousel-filter-btn picture {      height: 20px;      width: 20px;      object-fit: contain;      object-position: center;      display: inline-flex;      align-items: center;      justify-content: center;      margin-right: 6px;    }    .tg-df-container .tg-df-carousel-filter-btn picture img {      margin-right: 0;      height: 100%;      width: 100%;    }    .tg-df-container .tg-df-carousel-filter-btn img.active-img,    .tg-df-container .tg-df-carousel-filter-btn picture:has(.active-img) {      display: none;    }    .tg-df-container .tg-df-carousel-filter-btn:hover img.inactive-img,    .tg-df-container .tg-df-carousel-filter-btn.active img.inactive-img,    .tg-df-container .tg-df-carousel-filter-btn:hover picture:has(.inactive-img),    .tg-df-container .tg-df-carousel-filter-btn.active picture:has(.inactive-img) {      display: none;    }    .tg-df-container .tg-df-carousel-filter-btn:hover img.active-img,    .tg-df-container .tg-df-carousel-filter-btn.active img.active-img,    .tg-df-container .tg-df-carousel-filter-btn:hover picture:has(.active-img),    .tg-df-container .tg-df-carousel-filter-btn.active picture:has(.active-img) {      display: inline-flex;    }    .tg-df-container .tg-df-carousel-filter-btn {      background: #ffffff;      border: 2px solid #1e293b;      color: #1e293b;      border-radius: 24px;      padding: 6px 16px;      font-size: 14px;      font-weight: 600;      cursor: pointer;      transition: all 0.2s;      flex-shrink: 0;      white-space: nowrap;      display: inline-flex;      align-items: center;      justify-content: center;      min-height: 36px;      box-sizing: border-box;    }    .tg-df-container .tg-df-carousel-filter-btn svg {      margin-right: 6px;    }    .tg-df-container .tg-df-carousel-filter-btn:hover {      background: #1e293b;      color: white;      border-color: #1e293b;    }    .tg-df-container .tg-df-carousel-filter-btn.active {      background: #1e293b;      color: white;      border-color: #1e293b;    }        .tg-df-grid.carousel-compact {      display: flex;      flex-wrap: nowrap;      overflow-x: auto;      gap: 16px;      padding: 16px 24px;      align-items: stretch;      scrollbar-width: none;    }    .tg-df-grid.carousel-compact::after {      content: "";      flex: 0 0 32px;    }    .tg-df-grid-wrapper {      position: relative;    }    .tg-df-grid.carousel-compact::-webkit-scrollbar {      display: none;    }    .tg-df-grid.carousel-compact .tg-df-load-more-card {      flex: 0 0 auto;      width: 100px;      border-radius: 15px;      box-shadow: 0 0 16px rgba(0,0,0,0.08);      border: 2px solid #1e293b;      background: white;      color: #1e293b;      display: flex;      flex-direction: column;      justify-content: center;      align-items: center;      font-weight: 600;      font-size: 14px;      cursor: pointer;      padding: 16px;      text-align: center;      transition: all 0.2s;    }    .tg-df-grid.carousel-compact .tg-df-load-more-card:hover {      background: #1e293b;      color: white;    }    .tg-df-grid.carousel-compact .tg-df-card {      flex: 0 0 auto;      width: 200px;      min-height: auto;      height: auto;      display: flex;      flex-direction: column;      border-radius: 15px;      border: none;      box-shadow: 0 0 16px rgba(0,0,0,0.08);      overflow: visible;    }    .tg-df-grid.carousel-compact .tg-df-card-image-box {      padding: 12px;      background-color: transparent;      border-radius: 15px 15px 0 0;      height: 130px;    }    .tg-df-grid.carousel-compact .tg-df-card-image {      mix-blend-mode: normal;    }    .tg-df-grid.carousel-compact .tg-df-card-discount-badge {      border-radius: 0;      top: 0px;      left: 0px;      padding: 4px 8px;      font-size: 11px;    }    .tg-df-grid.carousel-compact .tg-df-card-body {      padding: 8px 12px 12px 12px;    }    .tg-df-grid.carousel-compact .tg-df-card-title {      font-size: 14px;      font-weight: 400;      -webkit-line-clamp: 2;      margin-bottom: 8px;      color: #011535;    }    .tg-df-grid.carousel-compact .tg-df-card-body:not(:has(.tg-df-card-stars)):not(:has(.tg-df-tag-prime)):not(:has(.tg-df-coupon-wrapper:not([style*="none"]))) > .tg-df-card-title,    .tg-df-grid.carousel-compact .tg-df-card-body:not(:has(.tg-df-card-stars)):has(> .tg-df-card-title:first-child) > .tg-df-card-title {      -webkit-line-clamp: 3;    }    .tg-df-grid.carousel-compact .tg-df-card-cta {      border-radius: 5px;      padding: 8px 10px;      margin-top: 4px;      background-color: #1F69FF;    }    .tg-df-grid.carousel-compact .tg-df-card-price-group {      margin-bottom: 2px;    }    .tg-df-grid.carousel-compact .tg-df-card-merchant-pill {      margin-bottom: 2px;    }    @container tg-df (max-width: 599px) {      .tg-df-container .tg-df-carousel-blue-box-title {        font-size: 24px;      }      .tg-df-container .tg-df-countdown-title {        display: none;      }      .tg-df-container .tg-df-countdown-wrapper {        position: absolute;        top: 0;        right: 0;        align-items: flex-end;        transform: scale(0.45);        transform-origin: top right;      }      .tg-df-container .tg-df-roundel {        min-width: 88px;      }      .tg-df-container .tg-df-roundel-img-box {        width: 88px;        height: 88px;      }    }    /* REPLICA BLOCK STYLES */    .tg-df-grid.layout-replica-2 { grid-template-columns: repeat(2, 1fr) !important; gap: 20px; }    .tg-df-grid.layout-replica-1 { grid-template-columns: 1fr !important; gap: 20px; }        .tg-df-container .hawk-deal-widget-container { border-bottom: 1px solid #e5e7eb; display: flex; flex-direction: column; margin: 0; padding: 20px 0; box-sizing: border-box; font-family: inherit; }    .tg-df-container .hawk-deal-widget-wrap { display: flex; flex-direction: row; align-items: flex-start; width: 100%; gap: 24px; }    .tg-df-container .hawk-deal-widget-image-container { display: flex; flex-shrink: 0; justify-content: center; width: 160px; height: 160px; align-items: center; background: white; margin-bottom: 0px; }    .tg-df-container .hawk-deal-widget-title-product-title { color: #111827; font-size: 18px; font-weight: 700; line-height: 1.4; display: inline; }    .tg-df-container .hawk-deal-widget-title-price { font-size: 18px; font-weight: 700; line-height: 1.4; white-space: nowrap; color: #2563eb; }    .tg-df-container .hawk-deal-widget-title-price-now { font-weight: 700; }    .tg-df-container .hawk-deal-widget-title-retailer-price:hover { text-decoration: underline; }    .tg-df-container .hawk-deal-widget-title-retailer { font-size: 18px; font-weight: 700; line-height: 1.4; color: #2563eb; }    .tg-df-container .hawk-deal-widget-title-was-price { color: #dc2626; font-size: 16px; font-weight: 500; line-height: 1.4; text-decoration: line-through; white-space: nowrap; margin-left: 8px; margin-right: 8px; }    .tg-df-container .hawk-deal-widget-text-body-container { position: relative; width: 100%; box-sizing: border-box; }    .tg-df-container .hawk-deal-widget-text-body-main { font-size: 16px; width: 100%; margin-bottom: 12px; }    .tg-df-container .hawk-deal-widget-text-body-description { display: block; font-size: 15px; margin-top: 12px; color: #4b5563; line-height: 1.6; }    .tg-df-container .hawk-deal-widget-text-body-description p { margin: 0; line-height: 1.6; }    .tg-df-container .hawk-deal-widget-text-cta-container { display: flex; flex-direction: column; gap: 12px; width: 100%; flex: 1; min-width: 0; box-sizing: border-box; }    .tg-df-container .hawk-deal-widget-footer { display: flex; justify-content: flex-end; width: 100%; margin-top: auto; }    .tg-df-container .hawk-deal-widget-button-wrapper { display: flex; flex-direction: column; align-items: flex-end; justify-content: flex-end; width: 100%; }    .tg-df-container .hawk-deal-widget-preferred-partner-wrapper { display: flex; flex-direction: row; }        @container tg-df (min-width: 600px) {      .tg-df-mobile-only { display: none !important; }    }    @container tg-df (max-width: 599px) {      .tg-df-desktop-only { display: none !important; }      .tg-df-grid.layout-replica-2 { grid-template-columns: 1fr !important; }      .tg-df-grid.savings-squad-cards { grid-template-columns: 1fr !important; display: flex; flex-direction: column; }    }    .tg-df-grid.savings-squad-cards .tg-df-card-title {      -webkit-line-clamp: unset !important;      display: block !important;      overflow: visible !important;    }    @container tg-df (max-width: 500px) {      .tg-df-container .hawk-deal-widget-wrap { display: block; }      .tg-df-container .hawk-deal-widget-image-container { display: block; float: left; margin: 0 16px 8px 0; width: 120px; max-width: 120px; height: auto; align-items: normal; justify-content: normal; }      .tg-df-container .hawk-deal-widget-text-cta-container { display: block; text-align: left; }      .tg-df-container .hawk-deal-widget-footer { display: block; margin-top: 16px; clear: both; width: 100%; }      .tg-df-container .hawk-deal-widget-button-wrapper { display: block; width: 100%; }      .tg-df-container .hawk-deal-widget-button-wrapper .hawk-deal-widget-preferred-partner-wrapper { display: block; width: 100%; }      .tg-df-container .hawk-affiliate-link-deal-button { box-sizing: border-box !important; display: flex !important; max-width: none !important; width: 100% !important; margin: 0 !important; }    }        .tg-df-container .hawk-affiliate-link-deal-button {       align-items: center; background-color: #5aaf0b; box-sizing: border-box; color: #ffffff !important; display: flex; font-size: 14px; font-weight: 700; justify-content: center; letter-spacing: 0.5px; line-height: 1; min-width: 160px; padding: 14px 24px; text-align: center; text-decoration: none; text-transform: uppercase; width: 100%; word-break: normal; border-radius: 4px; border: 0; transition: background-color 0.2s;     }    .tg-df-container .hawk-affiliate-link-deal-button:hover { background-color: #4a9109; text-decoration: none; }    .tg-df-container .hawk-lazy-image-deal-widget { display: block; height: auto; margin: auto; max-height: 160px; max-width: 100%; mix-blend-mode: multiply; object-fit: contain; }    .tg-df-container .hawk-deal-widget-text-cta-container a { color: #2563eb; text-decoration: none; display: inline; }    .tg-df-container .hawk-deal-widget-text-cta-container a:hover { text-decoration: underline; }    .tg-df-container .hawk-deal-widget-text-cta-container a:has(.hawk-deal-widget-title-product-title) { color: #111827; }    .tg-df-container .hawk-deal-widget-text-cta-container a:hover .hawk-deal-widget-title-product-title,    .tg-df-container .hawk-deal-widget-text-cta-container a:hover .hawk-deal-widget-title-retailer-price { text-decoration: underline; }  \x3C/style>  \x3C!-- Widget Container --\x3E  \x3Cdiv class="tg-df-container" id="signal-deals-finder-root">    \x3C!-- Editor Floating Bar --\x3E    \x3Cdiv class="tg-df-editor-bar" id="tg-df-editor-bar" style="display:none;">      \x3Cdiv class="tg-df-editor-bar-text" style="display: flex; align-items: center;">        \x3Cspan id="tg-df-selected-count">0\x3C/span>\x26nbsp;Deals Selected        \x3Cbutton class="tg-df-editor-clear-btn" id="tg-df-editor-clear" type="button" style="margin-left: 12px; font-size: 13px; color: #9ca3af; background: none; border: none; cursor: pointer; text-decoration: underline;">Clear All\x3C/button>      \x3C/div>      \x3Cbutton class="tg-df-editor-copy-btn" id="tg-df-editor-copy" type="button">        \x3Csvg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-right: 6px;">\x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2">\x3C/rect>\x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1">\x3C/path>\x3C/svg>        Copy to CMS      \x3C/button>    \x3C/div>    \x3Cdiv class="tg-df-carousel-host" id="tg-df-carousel-host" style="display: none;">      \x3Cdiv class="tg-df-carousel-eyebrow">DEAL FINDER\x3C/div>      \x3Cdiv class="tg-df-carousel-query-title" id="tg-df-carousel-title-label">Best Deals\x3C/div>            \x3Cdiv class="tg-df-carousel-blue-box">        \x3Cdiv class="tg-df-carousel-bg-circle-1" aria-hidden="true">\x26nbsp;\x3C/div>        \x3Cdiv class="tg-df-carousel-bg-circle-2" aria-hidden="true">\x26nbsp;\x3C/div>        \x3Cdiv class="tg-df-carousel-bg-circle-3" aria-hidden="true">\x26nbsp;\x3C/div>        \x3Cdiv class="tg-df-carousel-box-content">          \x3Cdiv class="tg-df-countdown-wrapper" id="tg-df-countdown-wrapper" style="display:none;">            \x3Cdiv class="tg-df-countdown-title" id="tg-df-countdown-title">Prime Day starts in\x3C/div>            \x3Cdiv class="tg-df-countdown-blocks">              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-days">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">DAYS\x3C/div>\x3C/div>              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-hrs">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">HRS\x3C/div>\x3C/div>              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-min">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">MIN\x3C/div>\x3C/div>              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-sec">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">SEC\x3C/div>\x3C/div>            \x3C/div>          \x3C/div>          \x3Cdiv class="tg-df-carousel-box-eyebrow">DEAL FINDER\x3C/div>          \x3Cdiv class="tg-df-carousel-box-title">Find Deals Fast\x3C/div>          \x3Cdiv class="tg-df-carousel-box-subtitle">The latest deals from the biggest retailers, all in one place\x3C/div>                    \x3Cdiv class="tg-df-carousel-roundels-wrapper">          \x3Cbutton class="tg-df-carousel-scroll-left" type="button" aria-label="Scroll left" style="display:none;" onclick="this.parentElement.querySelector('.tg-df-carousel-roundels').scrollBy({left: -200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m15 18-6-6 6-6">\x3C/path>\x3C/svg>\x3C/button>          \x3Cdiv class="tg-df-carousel-roundels">            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>          \x3C/div>          \x3Cbutton class="tg-df-carousel-scroll-right" type="button" aria-label="Scroll right" onclick="this.parentElement.querySelector('.tg-df-carousel-roundels').scrollBy({left: 200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m9 18 6-6-6-6">\x3C/path>\x3C/svg>\x3C/button>        \x3C/div>        \x3Cdiv class="tg-df-carousel-filters-outer" style="position: relative;">          \x3Cbutton class="tg-df-carousel-scroll-left" type="button" aria-label="Scroll left" style="display:none;" onclick="this.parentElement.querySelector('.tg-df-carousel-filters-wrap').scrollBy({left: -200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m15 18-6-6 6-6">\x3C/path>\x3C/svg>\x3C/button>          \x3Cdiv class="tg-df-carousel-filters-wrap">                      \x3Cbutton class="tg-df-carousel-filter-btn" data-d="0">All\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-ot="amazon_lightning">              \x3Cimg src="https://cdn.mos.cms.futurecdn.net/HqAui7w97ft2NPqBtQ5r38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/yWPQ5yyQRhUwVKzGwYbh38-600-100.png" class="active-img" alt="" /> Lightning deals\x3C/button>            \x3Cbutton class="tg-df-carousel-filter-btn" data-ot="amazon_prime">              \x3Cimg src="https://cdn.mos.cms.futurecdn.net/fwoVXvL79turN3Ph535m38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/u75QjVpt3w2EsMimJiRo38-600-100.png" class="active-img" alt="" /> Prime deals\x3C/button>            \x3Cbutton class="tg-df-carousel-filter-btn" data-d="10">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>            Min 10% off\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-d="15">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>            Min 15% off\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-d="25">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>            Min 25% off\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-pr="under50">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-badge-dollar-sign">\x3Cpath d="M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z">\x3C/path>\x3Cpath d="M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8">\x3C/path>\x3Cpath d="M12 18V6">\x3C/path>\x3C/svg>            Under $50\x3C/button>        \x3C/div>        \x3Cbutton class="tg-df-carousel-scroll-right" type="button" aria-label="Scroll right" style="display:none;" onclick="this.parentElement.querySelector('.tg-df-carousel-filters-wrap').scrollBy({left: 200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m9 18 6-6-6-6">\x3C/path>\x3C/svg>\x3C/button>      \x3C/div>    \x3C/div>    \x3C/div>      \x3C!-- Search & Filter Controls --\x3E    \x3Cdiv class="tg-df-controls" id="tg-df-controls" style="display:flex;">      \x3Cdiv class="tg-df-top-bar">        \x3Cdiv class="tg-df-search-wrapper">          \x3Cinput type="text" class="tg-df-search-input" placeholder="Search for deals, products, or brands...">          \x3Cbutton type="button" class="tg-df-search-btn" aria-label="Search">              \x3Csvg class="tg-df-search-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">                \x3Cpath d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/>              \x3C/svg>          \x3C/button>          \x3Cdiv class="tg-df-autocomplete-dropdown" id="tg-df-autocomplete">\x3C/div>        \x3C/div>                \x3Cdiv class="tg-df-settings-wrapper">          \x3Cbutton type="button" class="tg-df-settings-btn" aria-label="Settings" id="tg-df-settings-toggle">            \x3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="20" height="20">                \x3Cpath d="M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.06-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.73 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.06.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .43-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.49-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6z"/>            \x3C/svg>          \x3C/button>          \x3Cdiv class="tg-df-settings-dropdown-backdrop" id="tg-df-settings-backdrop">\x3C/div>          \x3Cdiv class="tg-df-settings-dropdown" id="tg-df-settings-panel">            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Search Region\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-region-select">                \x3Coption value="auto">🌍 Auto-detect\x3C/option>                \x3Coption value="US">🇺🇸 United States (US)\x3C/option>                \x3Coption value="GB">🇬🇧 United Kingdom (UK)\x3C/option>                \x3Coption value="CA">🇨🇦 Canada (CA)\x3C/option>                \x3Coption value="AU">🇦🇺 Australia (AU)\x3C/option>                \x3Coption value="DE">🇩🇪 Germany (DE)\x3C/option>                \x3Coption value="FR">🇫🇷 France (FR)\x3C/option>                \x3Coption value="IT">🇮🇹 Italy (IT)\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Retailer\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-retailer-select">                \x3Coption value="">All Retailers\x3C/option>                \x3Coption value="Amazon">Amazon\x3C/option>                \x3Coption value="Walmart">Walmart\x3C/option>                \x3Coption value="Best Buy">Best Buy\x3C/option>                \x3Coption value="Target">Target\x3C/option>                \x3Coption value="John Lewis">John Lewis\x3C/option>                \x3Coption value="Currys">Currys\x3C/option>                \x3Coption value="Argos">Argos\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Offer Type\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-offer-type-select">                \x3Coption value="">All Offers\x3C/option>                \x3Coption value="amazon_prime">Amazon Prime\x3C/option>                \x3Coption value="recommended_promo">Recommended Promo\x3C/option>                \x3Coption value="amazon_lightning">Amazon Lightning Deal\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Result Count\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-rows-select">                \x3Coption value="3">3 Items\x3C/option>                \x3Coption value="4">4 Items\x3C/option>                \x3Coption value="6">6 Items\x3C/option>                \x3Coption value="12" selected>12 Items\x3C/option>                \x3Coption value="24">24 Items\x3C/option>                \x3Coption value="48">48 Items\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item tg-df-dl-row">              \x3Cdiv>                \x3Cspan class="tg-df-dl-row-text">Deal Mode\x3C/span>                \x3Cspan class="tg-df-dl-row-subtext">Only show products with active offers or previous prices (was_price)\x3C/span>              \x3C/div>              \x3Clabel class="tg-df-toggle">                \x3Cinput type="checkbox" id="tg-df-deal-mode">                \x3Cspan class="tg-df-slider">\x3C/span>              \x3C/label>            \x3C/div>            \x3Cdiv class="tg-df-setting-item tg-df-dl-row">              \x3Cdiv>                \x3Cspan class="tg-df-dl-row-text">Editor Mode\x3C/span>                \x3Cspan class="tg-df-dl-row-subtext">Enable multi-select to copy deals to CMS\x3C/span>              \x3C/div>              \x3Clabel class="tg-df-toggle">                \x3Cinput type="checkbox" id="tg-df-editor-mode">                \x3Cspan class="tg-df-slider">\x3C/span>              \x3C/label>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">View Mode\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-view-mode-select">                \x3Coption value="auto">Auto Collection\x3C/option>                \x3Coption value="carousel">Carousel\x3C/option>                \x3Coption value="savings_squad">Savings Squad\x3C/option>                \x3Coption value="grid">Grid (Columns)\x3C/option>                \x3Coption value="row">Row (List)\x3C/option>              \x3C/select>            \x3C/div>          \x3C/div>        \x3C/div>      \x3C/div>      \x3Cdiv class="tg-df-filters">        \x3Cdiv class="tg-df-sort-wrapper" id="tg-df-category-filter-wrapper" style="display: none;">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z"/>          \x3C/svg>          \x3Cselect class="tg-df-filter-select" id="tg-df-category-filter" aria-label="Category">            \x3Coption value="all">All Categories\x3C/option>          \x3C/select>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper tg-df-multiselect-container" id="tg-df-brand-filter-wrapper" style="display:none;">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M4.25 5.61C6.27 8.2 10 13 10 13v6c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-6s3.72-4.8 5.74-7.39A.998.998 0 0 0 18.95 4H5.04c-.83 0-1.3.95-.79 1.61z"/>          \x3C/svg>          \x3Cdiv class="tg-df-filter-select tg-df-multiselect-trigger" id="tg-df-brand-trigger" tabindex="0">            Any Brand          \x3C/div>          \x3Cdiv class="tg-df-multiselect-dropdown" id="tg-df-brand-dropdown">            \x3C!-- Populated via script --\x3E          \x3C/div>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M9 3L5 6.99h3V14h2V6.99h3L9 3zm7 14.01V10h-2v7.01h-3L15 21l4-3.99h-3z"/>          \x3C/svg>          \x3Cselect class="tg-df-sort-select" aria-label="Sort Deals">            \x3Coption value="date_desc">Newest First\x3C/option>            \x3Coption value="best_match">Sort by: Match\x3C/option>            \x3Coption value="price_asc">Price Low to High\x3C/option>            \x3Coption value="price_desc">Price High to Low\x3C/option>            \x3Coption value="discount_desc">Biggest Discount\x3C/option>          \x3C/select>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper tg-df-price-range-wrapper" id="tg-df-custom-price-wrapper" style="display: flex; align-items:center; justify-content:center; padding: 10px 20px; gap: 8px; border: 1px solid var(--tg-df-border); border-radius: 100px; background-color: var(--tg-df-bg);">          \x3Cspan style="font-size:14px; font-weight:500; color:var(--tg-df-text-primary);">Price\x3C/span>          \x3Cinput type="number" class="tg-df-price-input" id="tg-df-custom-price-min" placeholder="Min" style="width: 48px; background: transparent; border: none; color: var(--tg-df-text-primary); outline: none; font-size: 14px; text-align: center; padding: 0;">          \x3Cspan style="color:var(--tg-df-text-muted)">-\x3C/span>          \x3Cinput type="number" class="tg-df-price-input" id="tg-df-custom-price-max" placeholder="Max" style="width: 48px; background: transparent; border: none; color: var(--tg-df-text-primary); outline: none; font-size: 14px; text-align: center; padding: 0;">        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper" id="tg-df-legacy-price-wrapper">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"/>          \x3C/svg>          \x3Cselect class="tg-df-filter-select" id="tg-df-price-filter" aria-label="Filter Prices">            \x3Coption value="all">All Prices\x3C/option>            \x3Coption value="under50">Under $50\x3C/option>            \x3Coption value="50_100">$50 - $100\x3C/option>            \x3Coption value="100_200">$100 - $200\x3C/option>            \x3Coption value="200_500">$200 - $500\x3C/option>            \x3Coption value="over500">Over $500\x3C/option>          \x3C/select>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper" id="tg-df-discount-filter-wrapper">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">            \x3Cpath d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"/>          \x3C/svg>          \x3Cselect class="tg-df-filter-select" id="tg-df-discount-filter" aria-label="Discount Amount">            \x3Coption value="all">Any discount\x3C/option>            \x3Coption value="5">Min 5%\x3C/option>            \x3Coption value="10">Min 10%\x3C/option>            \x3Coption value="15">Min 15%\x3C/option>            \x3Coption value="20">Min 20%\x3C/option>            \x3Coption value="25">Min 25%\x3C/option>            \x3Coption value="30">Min 30%\x3C/option>            \x3Coption value="40">Min 40%\x3C/option>            \x3Coption value="50">Min 50%\x3C/option>            \x3Coption value="60">Min 60%\x3C/option>            \x3Coption value="70">Min 70%\x3C/option>          \x3C/select>        \x3C/div>      \x3C/div>    \x3C/div>    \x3C!-- Deals Grid Wrapper --\x3E    \x3Cdiv class="tg-df-grid-wrapper tg-df-carousel-cards-wrapper" id="tg-df-grid-wrapper">      \x3Cbutton class="tg-df-carousel-scroll-left" type="button" aria-label="Scroll left" style="display:none;" onclick="this.parentElement.querySelector('#tg-df-grid').scrollBy({left: -200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m15 18-6-6 6-6">\x3C/path>\x3C/svg>\x3C/button>      \x3Cdiv class="tg-df-grid" id="tg-df-grid">        \x3C!-- Content populated by JavaScript --\x3E      \x3C/div>      \x3Cbutton class="tg-df-carousel-scroll-right" type="button" aria-label="Scroll right" style="display:none;" onclick="this.parentElement.querySelector('#tg-df-grid').scrollBy({left: 200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m9 18 6-6-6-6">\x3C/path>\x3C/svg>\x3C/button>    \x3C/div>        \x3C!-- Vouchers Modal --\x3E    \x3Cdiv class="tg-df-modal-backdrop" id="tg-df-vouchers-modal">      \x3Cdiv class="tg-df-modal">        \x3Cdiv class="tg-df-modal-header">          \x3Ch3 class="tg-df-modal-title" id="tg-df-vouchers-title">Available Coupons & Deals\x3C/h3>          \x3Cbutton class="tg-df-modal-close" id="tg-df-vouchers-close">            \x3Csvg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">              \x3Cline x1="18" y1="6" x2="6" y2="18">\x3C/line>              \x3Cline x1="6" y1="6" x2="18" y2="18">\x3C/line>            \x3C/svg>          \x3C/button>        \x3C/div>        \x3Cdiv class="tg-df-modal-body" id="tg-df-vouchers-content">          \x3C!-- Vouchers injected here --\x3E        \x3C/div>      \x3C/div>    \x3C/div>  \x3C/div>`;      if (!template) {        template = document.createElement('template');        template.innerHTML = rawTemplate;      }      let shadowRoot = null;      if (hostContainer && template) {        hostContainer.setAttribute('data-initialized', 'true');        shadowRoot = hostContainer.attachShadow({ mode: 'open' });        shadowRoot.appendChild(template.content.cloneNode(true));      }      class DealsFinderWidget {        constructor(config) {          this.rootNode = config.rootNode || document;          this.hostContainer = config.hostContainer || null;          this.rootId = config.rootId || 'signal-deals-finder-root';          this.root = this.rootNode.querySelector('#' + this.rootId);          if (!this.root) return;          this.widgetId = (window.crypto && window.crypto.randomUUID) ? window.crypto.randomUUID() : 'widget-' + Date.now() + '-' + Math.random().toString(36).slice(2);          this.grid = this.root.querySelector('#tg-df-grid');          this.tagsContainer = this.root.querySelector('#tg-df-tags-container');          this.categoryFilter = this.root.querySelector('#tg-df-category-filter');          this.categoryFilterWrapper = this.root.querySelector('#tg-df-category-filter-wrapper');          this.searchInput = this.root.querySelector('.tg-df-search-input');          this.autocompleteDropdown = this.root.querySelector('#tg-df-autocomplete');          this.sortSelect = this.root.querySelector('.tg-df-sort-select');          this.searchBtn = this.root.querySelector('.tg-df-search-btn');                    this.settingsToggle = this.root.querySelector('#tg-df-settings-toggle');          this.settingsPanel = this.root.querySelector('#tg-df-settings-panel');          this.settingsBackdrop = this.root.querySelector('#tg-df-settings-backdrop');          this.regionSelect = this.root.querySelector('#tg-df-region-select');          this.retailerSelect = this.root.querySelector('#tg-df-retailer-select');          this.offerTypeSelect = this.root.querySelector('#tg-df-offer-type-select');          this.viewModeSelect = this.root.querySelector('#tg-df-view-mode-select');          this.rowsSelect = this.root.querySelector('#tg-df-rows-select');          this.dealModeToggle = this.root.querySelector('#tg-df-deal-mode');          this.editorModeToggle = this.root.querySelector('#tg-df-editor-mode');          this.priceFilter = this.root.querySelector('#tg-df-price-filter');          this.discountFilter = this.root.querySelector('#tg-df-discount-filter');                    this.editorBar = this.root.querySelector('#tg-df-editor-bar');          this.editorSelectedCount = this.root.querySelector('#tg-df-selected-count');          this.editorCopyBtn = this.root.querySelector('#tg-df-editor-copy');          this.editorClearBtn = this.root.querySelector('#tg-df-editor-clear');                    this.apiUrl = 'https://search-api.fie.future.net.uk/widget.php';          this.deals = [];          this.displayLimit = 12;          this.airedaleArticles = null;          this.airedaleTags = [];          this.airedaleTagCounts = {};          this.activeDealTag = null;          this.selectedBrands = [];          this.currentQuery = '';          this.editorMode = this.hostContainer ? this.hostContainer.hasAttribute('data-editor-mode') : false;          this.viewModeOverride = this.hostContainer ? this.hostContainer.getAttribute('data-view-mode') : null;          this.selectedDeals = new Map();                    this.brandFilterWrapper = this.root.querySelector('#tg-df-brand-filter-wrapper');          this.brandTrigger = this.root.querySelector('#tg-df-brand-trigger');          this.brandDropdown = this.root.querySelector('#tg-df-brand-dropdown');                    this.customPriceWrapper = this.root.querySelector('#tg-df-custom-price-wrapper');          this.customPriceMin = this.root.querySelector('#tg-df-custom-price-min');          this.customPriceMax = this.root.querySelector('#tg-df-custom-price-max');          this.legacyPriceWrapper = this.root.querySelector('#tg-df-legacy-price-wrapper');          this.discountFilterWrapper = this.root.querySelector('#tg-df-discount-filter-wrapper');          this.initResizeObserver();          this.init();            if (['carousel', 'carousel-compact', 'auto', 'grid', 'row'].includes(this.getViewMode())) { this.loadCarouselSpreadsheet(); }        }        getViewMode() {          if (this.viewModeOverride && (!this.editorMode || !this.viewModeSelect)) {            return this.viewModeOverride;          }          return (this.viewModeSelect && this.viewModeSelect.value) ? this.viewModeSelect.value : (this.viewModeOverride || 'auto');        }        applyLayoutMode() {          if (!this.grid) return;          const mode = this.getViewMode();          this.grid.classList.remove('layout-row', 'layout-grid', 'tg-df-grid-auto', 'carousel-compact', 'layout-replica-1', 'layout-replica-2');                    const carouselHost = this.root.querySelector('#tg-df-carousel-host');          const controlsDiv = this.root.querySelector('#tg-df-controls');          if (mode === 'carousel' || mode === 'auto' || mode === 'grid' || mode === 'row') {             if (mode === 'carousel') this.grid.classList.add('carousel-compact');             if (carouselHost) carouselHost.style.display = 'block';             if (controlsDiv) controlsDiv.style.display = 'none';             if (this.root.classList.contains('tg-df-container') && mode === 'carousel') {               this.root.classList.add('is-carousel');             } else if (this.root.classList.contains('tg-df-container')) {               this.root.classList.remove('is-carousel');             }          } else {             if (carouselHost) carouselHost.style.display = 'none';             if (controlsDiv) controlsDiv.style.display = 'flex';             if (this.root.classList.contains('tg-df-container')) {               this.root.classList.remove('is-carousel');             }          }          if (mode === 'grid') {            this.grid.classList.add('layout-grid');          } else if (mode === 'row') {            this.grid.classList.add('layout-row');          } else if (mode === 'savings_squad') {            this.grid.classList.add('tg-df-grid-auto', 'savings-squad-cards');          } else if (mode !== 'carousel') {            this.grid.classList.add('tg-df-grid-auto');          }                    const settingsWrapper = this.root.querySelector('.tg-df-settings-wrapper');          if (settingsWrapper) {            settingsWrapper.style.display = mode === 'auto' ? 'none' : 'block';          }          if (this.customPriceWrapper) {             this.customPriceWrapper.style.display = mode === 'auto' ? 'flex' : 'none';          }          if (this.legacyPriceWrapper) {             this.legacyPriceWrapper.style.display = mode === 'auto' ? 'none' : 'flex';          }          if (this.discountFilterWrapper) {             this.discountFilterWrapper.style.display = mode === 'auto' ? 'none' : 'flex';          }        }        initResizeObserver() {          try {            if (window.parent === window) return;          } catch (e) {            // cross origin frame check threw          }          const emitHeight = () => {            try {              const height = document.documentElement.scrollHeight || document.body.scrollHeight;              const msg = { type: 'embed-size', height: height };              if (window.parent && window.parent !== window) {                window.parent.postMessage(msg, '*');                window.parent.postMessage(JSON.stringify({ ...msg, sentinel: 'amp' }), '*');              }            } catch (e) {}          };                    if (window.ResizeObserver) {            try {              const ro = new ResizeObserver(() => emitHeight());              ro.observe(document.body);              if (this.root) ro.observe(this.root);            } catch(e){ console.warn(e); }          }          window.addEventListener('resize', emitHeight);          setTimeout(emitHeight, 300);        }        initCountdown() {          this.cdWrapper = this.root.querySelector('#tg-df-countdown-wrapper');                    let searchSource = window.location.search;          if (this.hostContainer && this.hostContainer.hasAttribute('data-widget-config')) {            searchSource = this.hostContainer.getAttribute('data-widget-config');          } else if (typeof window !== 'undefined' && window.__WIDGET_CONFIG__) {            searchSource = window.__WIDGET_CONFIG__;          }          const params = new URLSearchParams(searchSource);          this.showCountdown = params.get('show_countdown') === 'true';          const showHeaderDetails = params.get('show_header_details') !== 'false';          const eyebrow = this.root.querySelector('.tg-df-carousel-box-eyebrow');          const title = this.root.querySelector('.tg-df-carousel-box-title');          const subtitle = this.root.querySelector('.tg-df-carousel-box-subtitle');          if (!showHeaderDetails) {            let containerElement = this.root.classList.contains('tg-df-container') ? this.root : this.root.querySelector('.tg-df-container');            if (containerElement) containerElement.classList.add('hide-header-details');            if (eyebrow) eyebrow.style.display = 'none';            if (title) title.style.display = 'none';            if (subtitle) subtitle.style.display = 'none';          }          if (!this.cdWrapper) return;          this.cdTitle = this.root.querySelector('#tg-df-countdown-title');          this.cdDays = this.root.querySelector('#tg-df-cd-days');          this.cdHrs = this.root.querySelector('#tg-df-cd-hrs');          this.cdMin = this.root.querySelector('#tg-df-cd-min');          this.cdSec = this.root.querySelector('#tg-df-cd-sec');          this.updateCountdown();          this.cdInterval = setInterval(() => this.updateCountdown(), 1000);        }        updateCountdown() {          if (!this.cdWrapper) return;          if (!this.showCountdown) {            this.cdWrapper.style.display = 'none';            return;          }          const area = this.getAreaCode();          let offset = '-04:00';          if (['DE', 'FR', 'IT', 'ES', 'NL'].includes(area)) {             offset = '+02:00';          } else if (['GB', 'IE', 'UK'].includes(area)) {             offset = '+01:00';          }          const startTime = new Date('2026-06-23T00:00:00' + offset).getTime();          const endTime = new Date('2026-06-26T00:00:00' + offset).getTime();          const now = Date.now();          let targetTime = 0;          if (now < startTime) {             targetTime = startTime;             if (this.cdTitle) this.cdTitle.textContent = 'Prime Day starts in';             this.cdWrapper.style.display = 'flex';          } else if (now < endTime) {             targetTime = endTime;             if (this.cdTitle) this.cdTitle.textContent = 'Prime Day ends in';             this.cdWrapper.style.display = 'flex';          } else {             this.cdWrapper.style.display = 'none';             if (this.cdInterval) clearInterval(this.cdInterval);             return;          }          const diff = Math.max(0, targetTime - now);          const d = Math.floor(diff / (1000 * 60 * 60 * 24));          const h = Math.floor((diff / (1000 * 60 * 60)) % 24);          const m = Math.floor((diff / 1000 / 60) % 60);          const s = Math.floor((diff / 1000) % 60);          if (this.cdDays) this.cdDays.textContent = d;          if (this.cdHrs) this.cdHrs.textContent = h;          if (this.cdMin) this.cdMin.textContent = m;          if (this.cdSec) this.cdSec.textContent = s;        }        init() {          this.initCountdown();          try {            initAnalytics();          } catch (e) {            console.warn('Deals Widget Analytics Error:', e);          }                    this.bindEvents();                    let initialQuery = '';                    let searchSource = window.location.search;          if (this.hostContainer && this.hostContainer.hasAttribute('data-widget-config')) {            searchSource = this.hostContainer.getAttribute('data-widget-config');          } else if (typeof window !== 'undefined' && window.__WIDGET_CONFIG__) {            searchSource = window.__WIDGET_CONFIG__;          }          const params = new URLSearchParams(searchSource);          let initialViewMode = params.get('view_mode');          if (!params.has('search') && !params.has('q') && !params.has('query') && initialViewMode !== 'savings_squad') {             initialQuery = 'Everything';             if (this.discountFilter && !params.has('min_discount_ratio')) {               this.discountFilter.value = '5';             }          }          const website = params.get('website') || 'tomsguide';          this.website = website;          if (website === 'techradar') {            const squadHeader = this.root.querySelector('.tg-df-savings-squad-header');            if (squadHeader) {               const pic = squadHeader.querySelector('picture');               if (pic) pic.style.display = 'none';            }            const style = document.createElement('style');            style.innerHTML = `              .tg-df-container .hawk-affiliate-link-deal-button, .tg-df-container .tg-df-card-cta { background-color: #5DAF08 !important; }              .tg-df-container .hawk-affiliate-link-deal-button:hover, .tg-df-container .tg-df-card-cta:hover { background-color: #4a8c06 !important; }            `;            this.root.appendChild(style);          }                    if (this.regionSelect) {            this.regionSelect.value = params.get('region') || 'auto';            this.updatePriceDropdownCurrency();          }                    if (this.retailerSelect && params.has('retailer')) {            this.retailerSelect.value = params.get('retailer');          }                    if (params.has('brands')) {            const b = params.get('brands');            if (b) {              this.selectedBrands = b.split(',');            }          }                    if (this.offerTypeSelect && params.has('offer_type')) {            this.offerTypeSelect.value = params.get('offer_type');          }          if (params.has('bg_color')) {            const bg = params.get('bg_color');            if (bg === 'white') {              this.root.style.setProperty('background-color', '#ffffff', 'important');            } else if (bg === 'transparent') {              this.root.style.setProperty('background-color', 'transparent', 'important');            } else if (bg === 'light_blue') {              this.root.style.setProperty('background-color', '#E7F0FF', 'important');            }          } else {             this.root.style.removeProperty('background-color');          }                    if (params.has('view_mode')) {            if (this.viewModeSelect) {              this.viewModeSelect.value = params.get('view_mode');            } else {              this.viewModeOverride = params.get('view_mode');            }          }          if (this.rowsSelect && params.has('rows')) {            this.rowsSelect.value = params.get('rows');          }          if (params.has('price')) {            const priceVal = params.get('price');            if (this.priceFilter) {               // Try assigning it directly to select. If it's not present implicitly ignores               this.priceFilter.value = priceVal;            }            if (priceVal.includes('_')) {               const parts = priceVal.split('_');               if (this.customPriceMin && parts[0]) this.customPriceMin.value = parts[0];               if (this.customPriceMax && parts[1]) this.customPriceMax.value = parts[1];            }          }          if (this.discountFilter && params.has('min_discount_ratio')) {            // Need to convert back from ratio (e.g. 0.8) to select value (e.g. "20")            const ratioStr = params.get('min_discount_ratio');            const ratioFloat = parseFloat(ratioStr);            if (!isNaN(ratioFloat)) {               const percentage = Math.round((1 - ratioFloat) * 100);               this.discountFilter.value = percentage.toString();            }          }          if (this.sortSelect) {            this.sortSelect.value = params.get('sort') || 'discount_desc';          }          if (this.dealModeToggle && params.has('deal_mode')) {            this.dealModeToggle.checked = params.get('deal_mode') === 'true' || params.get('deal_mode') === '1';          }                    // Re-apply layout after params have updated control values          this.applyLayoutMode();                    if (params.get('search')) {            initialQuery = params.get('search');          } else if (params.get('q')) {            initialQuery = params.get('q');          } else if (params.get('query')) {            initialQuery = params.get('query');          }                    this.currentQuery = initialQuery;          if (this.searchInput) {            this.searchInput.value = this.currentQuery;          }                    if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {            this.fetchDeals(this.currentQuery);          } else {            this.render();          }        }        updatePriceDropdownCurrency() {          if (!this.priceFilter || !this.regionSelect) return;          const currencySymbols = {            'US': '$',            'GB': '£',            'CA': '$CA',            'AU': '$AU',            'DE': '€',            'FR': '€',            'IT': '€',          };          const area = this.getAreaCode();          const cur = currencySymbols[area || 'US'] || '$';                    const options = this.priceFilter.options;          for (let i = 0; i < options.length; i++) {            const opt = options[i];            if (opt.value === 'all') {              opt.innerText = 'All Prices';            } else if (opt.value === 'under50') {              opt.innerText = `Under ${cur}50`;            } else if (opt.value === '50_100') {              opt.innerText = `${cur}50 - ${cur}100`;            } else if (opt.value === '100_200') {              opt.innerText = `${cur}100 - ${cur}200`;            } else if (opt.value === '200_500') {              opt.innerText = `${cur}200 - ${cur}500`;            } else if (opt.value === 'over500') {              opt.innerText = `Over ${cur}500`;            }          }        }        populateBrandDropdown(values) {          if (!this.brandDropdown || !this.brandFilterWrapper) return;          this.brandFilterWrapper.style.display = 'flex'; // show the wrapper                    let html = '';          const allChecked = this.selectedBrands.length === 0 ? 'checked' : '';          const _div = '<' + '/div>';          const _span = '<' + '/span>';          html += `\x3Cdiv class="tg-df-ms-option">\x3Cinput type="checkbox" value="" ${allChecked} class="tg-df-brand-chk"> Any Brand${_div}`;                    values.forEach(v => {             if (!v.formatted_value || v.formatted_value === 'Any Brand') return;             const isChecked = this.selectedBrands.includes(v.formatted_value) ? 'checked' : '';             html += `\x3Cdiv class="tg-df-ms-option">\x3Cinput type="checkbox" value="${this.escapeHTML(v.formatted_value)}" ${isChecked} class="tg-df-brand-chk"> ${this.escapeHTML(v.formatted_value)} \x3Cspan style="color:var(--tg-df-text-muted);font-size:12px">(${v.count || 0})${_span}${_div}`;          });                    this.brandDropdown.innerHTML = html;                    // Re-bind listeners          const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');          chks.forEach(chk => {            chk.addEventListener('change', (e) => {              const val = e.target.value;              if (val === '') {                this.selectedBrands = [];              } else {                if (e.target.checked) {                   if (!this.selectedBrands.includes(val)) this.selectedBrands.push(val);                } else {                   this.selectedBrands = this.selectedBrands.filter(b => b !== val);                }              }                            if (this.selectedBrands.length === 0) {                 this.brandTrigger.innerText = 'Any Brand';              } else if (this.selectedBrands.length === 1) {                 this.brandTrigger.innerText = this.selectedBrands[0];              } else {                 this.brandTrigger.innerText = `${this.selectedBrands.length} Brands selected`;              }                            // Only call API if changed from UI interactions              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                 this.updateURLParams();                 this.fetchDeals(this.currentQuery);              }            });          });                    // Update button text on load          if (this.selectedBrands.length === 0) {             this.brandTrigger.innerText = 'Any Brand';          } else if (this.selectedBrands.length === 1) {             this.brandTrigger.innerText = this.selectedBrands[0];          } else {             this.brandTrigger.innerText = `${this.selectedBrands.length} Brands selected`;          }        }        updateURLParams() {          const url = new URL(window.location);          if (this.currentQuery && this.currentQuery !== 'Gaming laptops') {            url.searchParams.set('q', this.currentQuery);          } else {            url.searchParams.delete('q');            url.searchParams.delete('search');            url.searchParams.delete('query');          }                    if (this.regionSelect && this.regionSelect.value !== 'auto') {            url.searchParams.set('region', this.regionSelect.value);          } else {            url.searchParams.delete('region');          }                    if (this.retailerSelect && this.retailerSelect.value) {            url.searchParams.set('retailer', this.retailerSelect.value);          } else {            url.searchParams.delete('retailer');          }                    if (this.selectedBrands && this.selectedBrands.length > 0) {            url.searchParams.set('brands', this.selectedBrands.join(','));          } else {            url.searchParams.delete('brands');          }                    if (this.offerTypeSelect && this.offerTypeSelect.value) {            url.searchParams.set('offer_type', this.offerTypeSelect.value);          } else {            url.searchParams.delete('offer_type');          }                    if (this.viewModeSelect && this.viewModeSelect.value !== 'auto') {            url.searchParams.set('view_mode', this.viewModeSelect.value);          } else {            url.searchParams.delete('view_mode');          }                    if (this.rowsSelect && this.rowsSelect.value !== '12') {            url.searchParams.set('rows', this.rowsSelect.value);          } else {            url.searchParams.delete('rows');          }                    const min = this.customPriceMin ? this.customPriceMin.value : '';          const max = this.customPriceMax ? this.customPriceMax.value : '';          if (min || max) {             url.searchParams.set('price', `${min}_${max}`);          } else if (this.priceFilter && this.priceFilter.value !== 'all') {            url.searchParams.set('price', this.priceFilter.value);          } else {            url.searchParams.delete('price');          }                    if (this.discountFilter && this.discountFilter.value !== 'all' && this.discountFilter.value !== '0') {            const v = parseInt(this.discountFilter.value);            if (!isNaN(v) && v > 0) {               const ratio = (100 - v) / 100;               url.searchParams.set('min_discount_ratio', ratio.toString());            }          } else {            url.searchParams.delete('min_discount_ratio');          }                    if (this.sortSelect && this.sortSelect.value !== 'discount_desc') {            url.searchParams.set('sort', this.sortSelect.value);          } else {            url.searchParams.delete('sort');          }                    if (this.dealModeToggle && this.dealModeToggle.checked) {            url.searchParams.set('deal_mode', 'true');          } else {            url.searchParams.delete('deal_mode');          }                    window.history.replaceState({}, '', url);        }        bindEvents() {          const roundels = this.root.querySelectorAll('.tg-df-carousel-cat.original-hardcoded');          roundels.forEach(r => {             r.addEventListener('click', () => {                const q = r.getAttribute('data-query');                const pr = r.getAttribute('data-pr');                if (typeof trackHawkEvent !== 'undefined') {                     trackHawkEvent({                         clickType: "CC",                         widgetId: this.widgetId,                         productCategoryName: "deals",                         zeroBasedProductIndexOrNull: null,                         totalDealsOrProducts: null,                         areaClicked: "Category Roundel",                         revenueId: this.revenueId,                         isoCurrencyCode: typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD',                         queryName: q,                         widgetTypeName: this.widgetTypeName                     });                 }                this.currentQuery = q;                const label = this.root.querySelector('#tg-df-carousel-title-label');                if (label) label.textContent = 'Best ' + q;                if (this.priceFilter) this.priceFilter.value = pr || 'all';                if (this.discountFilter) this.discountFilter.value = '5';                if (this.searchInput) this.searchInput.value = q;                                roundels.forEach(ro => ro.classList.remove('active'));                r.classList.add('active');                this.fetchDeals(this.currentQuery);             });          });          const discBtns = this.root.querySelectorAll('.tg-df-carousel-filter-btn');          discBtns.forEach(b => {             b.addEventListener('click', () => {                const d = b.getAttribute('data-d');                const pr = b.getAttribute('data-pr');                const ot = b.getAttribute('data-ot');                let label = b.innerText ? b.innerText.trim() : '';                let filterType = 'unknown';                let filterVal = 'unknown';                if (d !== null) { filterType = 'discount'; filterVal = d; }                else if (pr !== null) { filterType = 'price'; filterVal = pr; }                else if (ot !== null) { filterType = 'offertype'; filterVal = ot; }                if (typeof trackElementInteraction === 'function') trackElementInteraction({ id: `filter-${filterType}-${filterVal}`, name: 'Filter Button', label: label });                                if (d !== null) {                   if (this.discountFilter) this.discountFilter.value = this.discountFilter.value === d ? '0' : d;                } else if (pr !== null) {                   if (this.priceFilter) this.priceFilter.value = this.priceFilter.value === pr ? 'all' : pr;                } else if (ot !== null) {                   if (this.offerTypeSelect) this.offerTypeSelect.value = this.offerTypeSelect.value === ot ? 'all' : ot;                } else {                   if (this.discountFilter) this.discountFilter.value = '0';                   if (this.priceFilter) this.priceFilter.value = 'all';                   if (this.offerTypeSelect) this.offerTypeSelect.value = 'all';                }                if (d === null && pr === null && ot === null && b.getAttribute("data-type") !== "custom") {                   discBtns.forEach(ro => ro.classList.remove('active'));                   b.classList.add('active');                } else if (b.getAttribute("data-type") !== "custom") {                   // Only operate on hardcoded buttons (those without data-type)                   discBtns.forEach(ro => {                      if (!ro.getAttribute('data-d') && !ro.getAttribute('data-pr') && !ro.getAttribute('data-ot') && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active');                   });                                      let makeActive = true;                   if (d !== null) {                       if (b.classList.contains('active')) makeActive = false;                       discBtns.forEach(ro => { if (ro.getAttribute('data-d') !== null && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active') });                   } else if (pr !== null) {                       if (b.classList.contains('active')) makeActive = false;                       discBtns.forEach(ro => { if (ro.getAttribute('data-pr') !== null && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active') });                   } else if (ot !== null) {                       if (b.classList.contains('active')) makeActive = false;                       discBtns.forEach(ro => { if (ro.getAttribute('data-ot') !== null && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active') });                   }                                      if (makeActive) b.classList.add('active');                                      // Check if anything is active, if not activate "All"                   let anyActive = false;                   discBtns.forEach(ro => { if (ro.classList.contains('active') && ro.getAttribute('data-type') !== 'custom') anyActive = true; });                   if (!anyActive) {                       discBtns.forEach(ro => { if (!ro.getAttribute('data-d') && !ro.getAttribute('data-pr') && !ro.getAttribute('data-ot') && ro.getAttribute('data-type') !== 'custom') ro.classList.add('active'); });                   }                }                                this.fetchDeals(this.currentQuery);             });          });          if (this.brandTrigger && this.brandDropdown) {            this.brandTrigger.addEventListener('click', () => {              this.brandDropdown.classList.toggle('active');            });            document.addEventListener('click', (e) => {              if (this.brandFilterWrapper && !e.composedPath().includes(this.brandFilterWrapper)) {                this.brandDropdown.classList.remove('active');              }            });          }          let debounceTimer;          if(this.searchInput) {            this.searchInput.addEventListener('input', (e) => {              clearTimeout(debounceTimer);              const query = e.target.value.trim();              this.currentQuery = query;              if (this.getViewMode() === 'savings_squad' && this.autocompleteDropdown && this.airedaleTags && query.length > 0) {                 const matches = this.airedaleTags.filter(t => t.toLowerCase().includes(query.toLowerCase()) && t.toLowerCase() !== query.toLowerCase()).slice(0, 5);                 if (matches.length > 0) {                    this.autocompleteDropdown.innerHTML = matches.map(m => `\x3Cdiv class="tg-df-autocomplete-item" data-tag="${this.escapeHTML(m)}">${this.escapeHTML(m)}<` + `/div>`).join('');                    this.autocompleteDropdown.classList.add('active');                 } else {                    this.autocompleteDropdown.classList.remove('active');                 }              } else if (this.autocompleteDropdown) {                 this.autocompleteDropdown.classList.remove('active');              }              debounceTimer = setTimeout(() => {                this.updateURLParams();                if (query.length > 2) {                  this.fetchDeals(query);                } else if (query.length === 0) {                  this.deals = [];                  this.render();                }              }, 400);            });            this.searchInput.addEventListener('keypress', (e) => {              if (e.key === 'Enter') {                if (this.autocompleteDropdown) this.autocompleteDropdown.classList.remove('active');                clearTimeout(debounceTimer);                const query = e.target.value.trim();                this.currentQuery = query;                this.activeDealTag = null;                trackElementInteraction({ id: 'search-submit', name: 'Ask', label: 'Ask (main search)', text: query });                this.updateURLParams();                if (query.length > 2 || (this.getViewMode() === 'savings_squad')) {                   this.fetchDeals(query);                }              }            });          }          if (this.autocompleteDropdown) {             this.autocompleteDropdown.addEventListener('click', (e) => {                const item = e.target.closest('.tg-df-autocomplete-item');                if (item) {                   const tag = item.getAttribute('data-tag');                   this.currentQuery = tag;                   if (this.searchInput) this.searchInput.value = tag;                   this.activeDealTag = tag;                   this.autocompleteDropdown.classList.remove('active');                   this.updateURLParams();                   this.fetchDeals(tag);                }             });             document.addEventListener('click', (e) => {               if (this.autocompleteDropdown && this.searchInput && !e.composedPath().includes(this.searchInput) && !e.composedPath().includes(this.autocompleteDropdown)) {                 this.autocompleteDropdown.classList.remove('active');               }             });          }          if (this.searchBtn) {            this.searchBtn.addEventListener('click', () => {              if (this.autocompleteDropdown) this.autocompleteDropdown.classList.remove('active');              clearTimeout(debounceTimer);              const query = this.searchInput.value.trim();              trackElementInteraction({ id: 'search-submit', name: 'Ask', label: 'Ask (main search)', text: query });              this.activeDealTag = null;              this.currentQuery = query;              this.updateURLParams();              if (query.length > 2 || (this.getViewMode() === 'savings_squad')) {                 this.fetchDeals(query);              }            });          }          if(this.sortSelect) this.sortSelect.addEventListener('change', () => {            trackElementInteraction({ id: `sort-option-${this.sortSelect.value}`, name: 'Sort', label: `Sort: ${this.sortSelect.options[this.sortSelect.selectedIndex].text}` });            this.updateURLParams();            if (this.deals.length > 0) {              this.sortData();              this.render();            }          });                    const priceFilter = this.root.querySelector('#tg-df-price-filter');          if (priceFilter) {            this.priceFilter = priceFilter;            this.priceFilter.addEventListener('change', () => {              trackElementInteraction({ id: `filter-price-${this.priceFilter.value}`, name: 'Price', label: this.priceFilter.options[this.priceFilter.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              } else {                this.render();              }            });          }          const updateCustomPrice = () => {             this.updateURLParams();             if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);             } else {                this.render();             }          };          if (this.customPriceMin) {             this.customPriceMin.addEventListener('change', updateCustomPrice);             this.customPriceMin.addEventListener('keypress', (e) => {                if (e.key === 'Enter') updateCustomPrice();             });          }          if (this.customPriceMax) {             this.customPriceMax.addEventListener('change', updateCustomPrice);             this.customPriceMax.addEventListener('keypress', (e) => {                if (e.key === 'Enter') updateCustomPrice();             });          }          const discountFilter = this.root.querySelector('#tg-df-discount-filter');          if (discountFilter) {            this.discountFilter = discountFilter;            this.discountFilter.addEventListener('change', () => {              trackElementInteraction({ id: `filter-discount-${this.discountFilter.value}`, name: 'Discount', label: this.discountFilter.options[this.discountFilter.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              } else {                this.render();              }            });          }          if (this.categoryFilter) {            this.categoryFilter.addEventListener('change', (e) => {               const val = e.target.value === 'all' ? null : e.target.value;               this.activeDealTag = val;               this.fetchSavingsSquad();            });          }                    if (this.settingsToggle) {            this.settingsToggle.addEventListener('click', () => {              const o = this.settingsPanel.classList.toggle('active');              this.settingsBackdrop.classList.toggle('active');              if (o) trackElementInteraction({ id: 'filter-open', name: 'Filters', label: 'Open filters' });            });          }                    if (this.settingsBackdrop) {            this.settingsBackdrop.addEventListener('click', () => {              this.settingsPanel.classList.remove('active');              this.settingsBackdrop.classList.remove('active');            });          }                    if (this.regionSelect) {            this.regionSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-region-${this.regionSelect.value}`, name: 'Region', label: this.regionSelect.options[this.regionSelect.selectedIndex].text });              this.updateURLParams();              this.updatePriceDropdownCurrency();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.retailerSelect) {            this.retailerSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-merchant-${this.retailerSelect.value}`, name: 'Retailer', label: this.retailerSelect.options[this.retailerSelect.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.offerTypeSelect) {            this.offerTypeSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-offertype-${this.offerTypeSelect.value}`, name: 'Offer Type', label: this.offerTypeSelect.options[this.offerTypeSelect.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.viewModeSelect) {            this._prevViewMode = this.viewModeSelect.value;            this.viewModeSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-viewmode-${this.viewModeSelect.value}`, name: 'View Mode', label: this.viewModeSelect.options[this.viewModeSelect.selectedIndex].text });                            // Reset all active toggles and filters to prevent config carry-over              this.selectedBrands = [];              if (this.brandTrigger) this.brandTrigger.innerText = 'Select Brands';              if (this.brandDropdown) {                const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                chks.forEach(chk => { chk.checked = false; });              }              if (this.priceFilter) this.priceFilter.value = 'all';              if (this.customPriceMin) this.customPriceMin.value = '';              if (this.customPriceMax) this.customPriceMax.value = '';              if (this.sortSelect) this.sortSelect.value = this.viewModeSelect.value === 'savings_squad' ? 'date_desc' : 'discount_desc';              if (this.discountFilter) this.discountFilter.value = '0';              if (this.retailerSelect) this.retailerSelect.value = '';              if (this.offerTypeSelect) this.offerTypeSelect.value = '';              if (this.rowsSelect) this.rowsSelect.value = '12';              if (this.categoryFilter) this.categoryFilter.value = 'all';              this.activeDealTag = null;              this.updateURLParams();              this.applyLayoutMode();                            if (this.getViewMode() === 'savings_squad' || this._prevViewMode === 'savings_squad') {                this.fetchDeals(this.currentQuery);              } else {                this.render();              }              this._prevViewMode = this.viewModeSelect.value;            });          }                    if (this.rowsSelect) {            this.rowsSelect.addEventListener('change', () => {              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.dealModeToggle) {            this.dealModeToggle.addEventListener('change', () => {              this.updateURLParams();              this.render();            });          }          if (this.editorModeToggle) {             this.editorModeToggle.addEventListener('change', (e) => {                this.editorMode = e.target.checked;                this.render();                this.updateFloatingCopyBar();             });          }          if (this.editorCopyBtn) {             this.editorCopyBtn.addEventListener('click', () => {                this.copySelectedDealsToCMS();             });          }          if (this.editorClearBtn) {             this.editorClearBtn.addEventListener('click', () => {                this.selectedDeals.clear();                this.render();                this.updateFloatingCopyBar();             });          }          if (this.grid) {            this.grid.addEventListener('change', (e) => {               if (e.target.classList.contains('tg-df-deal-checkbox')) {                  const dealId = e.target.getAttribute('data-id');                  if (e.target.checked) {                     const dealObj = this.deals.find(d => d.id === dealId);                     if (dealObj) this.selectedDeals.set(dealId, dealObj);                  } else {                     this.selectedDeals.delete(dealId);                  }                  this.updateFloatingCopyBar();               }            });            this.grid.addEventListener('click', (e) => {              const dealCard = e.target.closest('[data-action="deal-click"]');              const similarCard = e.target.closest('[data-action="view-similar-click"]');              const cardLink = dealCard || similarCard;              if (cardLink) {                const productName = cardLink.getAttribute('data-product-name');                const merchantName = cardLink.getAttribute('data-merchant-name');                const productId = cardLink.getAttribute('data-analytics-id');                const price = parseFloat(cardLink.getAttribute('data-price')) || null;                const prevPriceStr = cardLink.getAttribute('data-previous-price');                const previousPrice = prevPriceStr ? parseFloat(prevPriceStr) : null;                const originalLink = cardLink.getAttribute('data-original-link');                const rewrittenLink = cardLink.getAttribute('href');                const revenueId = cardLink.getAttribute('data-revenue-id');                const index = parseInt(cardLink.getAttribute('data-index'), 10) || 0;                const inStock = cardLink.getAttribute('data-in-stock') === 'true';                const totalText = cardLink.getAttribute('data-total');                const totalDeals = parseInt(totalText, 10) || 0;                const productCategoryName = 'deals';                const trackingParams = {                  widgetId: this.widgetId,                  productCategoryName: productCategoryName,                  product: {                    modelId: cardLink.getAttribute('data-model-id') || null,                    matchId: cardLink.getAttribute('data-match-id') || null,                    brand: cardLink.getAttribute('data-model-brand') || null,                    parent: cardLink.getAttribute('data-model-parent') || null,                    name: productName,                    price: price,                    previousPrice: previousPrice,                    link: rewrittenLink,                    originalLink: originalLink,                    inStock: inStock                  },                  zeroBasedProductIndexOrNull: index,                  totalDealsOrProducts: totalDeals,                   merchant: {                    id: cardLink.getAttribute('data-merchant-id') || null,                    network: cardLink.getAttribute('data-merchant-network') || null,                    url: cardLink.getAttribute('data-merchant-url') || null,                    name: merchantName                  },                  revenueId: revenueId,                  widgetTypeName: this.widgetTypeName,                  isoCurrencyCode: normalizeCurrency(this.escapeHTML(cardLink.getAttribute('data-currency') || '$'))                };                if (dealCard) {                  trackDealClick(trackingParams);                } else {                  trackViewSimilarClick(trackingParams);                }              }              const couponsBtn = e.target.closest('[data-action="coupons-click"]');              if (couponsBtn) {                trackElementInteraction({                  id: 'product-card-show-coupons',                  name: 'Coupons',                  label: `Product card coupons: ${couponsBtn.getAttribute('data-merchant')}`                });              }            });          }          this.setupScrollListeners();        }        setupScrollListeners() {          const containers = [             this.root.querySelector('.tg-df-carousel-roundels'),             this.root.querySelector('.tg-df-carousel-filters-wrap'),             this.root.querySelector('#tg-df-grid')          ];                    containers.forEach(container => {             if (!container) return;                          const checkScroll = () => {                if (!container.parentElement) return;                const leftBtn = container.parentElement.querySelector('.tg-df-carousel-scroll-left');                const rightBtn = container.parentElement.querySelector('.tg-df-carousel-scroll-right');                                if (leftBtn) {                   if (container.scrollLeft <= 5) leftBtn.style.display = 'none';                   else leftBtn.style.display = 'flex';                }                                if (rightBtn) {                   if (container.scrollWidth <= container.clientWidth) {                       rightBtn.style.display = 'none';                   } else if (container.scrollLeft >= container.scrollWidth - container.clientWidth - 5) {                       rightBtn.style.display = 'none';                   } else {                       rightBtn.style.display = 'flex';                   }                }             };                          container.addEventListener('scroll', checkScroll);             checkScroll();                          window.addEventListener('resize', checkScroll);                          const observer = new MutationObserver(checkScroll);             observer.observe(container, { childList: true, subtree: true, characterData: false });          });        }        get widgetTypeName() {          const mode = this.viewModeSelect ? this.viewModeSelect.value : (this.viewModeOverride || 'auto');          switch(mode) {              case 'carousel': return 'Carousel';              case 'savings_squad': return 'Savings Squad';              case 'grid': return 'Grid';              case 'row': return 'Row';              default: return 'Auto Collection';          }        }        getRowsLimit() {          if (this.rowsSelect && this.rowsSelect.value) return parseInt(this.rowsSelect.value, 10);          let configSource = window.location.search;          if (this.hostContainer && this.hostContainer.hasAttribute('data-widget-config')) {             configSource = this.hostContainer.getAttribute('data-widget-config');          } else if (typeof window !== 'undefined' && window.__WIDGET_CONFIG__) {             configSource = window.__WIDGET_CONFIG__;          }          const params = new URLSearchParams(configSource);          if (params.has('rows')) return parseInt(params.get('rows'), 10) || 12;          return 12;        }        getAreaCode() {          if (this.regionSelect && this.regionSelect.value) {            if (this.regionSelect.value === 'auto') return null;            return this.regionSelect.value;          }          let area = null;          try {            const locale = window.navigator.language || window.navigator.userLanguage;            if (locale && locale.includes('-')) {              area = locale.split('-')[1].toUpperCase();            } else if (locale && locale.length === 2) {              if (locale.toUpperCase() === 'EN') { area = 'US'; }              else { area = locale.toUpperCase(); }            }          } catch (e) { /* Ignore */ }                    // Map to known valid options or fallback to US          const valid = ['US', 'GB', 'CA', 'AU', 'DE', 'FR', 'IT'];          if (area === 'UK') area = 'GB';          if (valid.includes(area)) {             return area;          }          return 'US';        }                async loadCarouselSpreadsheet() {          try {              const parseCSVRow = (str) => {                  let result = [], cur = '', inQuotes = false;                  for (let i = 0; i < str.length; i++) {                      let char = str[i];                      if (inQuotes) {                          if (char === '"') {                              if (str[i + 1] === '"') { cur += '"'; i++; }                              else { inQuotes = false; }                          } else { cur += char; }                      } else {                          if (char === '"') { inQuotes = true; }                          else if (char === ',') { result.push(cur); cur = ''; }                          else { cur += char; }                      }                  }                  result.push(cur); return result;              };              const parseCSV = (str) => {                  const rows = []; let curRow = '', inQuotes = false;                  for (let i = 0; i < str.length; i++) {                      let char = str[i];                      if (char === '"') inQuotes = !inQuotes;                      if ((char === '\n' || char === '\r') && !inQuotes) {                          if (char === '\r' && str[i+1] === '\n') i++;                          if (curRow) rows.push(parseCSVRow(curRow));                          curRow = '';                      } else { curRow += char; }                  }                  if (curRow) rows.push(parseCSVRow(curRow));                  return rows;              };              const preloadedCSV = decodeURIComponent(escape(atob("LCwxLDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNQ0KUm91bmRlbCB0ZXh0LEFsbCxUVnMsRm9vdHdlYXIsQXBwYXJlbCxNYXR0cmVzZXMsQXBwbGlhbmNlcyxXZWFyYWJsZSB0ZWNoLEhlYWRwaG9uZXMsU21hcnQgSG9tZSxTcGVha2VycyxMYXB0b3BzLFRhYmxldHMsQ29tcHV0aW5nLFBob25lcyxHYW1pbmcsTGVnbw0KUm91bmRlbCBpbWFnZSxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Byb2R1Y3RzL2Nhcm91c2VsL2FpLnBuZyxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Byb2R1Y3RzL2Nhcm91c2VsL3R2cy5wbmcsaHR0cHM6Ly9pbWFnZXMuZmllLmZ1dHVyZWNkbi5uZXQvcHJvZHVjdHMvN2IzYTIyNGIwNzk2M2M2MjdiNmI5MDliZDc4MzM4MzZlMDJmZjgxOS5qcGcud2VicCxodHRwczovL2ltYWdlcy5maWUuZnV0dXJlY2RuLm5ldC9wcm9kdWN0cy84NGRhYzVkNDhlZDJkNDQ4NTU5ZWJhNjdhY2U4MzE0Y2M2N2NjZDk0LmpwZy53ZWJwLGh0dHBzOi8vd3d3LnRvbXNndWlkZS5jb20vcHJvZHVjdHMvY2Fyb3VzZWwvbWF0dHJlc3Nlcy5wbmcsaHR0cHM6Ly9pbWFnZXMuZmllLmZ1dHVyZWNkbi5uZXQvcHJvZHVjdHMvNzY4ZTk3Y2ViMDcxODAxZmFlMjA5MTBkMDgyMGIxNmY3NDdhZjkzOS5qcGcud2VicCxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Byb2R1Y3RzL2Nhcm91c2VsL3dlbGxuZXNzLnBuZyxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Byb2R1Y3RzL2Nhcm91c2VsL2hlYWRwaG9uZXMuanBnLGh0dHBzOi8vaW1hZ2VzLmZpZS5mdXR1cmVjZG4ubmV0L3Byb2R1Y3RzLzg5NTM1YmVlYmUyMGRiYmQ0YTM0NmQ2ZDZiZGZlOTFkOGE4ODRhMjEuanBnLndlYnAsaHR0cHM6Ly93d3cudG9tc2d1aWRlLmNvbS9wcm9kdWN0cy9jYXJvdXNlbC9hdWRpby5qcGcsaHR0cHM6Ly93d3cudG9tc2d1aWRlLmNvbS9wcm9kdWN0cy9jYXJvdXNlbC9sYXB0b3BzLmpwZyxodHRwczovL2ltYWdlcy5maWUuZnV0dXJlY2RuLm5ldC9wcm9kdWN0cy8yMzk3NTY0ZWQ3YTVmZjk0N2U5YjZiMzBlNTRmNDc0OTRiODQxZjg5LmpwZy53ZWJwLGh0dHBzOi8vd3d3LnRvbXNndWlkZS5jb20vcHJvZHVjdHMvY2Fyb3VzZWwvY29tcHV0aW5nLmpwZyxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Byb2R1Y3RzL2Nhcm91c2VsL3Bob25lcy5wbmcsaHR0cHM6Ly93d3cudG9tc2d1aWRlLmNvbS9wcm9kdWN0cy9jYXJvdXNlbC9nYW1pbmcucG5nLGh0dHBzOi8vaW1hZ2VzLmZpZS5mdXR1cmVjZG4ubmV0L3Byb2R1Y3RzLzRmNmM2MjFjYWMwYmMxYTg1ZDU5M2UzNTk0YmE1YjM0OWVmZmQyOTIuanBnLndlYnANClNlYXJjaCBRdWVyeSxFdmVyeXRoaW5nLFRlbGV2aXNpb25zLCJTbmVha2VycywgcnVubmluZyBzaG9lcywgc2FuZGFscyIsQ2xvdGhpbmcsTWF0dHJlc3NlcyxIb21lIEFwcGxpYW5jZXMsV2VhcmFibGVzICYgRml0bmVzcyBUZWNoLEhlYWRwaG9uZXMsSG9tZSBUZWNoLFNwZWFrZXJzLExhcHRvcHMsVGFibGV0cyxDb21wdXRpbmcsUGhvbmVzLEdhbWluZyxDb25zdHJ1Y3Rpb24gVG95cw0KRGlzY291bnQgQW1vdW50LG1pbiA1JSxtaW4gMTAlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUNClByaWNlIFJhbmdlLCwsLCxtaW4gJDQwMCwsLCxtaW4gJDI1LCxtaW4gJDMwMCwsLG1pbiAkMTAwLCwNCkJyYW5kIFNlbGVjdGlvbiwsLCwsLCwsLCwsLCwsLCwNCkZpbHRlciBidXR0b25zLCwsLCwsLCwsLCwsLCwsLA0KMSxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMNCjIsQW1hem9uIGRlYWxzLFVuZGVyICQxMDAwLDUwJSBvZmYsQWRpZGFzLEFtYXpvbiBkZWFscyxBbWF6b24gZGVhbHMsNTAlIG9mZixBbWF6b24gZGVhbHMsQW1hem9uIGRlYWxzLEFtYXpvbiBkZWFscyxBbWF6b24gZGVhbHMsQW1hem9uIGRlYWxzLEFtYXpvbiBkZWFscyxBbWF6b24gZGVhbHMsQW1hem9uIGRlYWxzLEFtYXpvbiBkZWFscw0KMyxPdmVyICQ0MDAsVW5kZXIgJDUwMCxIb2thLE5pa2UsU2FhdHZhLE5pbmphLDQwJSBvZmYsSkxhYiwsSkJMLERlbGwsLEFzdXMsQXBwbGUsQ29uc29sZXMsU3RhciBXYXJzDQo0LFVuZGVyICQxMDAwLDUwJSBvZmYsU2tlY2hlcnMsVW5kZXIgQXJtb3VyLEhlbGl4LFNoYXJrLEdhcm1pbixBbmtlciBTb3VuZGNvcmUsUmluZyxTb25vcyxBcHBsZSxBcHBsZSxUUC1saW5rLFNhbXN1bmcsQWNjZXNzb3JpZXMsVW5kZXIgJDI1DQo1LFVuZGVyICQ1MDAsTEcsQXNpY3MsQ29sdW1iaWEsRHJlYW1DbG91ZCxLZXVyaWcsQXBwbGUsU29ueSxHb3ZlZSxUcmliaXQsTGVub3ZvLFNhbXN1bmcsRWVybyxHb29nbGUsR2FtZXMsVW5kZXIgJDUwDQo2LDUwJSBvZmYsU2Ftc3VuZyxOaWtlLFBhdGFnb25pYSxOZWN0YXIsRGUnTG9uZ2hpLEFtYXpmaXQsQXBwbGUsS2FzYSBzbWFydCxTb255LEFsaWVud2FyZSxUQ0wsTmV0Z2VhcixNb3Rvcm9sYSxOaW50ZW5kbyxCb3RhbmljYWxzDQo3LEFtYXpvbixIaXNlbnNlLE5ldyBCYWxhbmNlLEFyYyd0ZXJ5eCxUZW1wdXItcGVkaWMsRHlzb24sRml0Yml0LEJlYXRzLFBoaWxpcHMgSHVlLEFua2VyLEFjZXIsT25lUGx1cyxEZWxsLE9uZVBsdXMsU29ueSxEaXNuZXkNCjgsQXBwbGUsVENMLEFkaWRhcyxDYXJoYXJ0dCxCZWFyLEJpc3NlbGwsU2Ftc3VuZyxFYXJmdW4sQmxpbmssQmVhdHMsTVNJLE1pY3Jvc29mdCxBY2VyLE5vdGhpbmcsWGJveCxNYXJ2ZWwNCjksLFNvbnksU2F1Y29ueSxUaGUgTm9ydGggRmFjZSxTaWVuYSxOdXRyaWJ1bGxldCxPdXJhLFNhbXN1bmcsR29vZ2xlIE5lc3QgLE1hcnNoYWxsLFNhbXN1bmcsTGVub3ZvLExlbm92bywsLFBva2Vtb24NCjEwLCxSb2t1LEJpcmtlbnN0b2NrLENSWiBZb2dhLFdpbmtCZWRzLEJsYWNrIGFuZCBEZWNrZXIsUmluZ2Nvbm4sQ01GLEV1ZnksU2Ftc3VuZyxNaWNyb3NvZnQsUmVNYXJrYWJsZSxBbGllbndhcmUsLCwNCjExLCwsQnJvb2tzLFRoZSBHeW0gUGVvcGxlLEJyb29rbHluIGJlZGRpbmcsTmVzcHJlc3NvLCwxTW9yZSxBcmxvLCxSYXplciwsQ29yc2FpciwsLA0KMTIsLCxDcm9jcywsRWlnaHQgU2xlZXAsQ3Vpc2luYXJ0LCxKQkwsLCwsLEhQLCwsDQpOb3RlcywsLCwsLCwsLCwsLCwsLCwNCiwsIlByaW9yaXRpc2UgYmlnZ2VzdCAlLyQgZGlzY291bnQsIFR2cyB3aXRoIH41MCUgb2ZmIGhhdmUgYmVlbiB0aGUgbW9zdCBwb3B1bGFyIGV2ZW4gaWYgdGhleSBhcmUgc3RpbGwgZXhwZW5zaXZlIiwiTm8gcGF0dGVybiB0byBwcmljaW5nL2Rpc2NvdW50LCByZWFkZXJzIG1haW5seSBzaG9wIGJ5IGJyYW5kL3JlY29nbmlzYWJsZSBzaG9lcyIsIk5vIHBhdHRlcm4gdG8gcHJpY2luZy9kaXNjb3VudCwgcmVhZGVycyBtYWlubHkgc2hvcCBieSBicmFuZCIsIkEgbGFiZWwgd2lsbCBkZWZpbml0ZWx5IGhlbHAgaGVyZSBlLmcuIGJlc3QgZm9yIHNpZGUgc2xlZXBlciwgYmVzdCBtZW1vcnkgZm9hbSIsIkFwcGxpYW5jZXMgaXMgYSBiaWcgY2F0ZWdvcnksIGlzIGl0IHBvc3NpYmxlIHRvIHNwbGl0IGludG8ga2l0Y2hlbiBhcHBsaWFuY2VzLCBmbG9vcmNhcmUsIGFpciBoZWFsdGgvY29vbGluZz8gT3Igc2ltaWxhciIsIkZvY3VzIG9uIHZhbHVlIGZvciBtb25leSwgR2FybWlucyB3aXRoIH41MCUgb2ZmIGhhdmUgYmVlbiBwb3B1bGFyIGV2ZW4gdGhvdWdoIHRoZXkgYXJlIHN0aWxsICQ1MDAiLCwsLCxJbmNsdWRlIEtpbmRsZXMsSSB3b3VsZCBpbmNsdWRlIHdpZmkgcm91dGVycyBoZXJlIGluc3RlYWQgb2Ygc21hcnQgaG9tZSxDYW4gd2Ugc3VyZmFjZSBwaG9uZSBwcm92aWRlciBkZWFscz8gVC1tb2JpbGUgYW5kIHZlcml6b24gd291bGQgbWFrZSBhIGxvdCBtb3JlIG1vbmV5IHRoYW4gQW1hem9uLCwNCiwsaGF2aW5nIGEgJ2Jlc3QgZm9yJyBsYWJlbCB3b3VsZCBiZSBoZWxwZnVsIGUuZy4gYmVzdCBmb3IgYnJpZ2h0IHJvb20sQ2FuIHdlIHN0b3Aga2lkcyBzaG9lcyBmcm9tIHB1bGxpbmcgdGhyb3VnaD8sIldpbGwgdGhpcyBpbmNsdWRlIGFjY2Vzc29yaWVzIGUuZy4gY2FwcywgYmFncywgaWYgc28gbWFrZSBzdXJlIHRoZXNlIGFyZSBtaXhlZCB0aHJvdWdob3V0IGNsb3RoaW5nIGRlYWxzIixXaWxsIHRoaXMgaW5jbHVkZSB0b3BwZXJzIGFuZCBwaWxsb3dzPyBTZWVpbmcgbW9yZSBtb21lbnR1bSB3aXRoIHRoaXMgY2F0ZWdvcnkgcmVjZW50bHkgc28gYSBiZWRkaW5nIHRhYiBtaWdodCB3b3JrLCwiTmVlZCB0byBtYWtlIHN1cmUgYmFuZHMsIHNjcmVlbiBwcm90ZWN0b3JzIGV0Yy4gZG9uJ3QgcHVsbCBpbnRvIGhlcmUiLCwsLCwsLCwsDQosLCJQcmlvcml0aXNlIDY1JycgYW5kIDU1JyBpbmNoIFRWcywgdGhlbiBiaWdnZXIgc2NyZWVucyBiZWZvcmUgdGhlIHNtYWxsZXIgc2l6ZXMiLCwsUXVlZW4gaXMgdGhlIG1vc3QgcG9wdWxhciBzaXplIGluIHRoZSBVUyAtIHByaW9yaXRpc2UgZGVhbHMgZm9yIHRoaXMgc2l6ZSwsLCwsLCwsLCwsDQosLCwsLCwsLCwsLCwsLCwsDQpDYXRlZ29yaWVzIHRvIGNvbnNpZGVyLCxQcm9kdWN0cyBpbmNsdWRlZCwsLCwsLCwsLCwsLCwsDQpVbmRlciAkNTA/LCxBaXIgdGFncywsLCwsLCwsLCwsLCwsDQosLFBvcnRhYmxlIGNoYXJnZXJzL3dpcmVsZXNzIGNoYXJnZXJzLCwsLCwsLCwsLCwsLCwNCiwsIldhdGVyIGJvdHRsZXMgKHN0YW5sZXlzLCBPd2FsYSwgSHlkcm8gZmxhc2ssIFlldGkpIiwsLCwsLCwsLCwsLCwsDQosLEhhbmQgaGVsZCBmYW5zLCwsLCwsLCwsLCwsLCwNCiwsLCwsLCwsLCwsLCwsLCwNCmhvbWUgb2ZmaWNlLCxvZmZpY2UgY2hhaXJzLCwsLCwsLCwsLCwsLCwNCiwsc3RhbmRpbmcgZGVza3MsLCwsLCwsLCwsLCwsLA0KLCxtb25pdG9ycywsLCwsLCwsLCwsLCwsDQosLEtleWJvYXJkcywsLCwsLCwsLCwsLCwsDQosLGRvY2tpbmcgc3RhdGlvbiwsLCwsLCwsLCwsLCwsDQosLCwsLCwsLCwsLCwsLCwsDQpHYW1pbmcsLENvbnNvbGVzLCwsLCwsLCwsLCwsLCwNCiwsQWNjZXNzb3JpZXMsLCwsLCwsLCwsLCwsLA0KLCxHYW1lcywsLCwsLCwsLCwsLCwsDQosLENvdWxkIGluY2x1ZGUgTGVnbz8sLCwsLCwsLCwsLCwsLA==")));              const text = preloadedCSV;              const parsed = parseCSV(text);                            const rowsByName = {};              let filterStart = -1;              parsed.forEach((rc, i) => {                 if (rc && rc.length > 0 && rc[0]) rowsByName[rc[0]] = rc;                 if (rc && rc.length > 0 && rc[0] === 'Filter buttons') filterStart = i;              });                            const cols = [];              if(rowsByName['Roundel text']) {                const headerRow = rowsByName['Roundel text'];                for(let col = 1; col < headerRow.length; col++) {                   let label = headerRow[col];                   if (!label) continue;                                      let q = rowsByName['Search Query'] && rowsByName['Search Query'][col] ? rowsByName['Search Query'][col] : '';                   let img = rowsByName['Roundel image'] && rowsByName['Roundel image'][col] ? rowsByName['Roundel image'][col] : '';                   let ds = rowsByName['Discount Amount'] && rowsByName['Discount Amount'][col] ? rowsByName['Discount Amount'][col] : '';                   let pr = rowsByName['Price Range'] && rowsByName['Price Range'][col] ? rowsByName['Price Range'][col] : '';                   let rt = rowsByName['Retailer'] && rowsByName['Retailer'][col] ? rowsByName['Retailer'][col] : '';                   let ot = rowsByName['Offer Type'] && rowsByName['Offer Type'][col] ? rowsByName['Offer Type'][col] : '';                                      let filters = [];                   if(filterStart > 0) {                     for(let r = filterStart + 1; r < parsed.length; r++) {                         if(!parsed[r] || parsed[r][0] === 'Notes' || parsed[r][0] === 'Categories to consider') break;                         let f = parsed[r][col];                         if(f) filters.push(f);                     }                   }                   cols.push({ label, img, q, ds, pr, rt, ot, filters });                }              }              this.carouselData = cols;              if (this.carouselData && this.carouselData.length > 0) {                 const isMatched = this.carouselData.some(c => c.q === this.currentQuery || c.label === this.currentQuery);                 if (!isMatched) {                    const first = this.carouselData[0];                    this.currentQuery = first.q || first.label;                    if (this.priceFilter) this.priceFilter.value = 'all';                    if (this.customPriceMin) this.customPriceMin.value = '';                    if (this.customPriceMax) this.customPriceMax.value = '';                    let dPr = first.pr || 'all';                    if (typeof dPr === 'string' && dPr !== 'all') {                       let prLower = dPr.toLowerCase();                       if (prLower.includes('min') || prLower.includes('over')) {                          let m = dPr.match(/(\d+)/);                          if (m && this.customPriceMin) this.customPriceMin.value = m[1];                       } else if (prLower.includes('max') || prLower.includes('under')) {                          let m = dPr.match(/(\d+)/);                          if (m && this.customPriceMax) this.customPriceMax.value = m[1];                       }                    }                    let dAm = '0';                    if(first.ds && typeof first.ds === 'string') {                       let m = first.ds.match(/(\d+)/);                       if(m) dAm = m[1];                    }                    if (this.discountFilter) this.discountFilter.value = dAm;                    if (this.offerTypeSelect) this.offerTypeSelect.value = first.ot || '';                    if (this.retailerSelect) this.retailerSelect.value = first.rt || '';                    this.selectedBrands = [];                    if (this.brandDropdown) {                        const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                        chks.forEach(chk => chk.checked = false);                    }                    if (this.searchInput) this.searchInput.value = this.currentQuery;                 }              }              this.renderCarouselUI();          } catch(e){ console.warn(e); }        }                renderCarouselUI() {           const roundelWrapper = this.root.querySelector('.tg-df-carousel-roundels');           if(!roundelWrapper || !this.carouselData) return;                      let html = '';           this.carouselData.forEach(r => {              const q = r.q || r.label;              const isActive = (this.currentQuery === q || this.currentQuery === r.label) ? 'active' : '';              const imgHtml = r.img ? `\x3Cimg src="${r.img}" alt="${r.label}" />` : `\x3Csvg width="32" height="32" fill="#1F69FF" viewBox="0 0 24 24">\x3Cpath d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/>\x3C/svg>`;              html += `                \x3Cdiv class="tg-df-roundel tg-df-carousel-cat ${isActive}" data-label="${this.escapeHTML(r.label)}">                  \x3Cdiv class="tg-df-roundel-img-box">${imgHtml}\x3C/div>                  \x3Cspan class="tg-df-roundel-label">${this.escapeHTML(r.label)}\x3C/span>                \x3C/div>              `;           });           roundelWrapper.innerHTML = html;                      // Rebind clicks           const roundels = this.root.querySelectorAll('.tg-df-carousel-cat');           roundels.forEach(rNode => {             rNode.addEventListener('click', () => {                const r = this.carouselData.find(c => c.label === rNode.getAttribute('data-label'));                 if(!r) return;                                  if (typeof trackHawkEvent !== 'undefined') {                     trackHawkEvent({                         clickType: "CC",                         widgetId: this.widgetId,                         productCategoryName: "deals",                         zeroBasedProductIndexOrNull: null,                         totalDealsOrProducts: null,                         areaClicked: "Category Roundel",                         revenueId: this.revenueId,                         isoCurrencyCode: typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD',                         queryName: r.label,                         widgetTypeName: this.widgetTypeName                     });                 }                this.currentQuery = r.q || r.label;                const labelTitle = this.root.querySelector('#tg-df-carousel-title-label');                if (labelTitle) labelTitle.textContent = 'Best ' + this.currentQuery;                if (this.priceFilter) this.priceFilter.value = 'all';                if (this.customPriceMin) this.customPriceMin.value = '';                if (this.customPriceMax) this.customPriceMax.value = '';                let dPr = r.pr || 'all';                if (typeof dPr === 'string' && dPr !== 'all') {                   let prLower = dPr.toLowerCase();                   if (prLower.includes('min') || prLower.includes('over')) {                      let m = dPr.match(/(\d+)/);                      if (m && this.customPriceMin) this.customPriceMin.value = m[1];                   } else if (prLower.includes('max') || prLower.includes('under')) {                      let m = dPr.match(/(\d+)/);                      if (m && this.customPriceMax) this.customPriceMax.value = m[1];                   }                }                                let discountAmount = '0';                if(r.ds && typeof r.ds === 'string') {                   let m = r.ds.match(/(\d+)/);                   if(m) discountAmount = m[1];                }                if (this.discountFilter) this.discountFilter.value = discountAmount;                if (this.offerTypeSelect) this.offerTypeSelect.value = r.ot || '';                if (this.retailerSelect) this.retailerSelect.value = r.rt || '';                                // Clear brands                    this.selectedBrands = [];                    if (this.brandDropdown) {                    const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                    chks.forEach(chk => chk.checked = false);                }                                if (this.searchInput) this.searchInput.value = this.currentQuery;                                roundels.forEach(ro => ro.classList.remove('active'));                if (rNode) rNode.classList.add('active');                                this.renderCarouselFilters(r);                this.fetchDeals(this.currentQuery);             });           });                      // Auto-highlight active           const activeR = this.carouselData.find(c => c.q === this.currentQuery || c.label === this.currentQuery);           if(activeR) this.renderCarouselFilters(activeR);        }                renderCarouselFilters(r) {           const filtersWrap = this.root.querySelector('.tg-df-carousel-filters-wrap');           if(!filtersWrap) return;                      let html = `\x3Cbutton class="tg-df-carousel-filter-btn" data-type="all">All\x3C/button>`;                      r.filters.forEach(f => {              let fL = f.toLowerCase();              let icon = '';              let logic = `data-type="custom" data-v="${this.escapeHTML(f)}"`;              if (fL === 'amazon deals' || fL === 'prime deals') {                 html += `\x3Cbutton class="tg-df-carousel-filter-btn" ${logic}>\x3Cimg src="https://cdn.mos.cms.futurecdn.net/fwoVXvL79turN3Ph535m38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/u75QjVpt3w2EsMimJiRo38-600-100.png" class="active-img" alt="" /> Prime deals\x3C/button>`;              } else if (fL === 'lightning deals') {                 html += `\x3Cbutton class="tg-df-carousel-filter-btn" ${logic}>\x3Cimg src="https://cdn.mos.cms.futurecdn.net/HqAui7w97ft2NPqBtQ5r38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/yWPQ5yyQRhUwVKzGwYbh38-600-100.png" class="active-img" alt="" /> Lightning deals\x3C/button>`;              } else {                 if (fL.includes('lightning')) {                    icon = `\x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-zap">\x3Cpolygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2">\x3C/polygon>\x3C/svg>`;                 } else if (fL.includes('% off')) {                    icon = `\x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>`;                 } else if (fL.includes('under') || fL.includes('min ')) {                    icon = `\x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-badge-dollar-sign">\x3Cpath d="M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z">\x3C/path>\x3Cpath d="M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8">\x3C/path>\x3Cpath d="M12 18V6">\x3C/path>\x3C/svg>`;                 }                 html += `\x3Cbutton class="tg-df-carousel-filter-btn" ${logic}>${icon} ${this.escapeHTML(f)}\x3C/button>`;              }           });                      filtersWrap.innerHTML = html;                      const btns = filtersWrap.querySelectorAll('button');           btns.forEach(b => {             b.addEventListener('click', () => {                const type = b.getAttribute('data-type');                if (type === 'custom') {                   const v = b.getAttribute('data-v');                   if (typeof trackElementInteraction === 'function') trackElementInteraction({ id: `filter-custom-${(v||'').toLowerCase().replace(/[^a-z0-9]+/g, '-')}`, name: 'Custom Filter', label: v });                }                if (type === 'all') {                   if (typeof trackElementInteraction === 'function') trackElementInteraction({ id: 'filter-clear-all', name: 'Clear all', label: 'Clear all filters' });                   // reset everything                   btns.forEach(btn => btn.classList.remove('active'));                   b.classList.add('active');                                      // Reset prices                   if (this.priceFilter) this.priceFilter.value = 'all';                   if (this.customPriceMin) this.customPriceMin.value = '';                   if (this.customPriceMax) this.customPriceMax.value = '';                   let dPr = r.pr || 'all';                   if (typeof dPr === 'string' && dPr !== 'all') {                      let prLower = dPr.toLowerCase();                      if (prLower.includes('min') || prLower.includes('over')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMin) this.customPriceMin.value = m[1];                      } else if (prLower.includes('max') || prLower.includes('under')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMax) this.customPriceMax.value = m[1];                      }                   }                                      let discountAmount = '0';                   if(r.ds && typeof r.ds === 'string') {                      let m = r.ds.match(/(\d+)/);                      if(m) discountAmount = m[1];                   }                   if (this.discountFilter) this.discountFilter.value = discountAmount;                   if (this.offerTypeSelect) this.offerTypeSelect.value = r.ot || '';                   if (this.retailerSelect) this.retailerSelect.value = r.rt || '';                   this.selectedBrands = [];                   if (this.brandDropdown) {                     const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                     chks.forEach(chk => chk.checked = false);                   }                } else {                   const v = b.getAttribute('data-v');                   const fL = v.toLowerCase();                                      let mapRet = ['amazon', 'walmart', 'best buy', 'target', 'john lewis', 'currys', 'argos'];                   const getCategory = (s) => {                      if (s === 'lightning deals' || s === 'amazon deals' || s === 'prime deals') return 'offer';                      if (s.includes('% off')) return 'discount';                      if (s.includes('under') || s.includes('over') || s.includes('min') || s.includes('max')) return 'price';                      if (mapRet.includes(s)) return 'retailer';                      return 'brand';                   };                   const cat = getCategory(fL);                   const wasActive = b.classList.contains('active');                   if (cat !== 'brand') {                      btns.forEach(btn => {                          if (btn === b) return;                          if (btn.getAttribute('data-type') === 'all') return;                          const bV = btn.getAttribute('data-v');                          if (!bV) return;                          if (getCategory(bV.toLowerCase()) === cat) btn.classList.remove('active');                      });                   }                   if (wasActive) b.classList.remove('active');                   else b.classList.add('active');                   let anyActive = Array.from(btns).some(btn => btn !== btns[0] && btn.classList.contains('active'));                   if (!anyActive) {                       btns[0].click();                       return;                   } else {                       btns[0].classList.remove('active');                   }                                      if (this.priceFilter) this.priceFilter.value = 'all';                   if (this.customPriceMin) this.customPriceMin.value = '';                   if (this.customPriceMax) this.customPriceMax.value = '';                   let dPr = r.pr || 'all';                   if (typeof dPr === 'string' && dPr !== 'all') {                      let prLower = dPr.toLowerCase();                      if (prLower.includes('min') || prLower.includes('over')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMin) this.customPriceMin.value = m[1];                      } else if (prLower.includes('max') || prLower.includes('under')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMax) this.customPriceMax.value = m[1];                      }                   }                                      let discountAmount = '0';                   if(r.ds && typeof r.ds === 'string') {                      let m = r.ds.match(/(\d+)/);                      if(m) discountAmount = m[1];                   }                   if (this.discountFilter) this.discountFilter.value = discountAmount;                   if (this.offerTypeSelect) this.offerTypeSelect.value = r.ot || '';                   if (this.retailerSelect) this.retailerSelect.value = r.rt || '';                   this.selectedBrands = [];                   btns.forEach(btn => {                       if (!btn.classList.contains('active') || btn.getAttribute('data-type') === 'all') return;                       const vv = btn.getAttribute('data-v');                       const vl = vv.toLowerCase();                                              if (vl === 'lightning deals') {                          if (this.offerTypeSelect) this.offerTypeSelect.value = 'amazon_lightning';                       } else if (vl === 'amazon deals' || vl === 'prime deals') {                          if (this.offerTypeSelect) this.offerTypeSelect.value = 'amazon_prime';                       } else if (vl.includes('% off')) {                          let m = vl.match(/(\d+)%/);                          if (m && this.discountFilter) this.discountFilter.value = m[1];                       } else if (vl.includes('under') || vl.includes('max')) {                          let m = vl.match(/(\d+)/);                          if (m && this.customPriceMax) this.customPriceMax.value = m[1];                       } else if (vl.includes('min') || vl.includes('over')) {                          let m = vl.match(/(\d+)/);                          if (m && this.customPriceMin) this.customPriceMin.value = m[1];                       } else {                          let foundR = mapRet.find(x => x === vl);                          if (foundR) {                             let realR = ['Amazon', 'Walmart', 'Best Buy', 'Target', 'John Lewis', 'Currys', 'Argos'].find(x => x.toLowerCase() === vl);                             if (this.retailerSelect) this.retailerSelect.value = realR;                          } else {                             this.selectedBrands.push(vv);                          }                       }                   });                                      if (this.brandDropdown) {                       const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                       chks.forEach(c => c.checked = this.selectedBrands.includes(c.value));                   }                                      if (r.pr && typeof r.pr === 'string') {                       let prL = r.pr.toLowerCase();                       if (prL.includes('under $')) {                           let m = prL.match(/under \$(\d+)/i);                           if (m && this.customPriceMax && !this.customPriceMax.value) this.customPriceMax.value = m[1];                       }                   }                }                                this.fetchDeals(this.currentQuery);             });           });                      // default to highlighting first           btns[0].classList.add('active');        }async fetchDeals(query, append = false) {          if (!append) {             this.showLoading();             this.deals = [];             this.displayLimit = this.getRowsLimit();          } else {             this.displayLimit += this.getRowsLimit();          }                    try {            if (this.getViewMode() === 'savings_squad') {               await this.fetchSavingsSquad(append);            } else {               if (this.isBroadQuery(query)) {                 await this.fetchAdviserDeals(query, append);               } else {                 await this.fetchHawkDeals(query, append);                 if (this.deals.length === 0) {                   await this.fetchAdviserDeals(query, append);                 }               }            }          } catch (error) {            console.warn("[Tom's Guide Widget] Fetch error:", error);            this.showError();          }        }        async fetchSavingsSquad() {          let topArticles = this.airedaleArticles;          if (!topArticles) {            const airedaleUrl = `https://airedale.futurecdn.net/feeds/feed_1776420579726.json?site=tomsguide&articleType=deals&limit=50`;            let res;            try {               res = await fetch(airedaleUrl);            } catch(e) {               try { res = await fetch(`https://airedale.futurecdn.net/feeds/feed_1776420579726.json?site=tomsguide&articleType=deals&limit=50`); } catch (err) { console.warn("Fallback fetch failed", err); return; }            }            if (!res.ok) throw new Error('Airedale API Error');            const articles = await res.json();            topArticles = Array.isArray(articles) ? articles.slice(0, 50) : ((articles.data && Array.isArray(articles.data)) ? articles.data.slice(0, 50) : []);            this.airedaleArticles = topArticles;                        let tagCounts = {};            topArticles.forEach((a) => {              let articleTags = new Set();              if (a.articlecategory && Array.isArray(a.articlecategory)) {                 a.articlecategory.forEach((t) => articleTags.add(t));              }              articleTags.forEach(t => {                 tagCounts[t] = (tagCounts[t] || 0) + 1;              });            });                        this.airedaleTags = Object.keys(tagCounts).sort((a, b) => tagCounts[b] - tagCounts[a]);            this.airedaleTagCounts = tagCounts;          }                    let targetArticles = topArticles;          if (this.activeDealTag) {             const cleanTag = this.activeDealTag.toLowerCase().replace(/&/g, '').replace(/[^a-z0-9]+/g, '-').replace(/-+/g, '-').replace(/^-|-$/g, '');             const encodedTag = encodeURIComponent(cleanTag);             const url = `https://airedale.futurecdn.net/feeds/feed_1776420579726.json?site=tomsguide&articleType=deals&limit=50&articleCategoryHandle=${encodedTag}`;             try {                const res = await fetch(url);                if (res.ok) {                   const articles = await res.json();                   targetArticles = Array.isArray(articles) ? articles.slice(0, 50) : ((articles.data && Array.isArray(articles.data)) ? articles.data.slice(0, 50) : []);                }             } catch(e) {                console.warn("Failed to fetch by activeDealTag", e);             }          }          let extractedDeals = [];          let dynamicBrandsCounts = {};                    targetArticles.forEach((article) => {             if (!article.articlepage) return;                          let pageData = [];             try {                pageData = JSON.parse(article.articlepage[0]);             } catch(e){ console.warn(e); }                          const savingsSquad = pageData.filter((p) => p.type === 'deal' || p.type === 'featured-product');                          savingsSquad.forEach((block, idx) => {                const data = block.data || {};                const isFeatured = block.type === 'featured-product';                                const link = data.link || {};                const priceObj = data.price || {};                const image = data.image || {};                                if (data.brand) {                   data.brand = data.brand.replace(/^\d+\.\s*/, '').trim();                   dynamicBrandsCounts[data.brand] = (dynamicBrandsCounts[data.brand] || 0) + 1;                }                const externalUrl = isFeatured ? data.url : (link.href || null);                let summaryTitle = isFeatured ? (data.name || data.brand) : (data.productName || link.label || article.articlename);                let description = isFeatured ? (data.strapline || '') : (data.text || '');                                if (!isFeatured && !data.productName && data.text) {                   const brSplit = data.text.split(new RegExp('\x3Cbr\\s*\\/?\\x3E', 'i'));                   if (brSplit.length > 1) {                     summaryTitle = brSplit[0].replace(/<[^>]+>/g, '').trim();                     description = brSplit.slice(1).join(' ').replace(/<br\s*\/?>/gi, ' ').replace(/<\/?(p|div)[^>]*>/gi, ' ').replace(/<[^>]+>/g, '').replace(/\s+/g, ' ').trim();                   } else {                     const match = data.text.match(/\x3Cstrong>(.*?)<\/strong>/);                     if (match) {                       summaryTitle = match[1].replace(/<[^>]+>/g, '').trim();                       if (summaryTitle.endsWith(':')) summaryTitle = summaryTitle.slice(0, -1);                     }                   }                }                                let imageUrl = isFeatured ? image.mos : (image.src || null);                if (imageUrl && imageUrl.startsWith('//')) imageUrl = 'https:' + imageUrl;                                description = description.replace(/<br\s*\/?>/gi, ' ').replace(/<\/?(p|div)[^>]*>/gi, ' ').replace(/<[^>]+>/g, '').replace(/\s+/g, ' ').replace(/View Deal$/i, '').trim();                                let merchantName = data.retailer || '';                if (!merchantName && externalUrl) {                   try {                     merchantName = new URL(externalUrl).hostname.replace('www.', '').split('.')[0];                     merchantName = merchantName.charAt(0).toUpperCase() + merchantName.slice(1);                   }catch(e){ console.warn(e); }                }                if (!merchantName) merchantName = 'Retailer';                const q = (this.currentQuery || '').toLowerCase();                const activeTagLogic = (this.activeDealTag || '').toLowerCase();                if (q.length > 2 && q !== activeTagLogic) {                   const searchTarget = `${summaryTitle || ''} ${description || ''}`.toLowerCase();                   if (!searchTarget.includes(q)) return;                }                let rawPrice = 0;                let rawMsrp = 0;                let currencyStr = '$';                if (isFeatured) {                   rawPrice = typeof data.salePrice === 'number' && data.salePrice > 0 ? data.salePrice : (typeof data.price === 'number' ? data.price : 0);                   rawMsrp = typeof data.salePrice === 'number' && typeof data.price === 'number' && data.price > data.salePrice ? data.price : 0;                   currencyStr = data.currency === 'GBP' ? '£' : '$';                } else {                   rawPrice = priceObj.amount ? parseFloat(priceObj.amount) : 0;                   rawMsrp = priceObj.amountWas ? parseFloat(priceObj.amountWas) : 0;                   currencyStr = priceObj.currency === 'GBP' ? '£' : '$';                }                                let savingAmt = 0;                let savingLabel = '';                if (rawPrice > 0 && rawMsrp > rawPrice) {                   savingAmt = parseFloat((rawMsrp - rawPrice).toFixed(2));                   savingLabel = `Save ${currencyStr}${savingAmt}`;                }                                // Apply Brand filter                if (this.selectedBrands && this.selectedBrands.length > 0) {                   const itemBrand = (data.brand || '').toLowerCase();                   const hasMatch = this.selectedBrands.some(sb => sb.toLowerCase() === itemBrand);                   if (!hasMatch) return;                }                // Apply Price filter                let priceFilterVal = null;                const min = this.customPriceMin ? this.customPriceMin.value : '';                const max = this.customPriceMax ? this.customPriceMax.value : '';                if (min || max) {                   priceFilterVal = `${min}_${max}`;                } else if (this.priceFilter && this.priceFilter.value !== 'all') {                   priceFilterVal = this.priceFilter.value;                }                if (priceFilterVal && rawPrice > 0) {                   if (priceFilterVal === 'under50' && rawPrice >= 50) return;                   if (priceFilterVal === 'over50' && rawPrice <= 50) return;                   if (priceFilterVal === 'over30' && rawPrice <= 30) return;                   if (priceFilterVal === 'over500' && rawPrice <= 500) return;                   if (priceFilterVal.includes('_')) {                      const parts = priceFilterVal.split('_');                      const min = parseFloat(parts[0]);                      const max = parseFloat(parts[1]);                      if (!isNaN(min) && rawPrice < min) return;                      if (!isNaN(max) && rawPrice > max) return;                   }                }                // Apply Discount filter                if (this.discountFilter && this.discountFilter.value !== 'all' && this.discountFilter.value !== '0') {                   const requiredDiscount = parseInt(this.discountFilter.value);                   if (!isNaN(requiredDiscount) && requiredDiscount > 0) {                      if (!rawMsrp || rawMsrp <= rawPrice) return;                      const ratio = Math.round((1 - (rawPrice / rawMsrp)) * 100);                      if (ratio < requiredDiscount) return;                   }                }                                extractedDeals.push({                   id: `airedale-${article.id || Math.random()}-${idx}`,                   url: externalUrl,                   image: imageUrl,                   fallbackImage: imageUrl,                   title: summaryTitle,                   brand: data.brand || '',                   productName: data.productName || '',                   merchant: merchantName,                   rawPrice: rawPrice,                   rawMsrp: rawMsrp,                   price: rawPrice > 0 ? rawPrice.toString() : '',                   msrp: rawMsrp > 0 ? rawMsrp.toString() : '',                   currency: currencyStr,                   isCheckPrice: !rawPrice,                   savingLabel: savingLabel,                   savingType: rawMsrp > rawPrice ? 'amount' : 'none',                   isPrime: false,                   starRating: null,                   description: description,                   text: data.text || ''                });             });          });                    const airedaleBrandsList = Object.keys(dynamicBrandsCounts).map(b => ({              formatted_value: b,              count: dynamicBrandsCounts[b]          })).sort((a,b) => b.count - a.count);                    if (this.getViewMode() === 'savings_squad') {             this.populateBrandDropdown(airedaleBrandsList.slice(0, 15));             if (this.brandFilterWrapper) {                if (airedaleBrandsList.length === 0) {                    this.brandFilterWrapper.style.display = 'none';                } else {                    this.brandFilterWrapper.style.display = 'flex';                }             }          }                    this.deals = extractedDeals;          this.sortData();          this.render();          if (typeof trackDealsAppeared !== 'undefined') {             trackDealsAppeared(this.widgetId, this.deals, this.revenueId, typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD', this.currentQuery, this.widgetTypeName);          }        }        isBroadQuery(query) {          const q = query.toLowerCase();          const intentModifiers = ['deals', 'best', 'sale', 'under', 'cheap', 'offers', 'discount'];          return intentModifiers.some(term => q.includes(term));        }        async fetchHawkDeals(query, append = false) {          const url = new URL(this.apiUrl);          url.searchParams.append('model_name', query);          const areaCode = this.getAreaCode();          if (areaCode) {            url.searchParams.append('area', areaCode);          }                    if (append && this.deals.length > 0) {            url.searchParams.append('offset', this.deals.length.toString());          }                    if (this.retailerSelect && this.retailerSelect.value) {            url.searchParams.append('filter_merchant_name', this.retailerSelect.value);          }                    if (this.selectedBrands && this.selectedBrands.length > 0) {            url.searchParams.append('filter_label[text_brand]', this.selectedBrands.join(','));          }                    let priceVal = null;          const min = this.customPriceMin ? this.customPriceMin.value : '';          const max = this.customPriceMax ? this.customPriceMax.value : '';          if (min || max) {             priceVal = `${min}_${max}`;          } else if (this.priceFilter && this.priceFilter.value !== 'all') {             priceVal = this.priceFilter.value;          }          if (priceVal) {            if (priceVal === 'under50') {              url.searchParams.append('filter_max_price', '50');            } else if (priceVal === 'over50') {              url.searchParams.append('filter_min_price', '50');            } else if (priceVal === 'over30') {              url.searchParams.append('filter_min_price', '30');            } else if (priceVal === 'over500') {              url.searchParams.append('filter_min_price', '500');            } else if (priceVal.includes('_')) {              const parts = priceVal.split('_');              if (parts[0]) url.searchParams.append('filter_min_price', parts[0]);              if (parts[1]) url.searchParams.append('filter_max_price', parts[1]);            }          }                    if (this.discountFilter && this.discountFilter.value !== 'all' && this.discountFilter.value !== '0') {            const v = parseInt(this.discountFilter.value);            if (!isNaN(v) && v > 0) {              const ratio = (100 - v) / 100;              url.searchParams.append('min_discount_ratio', ratio.toString());            }          }                    if (this.offerTypeSelect && this.offerTypeSelect.value) {            url.searchParams.append('offer', this.offerTypeSelect.value);          }                    url.searchParams.append('filter_product_types', 'deals');                    url.searchParams.append('rows', this.getRowsLimit().toString());          let response;          try {             response = await fetch(url.toString());          } catch(e) {             if (window.location.protocol === 'file:') {                console.warn("[Tom's Guide Widget] fetch from file:// blocked by local CORS policy, falling back to Adviser mock.");                await this.fetchAdviserDeals(query);                return;             }             console.warn("Hawk fetch failed", e);             this.deals = [];             this.render();             return;          }          if (!response.ok) {            throw new Error('Hawk API Response Error');          }          const rawData = await response.json();          // Safely locate data array from potentially wrapped response          let offers = [];          let modelInfoArray = [];                    let brandFilterData = null;          if (rawData && rawData.widget && rawData.widget.data && Array.isArray(rawData.widget.data.filters)) {             brandFilterData = rawData.widget.data.filters.find(f => f.type === 'label_text_brand');          } else if (rawData && rawData.data && Array.isArray(rawData.data.filters)) {             brandFilterData = rawData.data.filters.find(f => f.type === 'label_text_brand');          }          if (brandFilterData && Array.isArray(brandFilterData.values) && brandFilterData.values.length > 0) {             this.populateBrandDropdown(brandFilterData.values);          } else {             if (this.brandFilterWrapper && this.selectedBrands.length === 0) {                this.brandFilterWrapper.style.display = 'none';             }          }                    if (rawData && rawData.widget && rawData.widget.data) {            if (Array.isArray(rawData.widget.data.offers)) offers = rawData.widget.data.offers;            if (rawData.widget.data.model_info && typeof rawData.widget.data.model_info === 'object') {              modelInfoArray = Array.isArray(rawData.widget.data.model_info) ? rawData.widget.data.model_info : Object.values(rawData.widget.data.model_info);            }          } else if (rawData && rawData.data) {            if (Array.isArray(rawData.data.offers)) offers = rawData.data.offers;            if (rawData.data.model_info && typeof rawData.data.model_info === 'object') {              modelInfoArray = Array.isArray(rawData.data.model_info) ? rawData.data.model_info : Object.values(rawData.data.model_info);            }          } else {            if (Array.isArray(rawData)) offers = rawData;            else if (rawData && Array.isArray(rawData.offers)) offers = rawData.offers;            else if (rawData && rawData.offers && Array.isArray(rawData.offers.offer)) offers = rawData.offers.offer;            else if (rawData && rawData.offers) offers = [].concat(rawData.offers);                        if (rawData && rawData.model_info && typeof rawData.model_info === 'object') {              modelInfoArray = Array.isArray(rawData.model_info) ? rawData.model_info : Object.values(rawData.model_info);            }          }          let modelDetails = {};          modelInfoArray.forEach(m => {            const mId = m.model_id || m.id;            if (mId) {              modelDetails[mId] = {                score: m.score != null ? parseFloat(m.score) : null,                brand: m.brand || null,                parent: (m.parents && Array.isArray(m.parents) && m.parents.length > 0) ? m.parents[0].name : null              };            }          });          offers.forEach(item => {            let data = { ...item };            const mId = data.model_id;            if (mId && modelDetails[mId]) {              data.review_score = modelDetails[mId].score;              data.model_brand = modelDetails[mId].brand;              data.model_parent = modelDetails[mId].parent;            } else {              data.review_score = null;            }                        let itemOffers = [];            if (Array.isArray(item.offers)) itemOffers = item.offers;            else if (Array.isArray(item.offer)) itemOffers = item.offer;            else if (item.offers && typeof item.offers === 'object') itemOffers = [item.offers];            else if (item.offer && typeof item.offer === 'object') itemOffers = [item.offer];            if (itemOffers.length > 0) {              itemOffers.forEach(subItem => {                let subData = { ...item, ...subItem };                const subId = subData.model_id;                if (subId && modelDetails[subId]) {                  subData.review_score = modelDetails[subId].score;                  subData.model_brand = modelDetails[subId].brand;                  subData.model_parent = modelDetails[subId].parent;                } else if (data.review_score != null) {                  subData.review_score = data.review_score;                }                if (subData.merchant && typeof subData.merchant === 'object') {                  subData.merchant_name = subData.merchant.name;                }                this.deals.push(this.extractDealData(subData));              });              return;            }                        if (item.merchant && typeof item.merchant === 'object') {              data.merchant_name = item.merchant.name;            }                        this.deals.push(this.extractDealData(data));          });                    this.sortData();          this.render();          if (typeof trackDealsAppeared !== 'undefined') {             trackDealsAppeared(this.widgetId, this.deals, this.revenueId, typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD', this.currentQuery, this.widgetTypeName);          }        }        async fetchAdviserDeals(query) {          // ======================================================================          // TODO: ADVISER API REPLACEMENT          // The code below simulates the Adviser API response using mock data.          // Once the real endpoint is ready, remove getAdviserMockData() and           // perform an actual fetch() request similar to fetchHawkDeals().          // Example:          // const area = this.getAreaCode();          // let apiUrl = `https://your-adviser-api.com/search?q=${query}&area=${area}`;          // if (this.priceFilter && this.priceFilter.value !== 'all') {          //   const val = this.priceFilter.value;          //   if (val === 'under50') apiUrl += '&filter_max_price=50';          //   else if (val === '50_100') apiUrl += '&filter_max_price=100';          //   else if (val === '100_200') apiUrl += '&filter_max_price=200';          //   else if (val === '200_500') apiUrl += '&filter_max_price=500';          // }          // const res = await fetch(apiUrl);          // const rawData = await res.json();          // ======================================================================          // Simulating network latency          await new Promise(resolve => setTimeout(resolve, 400));                    const rawData = this.getAdviserMockData();          let offers = [];                    if (rawData && rawData.data && rawData.data.Get && Array.isArray(rawData.data.Get.Deal)) {            offers = rawData.data.Get.Deal;          }                    // Basic client-side filtering for the mock if we want it to react to the query          const q = query.toLowerCase();          const selectedRetailer = (this.retailerSelect && this.retailerSelect.value) ? this.retailerSelect.value.toLowerCase() : null;                    offers.forEach(item => {            const dataObj = item;                        // Apply retailer filter            const itemRetailer = (dataObj.dataRetailer || '').toLowerCase();            if (selectedRetailer && itemRetailer !== selectedRetailer && !itemRetailer.includes(selectedRetailer)) {              return;            }                        // Apply mock price filter            let price = dataObj.dataDiscountedPrice || 0;            if (typeof price === 'string') {              price = parseFloat(price.replace(/[^0-9.]/g, ''));            }            let priceVal = null;            const min = this.customPriceMin ? this.customPriceMin.value : '';            const max = this.customPriceMax ? this.customPriceMax.value : '';            if (min || max) {               priceVal = `${min}_${max}`;            } else if (this.priceFilter && this.priceFilter.value !== 'all') {               priceVal = this.priceFilter.value;            }            if (priceVal) {              if (priceVal === 'under50' && price >= 50) return;              if (priceVal === 'over50' && price <= 50) return;              if (priceVal === 'over30' && price <= 30) return;              if (priceVal === 'over500' && price <= 500) return;              if (priceVal.includes('_')) {                 const parts = priceVal.split('_');                 if (parts[0] && price < parseFloat(parts[0])) return;                 if (parts[1] && price > parseFloat(parts[1])) return;              }            }                        // Map Adviser schema to our widget's expected schema            const mappedData = {              url: dataObj.linkHREF || dataObj.dataLink || '#',              image: dataObj.imageURL || (dataObj.image && dataObj.image.src) || '',              title: dataObj.dataProduct || (dataObj.product && dataObj.product.name) || 'Product Deal',              merchant: dataObj.dataRetailer || 'Retailer',              price: dataObj.dataDiscountedPrice || 0,              currency: dataObj.dataCurrency === 'USD' ? '$' : (dataObj.dataCurrency || '$'),              msrp: dataObj.dataOriginalPrice || null            };                        const titleLow = mappedData.title.toLowerCase();            const merchLow = mappedData.merchant.toLowerCase();                        // Smarter mock filtering            let isMatch = false;            if (q === '' || this.isBroadQuery(q)) {              isMatch = true;            } else if (titleLow.includes(q) || merchLow.includes(q)) {              isMatch = true;            } else if ((q.includes('laptop') || q.includes('mac') || q.includes('pc')) && (titleLow.includes('macbook') || titleLow.includes('laptop'))) {              isMatch = true;            } else if ((q.includes('tv') || q.includes('television')) && (titleLow.includes('tv') || titleLow.includes('oled') || titleLow.includes('qled'))) {              isMatch = true;            } else if ((q.includes('phone') || q.includes('smartphone')) && (titleLow.includes('galaxy') || titleLow.includes('phone'))) {              isMatch = true;            } else if ((q.match(/watch|fitness|run|shoe/)) && (titleLow.includes('forerunner') || titleLow.includes('saucony') || titleLow.includes('watch'))) {              isMatch = true;            }                        if (isMatch) {               this.deals.push(this.extractDealData(mappedData));            }          });                    let rowLimit = this.getRowsLimit();          // Intentionally omitting the slice here to allow "Load More" to work if the API returns more                    this.sortData();          this.render();          if (typeof trackDealsAppeared !== 'undefined') {             trackDealsAppeared(this.widgetId, this.deals, this.revenueId, typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD', this.currentQuery, this.widgetTypeName);          }        }        getAdviserMockData() {          return {            "data": {              "Get": {                "Deal": [                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 300,                    "dataOriginalPrice": 399,                    "dataProduct": "Samsung Galaxy A36",                    "dataRetailer": "Samsung",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/MqDYsukV3JBG54te6dEs7j.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 14,                    "dataOriginalPrice": 24,                    "dataProduct": "Blink Mini",                    "dataRetailer": "Amazon",                    "imageURL": "http://cdn.mos.cms.futurecdn.net/3JurmAjHsDa5tPdaHAwEV8.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 59,                    "dataOriginalPrice": 99,                    "dataProduct": "Ring Video Doorbell",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/rAh4uR7AsAsALCCLTXnLNJ.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 10,                    "dataOriginalPrice": 599,                    "dataProduct": "MacBook Neo",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/Lg4Dvg68j9SbB5CPNrTEpH.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 749,                    "dataOriginalPrice": 849,                    "dataProduct": "65\\\" Fire TV Omni 4K QLED TV",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/SG34ZWodUkLTxJvMTbjPYR.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 71,                    "dataOriginalPrice": 160,                    "dataProduct": "Saucony Hurricane 24",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/vxf7UD5T2Am7guVzFoFcZ4.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 649,                    "dataOriginalPrice": 749,                    "dataProduct": "Garmin Forerunner 970",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/3GKnEu7CdhtxPMfnPCMCiA.png"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 1049,                    "dataOriginalPrice": 1499,                    "dataProduct": "LG 48\\\" C4 4K OLED TV",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/imvwZV9zoMD6fn9Afuge35.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 1499,                    "dataOriginalPrice": 2199,                    "dataProduct": "Samsung 49\\\" Odyssey Neo G9 4K Gaming Monitor",                    "dataRetailer": "Amazon",                    "imageURL": "http://cdn.mos.cms.futurecdn.net/XWDEJ5dUAE2nhK8k3Jk7k7.png"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 299,                    "dataOriginalPrice": 699,                    "dataProduct": "EGOHOME Black Memory Foam Mattress (queen)",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/hMUemtAejNETLVYxNrktzm.jpg"                  }                ]              }            }          };        }        decodeHTML(html) {          if (!html) return '';          const txt = document.createElement("textarea");          txt.innerHTML = String(html);          return txt.value;        }        extractDealData(item) {          const priceRawStr = String(item.price || item.current_price || '0');          const msrpRawStr = String(item.was_price || item.msrp || item.original_price || '0');          const rawPrice = parseFloat(priceRawStr.replace(/[^\d.]/g, '')) || 0;          const rawMsrp = parseFloat(msrpRawStr.replace(/[^\d.]/g, '')) || 0;          const isCheckPrice = rawPrice === 0 || priceRawStr === '0.00' || priceRawStr === '0';                    let originalImageUrl = item.image || item.image_url || item.product_image || '';          let imageUrl = originalImageUrl;          if ((!imageUrl || isCheckPrice) && item.model_image_url) {             imageUrl = item.model_image_url;             originalImageUrl = imageUrl;          } else if ((!imageUrl || isCheckPrice) && item.model_image) {             imageUrl = item.model_image;             originalImageUrl = imageUrl;          }                    if (imageUrl) {            imageUrl = imageUrl.replace(/-(\d+)-(\d+)(\.[a-z.]+)$/i, '$3');          }                    let fallbackImage = '';          if (originalImageUrl && originalImageUrl !== imageUrl) {             fallbackImage = originalImageUrl;          } else if (item.model_image && item.model_image !== imageUrl) {             fallbackImage = item.model_image;          } else if (item.model_image_url && item.model_image_url !== imageUrl) {             fallbackImage = item.model_image_url;          }                    const rawCurrency = item.currency || item.currency_symbol || '$';                    let savingLabel = item.percentage_saving_label || '';          if (!savingLabel && rawMsrp > rawPrice && rawPrice > 0) {            const pct = Math.round(((rawMsrp - rawPrice) / rawMsrp) * 100);            if (pct > 0) {              savingLabel = `${pct}% OFF`;            }          }                    const isPrime = item.shipping && item.shipping.prime === true;                    let scoreRaw = (item.review_score !== undefined && item.review_score !== null && item.review_score > 0) ? parseFloat(item.review_score) : null;          let starRating = 0;          if (scoreRaw !== null) {            starRating = Math.round((scoreRaw > 10 ? scoreRaw / 20 : scoreRaw / 2) * 2) / 2;          }                    return {            id: item.offer_id || item.link || item.url || item.offer_link || Math.random().toString(),            url: item.link || item.url || item.offer_link || '#',            image: imageUrl,            fallbackImage: fallbackImage,            title: item.name || item.title || item.model_name || item.product_name || 'Unknown Product',            brand: item.brand || '',            productName: item.model_name || item.product_name || item.name || '',            merchant: item.merchant_name || item.merchant || item.retailer || 'Retailer',            price: item.price !== undefined ? String(item.price) : '0.00',            currency: this.decodeHTML(rawCurrency),            msrp: item.was_price || item.msrp || item.original_price || null,            rawPrice: rawPrice,            rawMsrp: rawMsrp,            hasWasPrice: (item.was_price !== undefined && item.was_price !== null),            isCheckPrice: isCheckPrice,            savingLabel: savingLabel,            isPrime: isPrime,            starRating: starRating > 0 ? starRating : null,            modelId: item.model_id || '',            productKey: item.product_key || '',            merchantId: (item.merchant && typeof item.merchant === 'object') ? item.merchant.id || '' : '',            matchId: item.match_id || '',            merchantNetwork: (item.merchant && typeof item.merchant === 'object') ? item.merchant.an || '' : '',            merchantUrl: (item.merchant && typeof item.merchant === 'object') ? item.merchant.url || '' : '',            modelBrand: item.model_brand || item.brand || '',            modelParent: item.model_parent || ''          };        }        sortData() {          const sortVal = this.sortSelect ? this.sortSelect.value : (this.getViewMode() === 'savings_squad' ? 'date_desc' : 'discount_desc');          if (sortVal === 'price_asc') {            this.deals.sort((a, b) => a.rawPrice - b.rawPrice);          } else if (sortVal === 'price_desc') {            this.deals.sort((a, b) => b.rawPrice - a.rawPrice);          } else if (sortVal === 'discount_desc') {            this.deals.sort((a, b) => {              const aDiscount = a.rawMsrp > a.rawPrice ? (a.rawMsrp - a.rawPrice) : 0;              const bDiscount = b.rawMsrp > b.rawPrice ? (b.rawMsrp - b.rawPrice) : 0;              return bDiscount - aDiscount;            });          } else if (sortVal === 'date_desc') {             this.deals.sort((a, b) => {                let dateA = 0;                let dateB = 0;                if (a && a.modifiedDate) {                   const valA = Array.isArray(a.modifiedDate) ? a.modifiedDate[0] : a.modifiedDate;                   dateA = new Date(valA).getTime();                   if (isNaN(dateA)) dateA = 0;                }                if (b && b.modifiedDate) {                   const valB = Array.isArray(b.modifiedDate) ? b.modifiedDate[0] : b.modifiedDate;                   dateB = new Date(valB).getTime();                   if (isNaN(dateB)) dateB = 0;                }                return dateB - dateA;             });          }        }        getFilteredDeals() {          let filteredDeals = [...this.deals];                    if (this.dealModeToggle && this.dealModeToggle.checked) {            filteredDeals = filteredDeals.filter(d => d.hasWasPrice || (d.msrp && d.rawMsrp > d.rawPrice));          }                    return filteredDeals;        }        showLoading() {          const _div = '<' + '/div>';          const skeletonCardHtml = `            \x3Cdiv class="tg-df-card">              \x3Cdiv class="tg-df-card-image-box">                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-img">${_div}              ${_div}              \x3Cdiv class="tg-df-card-body">                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short">${_div}                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text title">${_div}                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text title">${_div}                \x3Cdiv class="tg-df-card-footer mt-auto">                  \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="height:24px;">${_div}                  \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text" style="height:44px; margin-top:8px;">${_div}                ${_div}              ${_div}            ${_div}`;          this.grid.innerHTML = Array(4).fill(skeletonCardHtml).join('');        }        showError() {          const _div = '<' + '/div>';          this.grid.innerHTML = `\x3Cdiv class="tg-df-message">            An error occurred while finding deals. Please check your connection and try again.          ${_div}`;        }        escapeHTML(str) {          if (!str) return '';          return String(str).replace(/[&<>'"]/g, tag => ({              '&': '&', '<': '<', '>': '>', "'": ''', '"': '"'          }[tag] || tag));        }                bindCouponButtons() {          const btns = this.root.querySelectorAll('.tg-df-tag-coupons');          btns.forEach(btn => {            btn.addEventListener('click', (e) => {              e.preventDefault();              e.stopPropagation();              const merchant = btn.getAttribute('data-merchant');              this.openVouchersModal(merchant);            });          });                    const closeBtn = this.root.querySelector('#tg-df-vouchers-close');          const backdrop = this.root.querySelector('#tg-df-vouchers-modal');          if (closeBtn) {            closeBtn.onclick = () => this.closeVouchersModal();          }          if (backdrop) {            backdrop.onclick = (e) => {              if (e.target === backdrop) this.closeVouchersModal();            };          }        }                closeVouchersModal() {          const backdrop = this.root.querySelector('#tg-df-vouchers-modal');          if (backdrop) backdrop.classList.remove('active');        }                async checkMerchantsCouponsBulk(merchants) {          if (!merchants || merchants.length === 0) return {};          const controller = new AbortController();          const timeoutId = setTimeout(() => controller.abort(), 4000);          try {            const area = this.getAreaCode();            const url = new URL('https://search-api.fie.future.net.uk/widget.php');            url.searchParams.append('model_name', 'Everything');            url.searchParams.append('language', 'en-GB');            if (area) url.searchParams.append('area', area);            url.searchParams.append('combine_product_types', '1');            url.searchParams.append('filter_merchant_name', merchants.join(','));            url.searchParams.append('all_filters', 'false');            url.searchParams.append('exclude_unlabelled', 'false');            url.searchParams.append('include_specs', 'false');            url.searchParams.append('sort', 'voucher');            url.searchParams.append('distinct_merchants', 'natural');            url.searchParams.append('filter_product_types', 'vouchers,offer_deals,newsletter');            url.searchParams.append('rows', '120');            url.searchParams.append('origin', 'widgets-clientside');                        let res; try { res = await fetch(url.toString(), { signal: controller.signal }); } catch (e) { return {}; }            clearTimeout(timeoutId);            if (!res.ok) return {};            const data = await res.json();                        let offers = [];            if (data && data.widget && data.widget.data && Array.isArray(data.widget.data.offers)) {              offers = data.widget.data.offers;            } else if (data && data.data && Array.isArray(data.data.offers)) {              offers = data.data.offers;            } else if (Array.isArray(data)) {              offers = data;            } else if (data && Array.isArray(data.offers)) {              offers = data.offers;            } else if (data && data.offers && Array.isArray(data.offers.offer)) {              offers = data.offers.offer;            } else if (data && Array.isArray(data.data)) {              offers = data.data;            }                        const foundMerchants = new Set();            offers.forEach(o => {              let mName = o.merchant_name || o.merchant || o.retailer;              if (mName && typeof mName === 'object') mName = mName.name;              if (mName) foundMerchants.add(String(mName).toLowerCase());            });            const resultMap = {};            merchants.forEach(m => {              if (m) resultMap[m] = foundMerchants.has(String(m).toLowerCase());            });            return resultMap;          } catch (e) {            return {};          }        }                async openVouchersModal(merchantName) {          const backdrop = this.root.querySelector('#tg-df-vouchers-modal');          const title = this.root.querySelector('#tg-df-vouchers-title');          const content = this.root.querySelector('#tg-df-vouchers-content');                    if (!backdrop || !content) return;                    // HACK: Hide closing tags          const _div = '<' + '/div>';          const _span = '<' + '/span>';          const _a = '<' + '/a>';          const _h4 = '<' + '/h4>';          const _svg = '<' + '/svg>';          const _circle = '<' + '/circle>';          const _polyline = '<' + '/polyline>';          const _rect = '<' + '/rect>';          const _path = '<' + '/path>';                    title.innerText = `${merchantName} Coupons & Deals`;          content.innerHTML = `\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text">${_div}                               \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text">${_div}`;          backdrop.classList.add('active');                    try {            const area = this.getAreaCode();            const url = new URL('https://search-api.fie.future.net.uk/widget.php');            url.searchParams.append('model_name', 'Everything');            url.searchParams.append('language', 'en-GB');            if (area) url.searchParams.append('area', area);            url.searchParams.append('combine_product_types', '1');            url.searchParams.append('filter_merchant_name', merchantName);            url.searchParams.append('all_filters', 'false');            url.searchParams.append('exclude_unlabelled', 'false');            url.searchParams.append('include_specs', 'false');            url.searchParams.append('sort', 'voucher');            url.searchParams.append('distinct_merchants', 'natural');            url.searchParams.append('filter_product_types', 'vouchers,offer_deals,newsletter');            url.searchParams.append('rows', '50');            url.searchParams.append('origin', 'widgets-clientside');                        const res = await fetch(url.toString());            if (!res.ok) throw new Error('API Error');            const data = await res.json();                        let offers = [];            if (data && data.widget && data.widget.data && Array.isArray(data.widget.data.offers)) {              offers = data.widget.data.offers;            } else if (data && data.data && Array.isArray(data.data.offers)) {              offers = data.data.offers;            } else if (Array.isArray(data)) {              offers = data;            } else if (data && Array.isArray(data.offers)) {              offers = data.offers;            } else if (data && data.offers && Array.isArray(data.offers.offer)) {              offers = data.offers.offer;            } else if (data && Array.isArray(data.data)) {              offers = data.data;            }                        if (offers.length === 0) {              content.innerHTML = `\x3Cdiv class="tg-df-message">No vouchers currently available for ${this.escapeHTML(merchantName)}.${_div}`;              return;            }                        content.innerHTML = offers.map((v, idx) => {              let offerObj = v;              if (v.offers && v.offers.offer) {                offerObj = Array.isArray(v.offers.offer) ? v.offers.offer[0] : v.offers.offer;              } else if (v.offer) {                offerObj = Array.isArray(v.offer) ? v.offer[0] : v.offer;              }              let logoUrl = v.logo_url || offerObj.logo_url || '';              if (!logoUrl && v.merchant) {                if (Array.isArray(v.merchant) && v.merchant.length > 0) logoUrl = v.merchant[0].logo_url || '';                else logoUrl = v.merchant.logo_url || '';              }                            const offerName = offerObj.name || offerObj.title || v.name || v.title || 'Special Offer';              const endTime = offerObj.end_time || v.end_time || '';              const linkUrl = offerObj.link || offerObj.url || v.link || v.url || '#';                            let foundVoucherCode = '';              const findVoucherCode = (obj) => {                if (!obj || typeof obj !== 'object') return;                if (obj.type === 'voucher_code' && obj.display_value) {                  foundVoucherCode = obj.display_value;                  return;                }                if (Array.isArray(obj)) {                  for (const item of obj) {                    findVoucherCode(item);                    if (foundVoucherCode) return;                  }                } else {                  for (const k in obj) {                    if (Object.prototype.hasOwnProperty.call(obj, k)) {                      findVoucherCode(obj[k]);                      if (foundVoucherCode) return;                    }                  }                }              };              findVoucherCode(offerObj);              if (!foundVoucherCode) findVoucherCode(v);                            const voucherCode = foundVoucherCode || offerObj.voucher_code || v.voucher_code || '';              const codeHtml = voucherCode ? `\x3Cspan class="tg-df-voucher-code" data-action="copy-code" data-code="${this.escapeHTML(voucherCode)}" title="Copy to clipboard">                \x3Cspan class="tg-df-voucher-code-text">${this.escapeHTML(voucherCode)}${_span}                \x3Csvg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-left:6px;flex-shrink:0;" class="tg-df-voucher-copy-icon">                  \x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2">${_rect}                  \x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1">${_path}                ${_svg}              ${_span}` : '';                            const logoHtml = logoUrl                 ? `\x3Cimg src="${this.escapeHTML(logoUrl)}" alt="${this.escapeHTML(offerName)}" class="tg-df-voucher-logo" />`                 : `\x3Cdiv class="tg-df-voucher-logo" style="background:#e2e8f0;">${_div}`;                            let expiryHtml = '';              if (endTime) {                let dStr = endTime;                if (!isNaN(dStr) && String(dStr).length === 10) dStr = Number(dStr) * 1000;                const d = new Date(dStr);                if (!isNaN(d.getTime())) {                  const options = { year: 'numeric', month: 'short', day: 'numeric' };                  expiryHtml = `                    \x3Cdiv class="tg-df-voucher-expiry">                      \x3Csvg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">                        \x3Ccircle cx="12" cy="12" r="10">${_circle}                        \x3Cpolyline points="12 6 12 12 16 14">${_polyline}                      ${_svg}                      Expires ${d.toLocaleDateString(undefined, options)}                    ${_div}`;                }              }              const revenueIdVal = generateRevenueId(linkUrl, offerName, merchantName, null);              const rewrittenLinkUrl = rewriteAffiliateLink(linkUrl, area, revenueIdVal);              return `                \x3Ca href="${this.escapeHTML(rewrittenLinkUrl)}" target="_blank" rel="noopener nofollow" class="tg-df-voucher-item"                  data-action="voucher-click"                  data-product-name="${this.escapeHTML(offerName)}"                  data-merchant-name="${this.escapeHTML(merchantName)}"                  data-analytics-id="${this.escapeHTML(offerObj.offer_id || offerObj.id || v.id || '')}"                  data-price=""                  data-previous-price=""                  data-original-link="${this.escapeHTML(linkUrl)}"                  data-revenue-id="${revenueIdVal}"                  data-index="${idx}"                  data-total="${offers.length}"                  data-in-stock="true"                  data-currency="USD"                  data-model-id="${this.escapeHTML(offerObj.model_id || v.model_id || offerObj.id || v.id || '')}"                  data-merchant-id="${this.escapeHTML(offerObj.merchant_id || offerObj.merchant?.id || '')}"                >                  ${logoHtml}                  \x3Cdiv class="tg-df-voucher-content">                    \x3Ch4 class="tg-df-voucher-title">${this.escapeHTML(offerName)}${_h4}                    ${codeHtml}                    ${expiryHtml}                  ${_div}                ${_a}              `;            }).join('');                        // Attach copy functionality            const copyBtns = content.querySelectorAll('[data-action="copy-code"]');            copyBtns.forEach(btn => {              btn.addEventListener('click', async (e) => {                e.preventDefault();                e.stopPropagation();                                const code = btn.getAttribute('data-code');                if (!code) return;                                try {                  const copyToClipboard = async (text) => {                     if (window.navigator.clipboard && window.isSecureContext) {                        try { await window.navigator.clipboard.writeText(text); return; } catch (e) {}                     }                     const textArea = document.createElement("textarea");                     textArea.value = text;                     textArea.style.position = "fixed";                     document.body.appendChild(textArea);                     textArea.focus();                     textArea.select();                     document.execCommand('copy');                     textArea.remove();                  };                  await copyToClipboard(code);                                    // Visual feedback                  btn.classList.add('copied');                  const textSpan = btn.querySelector('.tg-df-voucher-code-text');                  const iconSvg = btn.querySelector('.tg-df-voucher-copy-icon');                                    const origText = textSpan.innerText;                  const origIcon = iconSvg.innerHTML;                                    textSpan.innerText = 'Copied!';                  iconSvg.innerHTML = `\x3Cpolyline points="20 6 9 17 4 12">${_polyline}`;                                    setTimeout(() => {                    if (btn) {                      btn.classList.remove('copied');                      if (textSpan) textSpan.innerText = origText;                      if (iconSvg) iconSvg.innerHTML = origIcon;                    }                  }, 2000);                                    trackElementInteraction({                    id: 'voucher-code-copy',                    name: 'Copy Voucher Code',                    label: `Copied ${code} for ${merchantName}`                  });                } catch (err) {                  console.warn('Failed to copy text: ', err);                }              });            });            // Attach voucher click tracking            const voucherBtns = content.querySelectorAll('[data-action="voucher-click"]');            voucherBtns.forEach(btn => {              btn.addEventListener('click', (e) => {                if (e.target.closest('[data-action="copy-code"]')) return;                                const productName = btn.getAttribute('data-product-name');                const merchantNameAttr = btn.getAttribute('data-merchant-name');                const productId = btn.getAttribute('data-analytics-id');                const price = parseFloat(btn.getAttribute('data-price')) || null;                const prevPriceStr = btn.getAttribute('data-previous-price');                const previousPrice = prevPriceStr ? parseFloat(prevPriceStr) : null;                const originalLink = btn.getAttribute('data-original-link');                const rewrittenLink = btn.getAttribute('href');                const revenueId = btn.getAttribute('data-revenue-id');                const index = parseInt(btn.getAttribute('data-index'), 10) || 0;                const inStock = btn.getAttribute('data-in-stock') === 'true';                const totalText = btn.getAttribute('data-total');                const totalDeals = parseInt(totalText, 10) || 0;                const productCategoryName = 'deals';                const trackingParams = {                  widgetId: this.widgetId,                  productCategoryName: productCategoryName,                  product: {                    modelId: btn.getAttribute('data-model-id') || null,                    matchId: btn.getAttribute('data-match-id') || null,                    brand: btn.getAttribute('data-model-brand') || null,                    parent: btn.getAttribute('data-model-parent') || null,                    name: productName,                    price: price,                    previousPrice: previousPrice,                    link: rewrittenLink,                    originalLink: originalLink,                    inStock: inStock                  },                  zeroBasedProductIndexOrNull: index,                  totalDealsOrProducts: totalDeals,                   merchant: {                    id: btn.getAttribute('data-merchant-id') || null,                    network: btn.getAttribute('data-merchant-network') || null,                    url: btn.getAttribute('data-merchant-url') || null,                    name: merchantNameAttr                  },                  revenueId: revenueId,                  widgetTypeName: this.widgetTypeName,                  isoCurrencyCode: btn.getAttribute('data-currency') || 'USD'                };                if (typeof trackDealClick === 'function') {                  trackDealClick(trackingParams);                }              });            });                                  } catch (e) {            console.warn(e);            content.innerHTML = `\x3Cdiv class="tg-df-message">Failed to load vouchers.${_div}`;          }        }        render() {          try {            if (this.getViewMode() === 'savings_squad' && this.airedaleTags.length > 0) {              if (this.categoryFilterWrapper) {                 this.categoryFilterWrapper.style.display = 'flex';              }              if (this.categoryFilter) {                 const _option = '<' + '/option>';                 let optionsHtml = `\x3Coption value="all">All Categories${_option}`;                 this.airedaleTags.forEach(tag => {                    const isSelected = this.activeDealTag === tag ? 'selected' : '';                    optionsHtml += `\x3Coption value="${this.escapeHTML(tag)}" ${isSelected}>${this.escapeHTML(tag)} (${this.airedaleTagCounts[tag] || 0})${_option}`;                 });                 this.categoryFilter.innerHTML = optionsHtml;                 this.categoryFilter.value = this.activeDealTag || 'all';              }            } else {               if (this.categoryFilterWrapper) {                  this.categoryFilterWrapper.style.display = 'none';               }            }            const displayDeals = this.getFilteredDeals();          // HACK: Hide closing tags from the CMS HTML sanitizer so it doesn't strip them during in-page injection          const _div = '<' + '/div>';          const _span = '<' + '/span>';          const _a = '<' + '/a>';          const _h3 = '<' + '/h3>';          const _p = '<' + '/p>';          const _strong = '<' + '/strong>';          const _sup = '<' + '/sup>';          const _button = '<' + '/button>';          if (displayDeals.length === 0) {            if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {              if (this.deals.length > 0) {                 this.grid.innerHTML = `\x3Cdiv class="tg-df-message">                  No deals match your selected filters.                ${_div}`;              } else if (this.getViewMode() === 'savings_squad' && this.currentQuery.length <= 2) {                 // Do not show "no exact matches" if query is empty for savings_squad                 this.grid.innerHTML = '';              } else {                 this.grid.innerHTML = `\x3Cdiv class="tg-df-message">                  No exact matches found for "\x3Cstrong>${this.escapeHTML(this.currentQuery)}${_strong}". Try adjusting your search term.                ${_div}`;              }            } else {              this.grid.innerHTML = `\x3Cdiv class="tg-df-message">                Search product or category names to discover the best deals from across the web.              ${_div}`;            }            return;          }          let dealsHtml = displayDeals.slice(0, this.displayLimit).map((deal, index) => {            try {               const currencySym = this.escapeHTML(deal.currency);               const isoCurrencyCode = normalizeCurrency(currencySym);               const escapedPrice = this.escapeHTML(deal.price);               const escapedMsrp = this.escapeHTML(deal.msrp);               const areaCode = this.getAreaCode();                              const revenueId = generateRevenueId(deal.url, deal.title, deal.merchant, null);               const originalLink = deal.url;               const rewrittenLink = rewriteAffiliateLink(deal.url, areaCode, revenueId);                        const productCategoryName = 'deals';            const dataAttr = `              data-action="${deal.isCheckPrice ? 'view-similar-click' : 'deal-click'}"              data-analytics-id="${this.escapeHTML(deal.externalProductId || deal.id || '')}"              data-product-name="${this.escapeHTML(deal.title)}"              data-merchant-name="${this.escapeHTML(deal.merchant)}"              data-price="${deal.rawPrice || ''}"              data-previous-price="${deal.rawMsrp || ''}"              data-original-link="${this.escapeHTML(originalLink)}"              data-revenue-id="${revenueId}"              data-index="${index}"              data-total="${displayDeals.length}"              data-in-stock="${deal.inStock !== false}"              data-currency="${this.escapeHTML(isoCurrencyCode)}"              data-model-id="${this.escapeHTML(deal.modelId || '')}"              data-product-key="${this.escapeHTML(deal.productKey || '')}"              data-merchant-id="${this.escapeHTML(deal.merchantId || '')}"            `;                        let priceGroupHtml = '';            let isSavingsSquadMode = this.getViewMode() === 'savings_squad';            let ctaText = 'View Deal';            let formattedPrice = '';            let msrpHtml = '';                        if (deal.isCheckPrice) {              ctaText = isSavingsSquadMode ? 'View Deal' : 'Check Price';              if (isSavingsSquadMode) {                priceGroupHtml = `                  \x3Cdiv class="tg-df-card-merchant-wrapper">                    \x3Cspan class="tg-df-card-merchant-pill" title="${this.escapeHTML(deal.merchant)}">${this.escapeHTML(deal.merchant)}${_span}                  ${_div}                  \x3Cdiv class="tg-df-card-price-group">                  ${_div}                `;              } else {                priceGroupHtml = `                  \x3Cdiv class="tg-df-card-merchant-wrapper">                    \x3Cspan class="tg-df-card-merchant-pill" title="${this.escapeHTML(deal.merchant)}">${this.escapeHTML(deal.merchant)}${_span}                  ${_div}                  \x3Cdiv class="tg-df-card-price-group">                    \x3Cspan class="tg-df-card-price" style="font-size: 15px; font-weight: 500; font-style: italic;">See price at retailer${_span}                  ${_div}                `;              }            } else {              // Format Price              formattedPrice = escapedPrice.includes(currencySym)                 ? escapedPrice                 : `${currencySym}${escapedPrice}`;                              // Format MSRP              msrpHtml = deal.msrp && deal.rawMsrp > deal.rawPrice                ? `\x3Cspan class="tg-df-card-msrp">${escapedMsrp.includes(currencySym) ? escapedMsrp : currencySym + escapedMsrp}${_span}`                : '';                              priceGroupHtml = `                \x3Cdiv class="tg-df-card-merchant-wrapper">                  \x3Cspan class="tg-df-card-merchant-pill" title="${this.escapeHTML(deal.merchant)}">${this.escapeHTML(deal.merchant)}${_span}                ${_div}                \x3Cdiv class="tg-df-card-price-group">                  ${isSavingsSquadMode ? '' : `                  \x3Cspan class="tg-df-card-price">${formattedPrice}${_span}                  ${msrpHtml}                  `}                ${_div}              `;            }                        const discountBadgeHtml = deal.savingLabel && !deal.isCheckPrice              ? `\x3Cspan class="tg-df-card-discount-badge">${this.escapeHTML(deal.savingLabel)}${_span}`              : '';                          // HACK for CMS            const _button = '<' + '/button>';            const _svg = '<' + '/svg>';            const _path = '<' + '/path>';            const _rect = '<' + '/rect>';            const _circle = '<' + '/circle>';            const _polyline = '<' + '/polyline>';            const _line = '<' + '/line>';                        let badgesHtml = '';            const primeBadge = deal.isPrime ? `              \x3Cspan class="tg-df-tag tg-df-tag-prime">                \x3Csvg width="12" height="12" viewBox="0 0 24 24" fill="currentColor">                  \x3Cpath d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z">${_path}                ${_svg} Prime              ${_span}            ` : '';                        const couponsBadge = deal.merchant && deal.merchant.toLowerCase().includes('amazon') ? '' : `              \x3Cdiv class="tg-df-coupon-wrapper" data-merchant="${this.escapeHTML(deal.merchant)}" style="display:inline-flex; align-items:center;">                \x3Cdiv class="tg-df-coupon-spinner">${_div}                \x3Cbutton type="button" class="tg-df-tag tg-df-tag-coupons" data-action="coupons-click" data-merchant="${this.escapeHTML(deal.merchant)}" style="display:none;">                  \x3Csvg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">                    \x3Cpath d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z">${_path}                    \x3Cline x1="7" y1="7" x2="7.01" y2="7">${_line}                  ${_svg} Coupons                ${_button}              ${_div}            `;                        // Note: We always add coupons badge if there's a chance, but to allow 3-line titles we check wrapper display state            badgesHtml = `              \x3Cdiv class="tg-df-card-badges">                ${primeBadge}                ${couponsBadge}              ${_div}            `;            const _linearGradient = '<' + '/linearGradient>';            const _polygon = '<' + '/polygon>';            const _stop = '<' + '/stop>';            const _defs = '<' + '/defs>';                        let starHtml = '';            if (deal.starRating) {              let rating = deal.starRating;                            if (rating > 0) {                const fullStars = Math.floor(rating);                const halfStar = (rating - fullStars) >= 0.5 ? 1 : 0;                const emptyStars = Math.max(0, 5 - fullStars - halfStar);                const blue = '#1f69ff'; // Tom's guide brand color from VIEW DEAL button                const gray = '#cbd5e1';                                const starSvgFull = `\x3Csvg width="14" height="14" viewBox="0 0 24 24" fill="${blue}" stroke="${blue}" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpolygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26">${_polygon}${_svg}`;                                const gradId = 'half_grad_' + Math.floor(Math.random()*1000000);                const starSvgHalf = `\x3Csvg width="14" height="14" viewBox="0 0 24 24" stroke="${blue}" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">\x3Cdefs>\x3ClinearGradient id="${gradId}" x1="0" x2="1" y1="0" y2="0">\x3Cstop offset="50%" stop-color="${blue}">${_stop}\x3Cstop offset="50%" stop-color="transparent">${_stop}${_linearGradient}${_defs}                  \x3Cpolygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26" fill="url(#${gradId})">${_polygon}${_svg}`;                                  const starSvgEmpty = `\x3Csvg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="${gray}" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpolygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26">${_polygon}${_svg}`;                                let stars = [];                for (let i=0; i<fullStars; i++) stars.push(starSvgFull);                if (halfStar) stars.push(starSvgHalf);                for (let i=0; i<emptyStars; i++) stars.push(starSvgEmpty);                                starHtml = `\x3Cdiv class="tg-df-card-stars" style="display:flex;align-items:center;margin-bottom:8px;font-size:13px;font-weight:600;color:var(--tg-df-text-muted);">                  \x3Cspan style="margin-right:6px;">Tom's Guide:${_span}                  \x3Cdiv style="display:flex;gap:2px;">                    ${stars.join('')}                  ${_div}                ${_div}`;              }            }            let htmlOutput = '';            if (isSavingsSquadMode) {              htmlOutput += `              \x3Cdiv class="hawk-deal-widget-container tg-df-mobile-only" data-collapsible="true">                ${this.editorMode ? `\x3Cinput type="checkbox" class="tg-df-deal-checkbox" data-id="${this.escapeHTML(deal.id)}" ${this.selectedDeals.has(deal.id) ? 'checked' : ''} style="margin-bottom: 10px;">` : ''}                \x3Cdiv class="hawk-deal-widget-wrap">                  \x3Cdiv class="hawk-deal-widget-image-container">                    \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" rel="sponsored noopener" target="_blank" class="hawk-affiliate-link-deal-widget" ${dataAttr}>                      \x3Cimg ${deal.image ? `src="${this.escapeHTML(deal.image)}"` : ''} alt="${this.escapeHTML(deal.title)}" class="hawk-lazy-image-deal-widget" loading="lazy" width="140" height="160" onerror="${deal.fallbackImage ? `if(!this.dataset.fb) { this.dataset.fb='1'; this.src='${this.escapeHTML(deal.fallbackImage)}'; } else { this.style.opacity='0'; }` : `this.style.opacity='0';`}">                    ${_a}                  ${_div}                  \x3Cdiv class="hawk-deal-widget-text-cta-container">                    \x3Cdiv class="hawk-deal-widget-text-body-container">                      \x3Cdiv class="hawk-deal-widget-text-body-main">                        \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-container" rel="sponsored noopener" target="_blank" ${dataAttr}>                          ${deal.isCheckPrice ? `                            \x3Cspan class="hawk-deal-widget-title-product-title">${this.escapeHTML(deal.title)}${_span}                          ` : `                            \x3Cspan class="hawk-deal-widget-title-product-title">${deal.brand ? this.escapeHTML(deal.brand) + ' ' : ''}${this.escapeHTML(deal.productName || deal.title || '')}:${_span}                          `}                        ${_a}                        ${!deal.isCheckPrice && deal.rawMsrp && deal.rawMsrp > deal.rawPrice ? `                          \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-container" rel="sponsored noopener" target="_blank" ${dataAttr}>                            \x3Cspan class="hawk-deal-widget-title-was-price">was ${currencySym}${escapedMsrp}${_span}                          ${_a}                        ` : ''}                        \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-container" rel="sponsored noopener" target="_blank" ${dataAttr}>                          \x3Cspan class="hawk-deal-widget-title-retailer-price">                            ${!deal.isCheckPrice ? `                              \x3Cspan class="hawk-deal-widget-title-price">now ${formattedPrice}${_span}                              \x3Cspan class="hawk-deal-widget-title-retailer"> at ${this.escapeHTML(deal.merchant)}${_span}                            ` : `                              \x3Cspan class="hawk-deal-widget-title-price">See price at ${this.escapeHTML(deal.merchant)}${_span}                            `}                          ${_span}                        ${_a}                        ${deal.description ? `\x3Cdiv class="hawk-deal-widget-text-body-description">\x3Cp>${this.escapeHTML(deal.description)}${_p}${_div}` : ''}                      ${_div}                    ${_div}                    \x3Cdiv class="hawk-deal-widget-footer">                      \x3Cdiv class="hawk-deal-widget-button-wrapper">                        \x3Cdiv class="hawk-deal-widget-preferred-partner-wrapper">                          \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-deal-button" rel="sponsored noopener" target="_blank" ${dataAttr}>                            \x3Cspan>${deal.isCheckPrice ? 'Check Price' : 'View Deal'}${_span}                          ${_a}                        ${_div}                      ${_div}                    ${_div}                  ${_div}                ${_div}              ${_div}              `;            }            htmlOutput += `              \x3Cdiv class="tg-df-card ${isSavingsSquadMode ? 'tg-df-desktop-only' : ''}">                ${this.editorMode ? `\x3Cinput type="checkbox" class="tg-df-deal-checkbox" data-id="${this.escapeHTML(deal.id)}" ${this.selectedDeals.has(deal.id) ? 'checked' : ''}>` : ''}                \x3Cdiv class="tg-df-card-image-box">                  ${discountBadgeHtml}                  \x3Ca href="${this.escapeHTML(rewrittenLink)}" ${dataAttr} target="_blank" rel="noopener nofollow" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;">                    \x3Cimg ${deal.image ? `src="${this.escapeHTML(deal.image)}"` : ''} alt="${this.escapeHTML(deal.title)}" class="tg-df-card-image" loading="lazy" onerror="${deal.fallbackImage ? `if(!this.dataset.fb) { this.dataset.fb='1'; this.src='${this.escapeHTML(deal.fallbackImage)}'; } else { this.style.opacity='0'; }` : `this.style.opacity='0';`}">                  ${_a}                ${_div}                \x3Cdiv class="tg-df-card-body">                  ${starHtml}                  ${badgesHtml}                  \x3Ch3 class="tg-df-card-title tg-df-custom-savings-squad-title" title="${this.escapeHTML(deal.title)}">                    \x3Ca href="${this.escapeHTML(rewrittenLink)}" disable-tracking="true" target="_blank" rel="noopener nofollow" style="text-decoration: none; color: inherit;">                      ${isSavingsSquadMode                         ? (deal.isCheckPrice                             ? (deal.title && deal.title.includes(':')                                 ? `\x3Cstrong>${this.escapeHTML(deal.title.substring(0, deal.title.indexOf(':') + 1))}${_strong}\x3Cspan style="color: #1f69ff; font-weight: normal;">${this.escapeHTML(deal.title.substring(deal.title.indexOf(':') + 1))}${_span}`                                : this.escapeHTML(deal.title)                              )                             : `\x3Cstrong>${deal.brand ? this.escapeHTML(deal.brand) + ' ' : ''}${this.escapeHTML(deal.productName || deal.title || '')}:${_strong} ${deal.rawMsrp && deal.rawMsrp > deal.rawPrice ? `\x3Cspan style="color: #d0021b; text-decoration: line-through; font-weight: normal; margin-right: 4px;">was ${currencySym}${escapedMsrp}${_span} ` : ''}\x3Cspan style="color: #1f69ff; font-weight: normal;">now ${formattedPrice} at ${this.escapeHTML(deal.merchant)}${_span}`                          )                        : this.escapeHTML(deal.title)                      }                    ${_a}                  ${_h3}                  ${deal.description ? `\x3Cp style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 12px; line-height: 1.4;">${this.escapeHTML(deal.description)}${_p}` : ''}                  \x3Cdiv class="tg-df-card-footer">                    ${priceGroupHtml}                    \x3Ca href="${this.escapeHTML(rewrittenLink)}" ${dataAttr} target="_blank" rel="noopener nofollow" class="tg-df-card-cta ${isSavingsSquadMode ? 'tg-df-cta-savings-squad' : ''}" style="text-decoration: none;">${ctaText}${_a}                  ${_div}                ${_div}              ${_div}            `;                        return htmlOutput;            } catch (e) {               console.log("Error rendering deal in map for index", index, typeof deal === 'object' ? JSON.stringify(deal) : deal, "MSG:", e.message);               return '';            }          }).join('');                    if (displayDeals.length > this.displayLimit || ((this.getViewMode() === 'carousel' || this.getViewMode() === 'auto') && displayDeals.length > 0 && displayDeals.length % ((this.rowsSelect && this.rowsSelect.value) ? parseInt(this.rowsSelect.value, 10) : 12) === 0)) {            if (this.getViewMode() === 'carousel') {               dealsHtml += `                 \x3Cbutton type="button" class="tg-df-load-more-card tg-df-load-more">                   \x3Csvg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-bottom: 8px;">\x3Cpath d="M5 12h14">\x3C/path>\x3Cpath d="m12 5 7 7-7 7">\x3C/path>\x3C/svg>                   Load More                 ${_button}               `;            } else {               dealsHtml += `                 \x3Cdiv style="width: 100%; display: flex; justify-content: center; margin-top: 16px; grid-column: 1 / -1;">                   \x3Cbutton type="button" class="tg-df-tag-outline tg-df-load-more" style="padding: 8px 24px; border-radius: 100px; font-weight: 600; font-size: 14px; cursor: pointer; display: flex; align-items: center;">Load More${_button}                 ${_div}               `;            }          }                    this.grid.innerHTML = dealsHtml;          // Inject JSON-LD          try {            let targetNode = this.hostContainer || document.head;            let jsonLdScript = targetNode.querySelector('#tg-df-json-ld-' + this.widgetId);            if (!jsonLdScript) {                jsonLdScript = document.createElement('script');                jsonLdScript.type = 'application/ld+json';                jsonLdScript.id = 'tg-df-json-ld-' + this.widgetId;                targetNode.appendChild(jsonLdScript);            }            const jsonLdData = {              "@context": "https://schema.org",              "@type": "ItemList",              "itemListElement": displayDeals.slice(0, this.displayLimit).map((deal, index) => {                 let isoCurrency = "USD";                 if (deal.currency === '£') isoCurrency = "GBP";                 else if (deal.currency === '€') isoCurrency = "EUR";                 else if (deal.currency === 'A$') isoCurrency = "AUD";                 else if (deal.currency === 'CA$') isoCurrency = "CAD";                 const areaCode = typeof this.getAreaCode === 'function' ? this.getAreaCode() : 'US';                 const revenueId = typeof generateRevenueId === 'function' ? generateRevenueId(deal.url, deal.title, deal.merchant, null) : '';                 const rewrittenLink = typeof rewriteAffiliateLink === 'function' ? rewriteAffiliateLink(deal.url, areaCode, revenueId) : deal.url;                 return {                   "@type": "ListItem",                   "position": index + 1,                   "item": {                     "@type": "Product",                     "name": deal.title,                     "image": deal.image || "",                     "description": deal.description || "",                     "brand": {                       "@type": "Brand",                       "name": deal.brand || ""                     },                     "offers": {                       "@type": "Offer",                       "priceCurrency": isoCurrency,                       "price": deal.rawPrice || 0,                       "url": rewrittenLink,                       "seller": {                         "@type": "Organization",                         "name": deal.merchant || ""                       }                     }                   }                 };              }).filter(item => item.item.name)            };            jsonLdScript.textContent = JSON.stringify(jsonLdData);          } catch(e) { console.warn("JSON-LD generation failed", e); }                    let gridWrapper = this.grid.parentElement;          if (gridWrapper && gridWrapper.classList.contains('tg-df-grid-wrapper')) {             let rightChevron = gridWrapper.querySelector('.tg-df-carousel-scroll-right');             let leftChevron = gridWrapper.querySelector('.tg-df-carousel-scroll-left');             if (this.getViewMode() === 'carousel') {                 // The observer set up in setupScrollListeners handles visibility.                 if (rightChevron) rightChevron.style.display = 'flex';                 if (leftChevron) leftChevron.style.display = 'none'; // reset correctly             } else {                 if (rightChevron) rightChevron.style.display = 'none';                 if (leftChevron) leftChevron.style.display = 'none';             }          }                    const loadMoreBtn = this.grid.querySelector('.tg-df-load-more');          if (loadMoreBtn) {            loadMoreBtn.addEventListener('click', async () => {              if (typeof trackElementInteraction === 'function') {                trackElementInteraction({ id: 'load-more', name: 'Load more', label: 'Load More Results' });              }              if (displayDeals.length <= this.displayLimit) {                 loadMoreBtn.innerHTML = `                  <svg class="tg-df-spinner" style="width: 16px; height: 16px; display: inline-block; vertical-align: middle; margin-right: 8px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" d="M12 2v4m0 12v4M4.93 4.93l2.83 2.83m8.48 8.48l2.83 2.83M2 12h4m12 0h4M4.93 19.07l2.83-2.83m8.48-8.48l2.83-2.83"/></svg>                  Loading...                 `;                 loadMoreBtn.disabled = true;                 await this.fetchDeals(this.currentQuery, true);              } else {                 this.displayLimit += this.getRowsLimit();                 this.render();              }            });          }                      this.bindCouponButtons();            this.checkAndUpdateCoupons();                        // Allow hawklinks.js to discover and rewrite our widget links             // by appending the .article-body class and manually triggering processArticle.            let container = this.root.classList.contains('tg-df-container') ? this.root : this.root.querySelector('.tg-df-container');            if (container && !container.classList.contains('article-body')) {               container.classList.add('article-body');            }            setTimeout(() => {               if (this.grid && !this.grid.classList.contains('article-body')) this.grid.classList.add('article-body');               document.dispatchEvent(new CustomEvent('processArticle', { detail: { element: this.root } }));            }, 50);          } catch(e) {            console.warn("Widget render error", e);          }        }                async checkAndUpdateCoupons() {          const wrappers = Array.from(this.root.querySelectorAll('.tg-df-coupon-wrapper'));          if (wrappers.length === 0) return;                    const merchants = [...new Set(wrappers.map(w => w.getAttribute('data-merchant')).filter(Boolean))];          if (merchants.length === 0) return;          const couponResultsMap = await this.checkMerchantsCouponsBulk(merchants);                    for (const merchant of merchants) {            const hasCoupons = !!couponResultsMap[merchant];            const merchantWrappers = wrappers.filter(w => w.getAttribute('data-merchant') === merchant);            merchantWrappers.forEach(wrapper => {              const spinner = wrapper.querySelector('.tg-df-coupon-spinner');              const btn = wrapper.querySelector('.tg-df-tag-coupons');                            if (spinner) spinner.style.display = 'none';                            if (hasCoupons && btn) {                btn.style.display = 'inline-flex';              } else if (!hasCoupons) {                wrapper.style.display = 'none';              }            });          }        }        updateFloatingCopyBar() {          if (!this.editorBar || !this.editorSelectedCount) return;          if (this.editorMode && this.selectedDeals.size > 0) {            this.editorBar.style.display = 'flex';            this.editorSelectedCount.innerText = this.selectedDeals.size;          } else {            this.editorBar.style.display = 'none';          }        }        async copySelectedDealsToCMS() {           function htmlToSlate(htmlString) {              if (!htmlString) return [{ type: 'paragraph', children: [{ text: '' }] }];              let doc;              if (typeof window !== 'undefined' && window.DOMParser) {                 doc = new DOMParser().parseFromString(htmlString, 'text/html');              } else {                 doc = document.implementation.createHTMLDocument('');                 doc.body.innerHTML = htmlString;              }                            function parseNode(node, marks = {}) {                  if (node.nodeType === 3) {                      const text = node.textContent;                      if (!text) return null;                      return { text: text, ...marks };                  }                  if (node.nodeType === 1) {                      const tagName = node.tagName.toLowerCase();                      if (tagName === 'br') {                          return { type: 'line-break', children: [{ text: '' }] };                      }                      if (tagName === 'p') {                          let children = Array.from(node.childNodes).map(child => parseNode(child, marks)).flat().filter(Boolean);                          if (children.length === 0) children.push({ text: "" });                          return { type: 'paragraph', children };                      }                      if (tagName === 'strong' || tagName === 'b') {                          const newMarks = { ...marks, bold: true };                          return Array.from(node.childNodes).map(child => parseNode(child, newMarks)).flat().filter(Boolean);                      }                      if (tagName === 'em' || tagName === 'i') {                          const newMarks = { ...marks, italic: true };                          return Array.from(node.childNodes).map(child => parseNode(child, newMarks)).flat().filter(Boolean);                      }                      if (tagName === 'a') {                          const href = node.getAttribute('href') || '';                          let children = Array.from(node.childNodes).map(child => parseNode(child, marks)).flat().filter(Boolean);                          if (children.length === 0) children.push({ text: "" });                          return {                              type: 'link',                              url: href,                              isNoFollow: (node.getAttribute('rel') || '').includes('nofollow'),                              isSponsored: (node.getAttribute('rel') || '').includes('sponsored'),                              isOpenNewTab: node.getAttribute('target') === '_blank',                              isPreventDataRewrite: false,                              children: children                          };                      }                      return Array.from(node.childNodes).map(child => parseNode(child, marks)).flat().filter(Boolean);                  }                  return null;              }                            let blocksArray = [];              let currentParagraphChildren = [];              function flushParagraph() {                  if (currentParagraphChildren.length > 0) {                      blocksArray.push({ type: 'paragraph', children: currentParagraphChildren });                      currentParagraphChildren = [];                  }              }              Array.from(doc.body.childNodes).forEach(node => {                  const parsed = parseNode(node, {});                  const parsedItems = Array.isArray(parsed) ? parsed : (parsed ? [parsed] : []);                  parsedItems.forEach(item => {                      if (item.type === 'paragraph') {                          flushParagraph();                          blocksArray.push(item);                      } else {                          currentParagraphChildren.push(item);                      }                  });              });              flushParagraph();              if (blocksArray.length === 0) {                  blocksArray = [{ type: 'paragraph', children: [{ text: '' }] }];              }              return blocksArray;           }           const blocks = [];                      this.editorCopyBtn.innerHTML = '\x3Cspan class="tg-df-coupon-spinner" style="display:inline-block; margin-right:8px; border-top-color:#fff;">' + '<' + '/span> Copying...';           for (const deal of Array.from(this.selectedDeals.values())) {              const url = deal.url;              const merchant = deal.merchant;              const title = deal.title;              const image = deal.image;              const currentPrice = deal.currency + deal.rawPrice;              const wasPrice = deal.hasWasPrice && deal.rawMsrp > deal.rawPrice ? deal.currency + deal.rawMsrp : '';                            let couponsChildren = [];              try {                  const area = this.getAreaCode();                  const apiUrl = new URL('https://search-api.fie.future.net.uk/widget.php');                  apiUrl.searchParams.append('model_name', 'Everything');                  apiUrl.searchParams.append('language', 'en-GB');                  apiUrl.searchParams.append('area', area);                  apiUrl.searchParams.append('combine_product_types', '1');                  apiUrl.searchParams.append('filter_merchant_name', merchant);                  apiUrl.searchParams.append('all_filters', 'false');                  apiUrl.searchParams.append('exclude_unlabelled', 'false');                  apiUrl.searchParams.append('include_specs', 'false');                  apiUrl.searchParams.append('sort', 'voucher');                  apiUrl.searchParams.append('distinct_merchants', 'natural');                  apiUrl.searchParams.append('filter_product_types', 'vouchers,offer_deals,newsletter');                  apiUrl.searchParams.append('rows', '3');                  apiUrl.searchParams.append('origin', 'widgets-clientside');                                    let res; try { res = await fetch(apiUrl.toString()); } catch (e) { return; }                  if (res.ok) {                      const data = await res.json();                      let offers = [];                      if (data && data.widget && data.widget.data && Array.isArray(data.widget.data.offers)) {                        offers = data.widget.data.offers;                      } else if (data && data.data && Array.isArray(data.data.offers)) {                        offers = data.data.offers;                      }                                            if (offers.length > 0) {                          couponsChildren.push({ text: "Also check out these coupons: ", bold: true });                          offers.slice(0, 3).forEach((offer, idx) => {                              const actualOffer = offer.offer || offer;                              const offerName = actualOffer.name || actualOffer.title || offer.model_name || offer.title || offer.name || 'Coupon';                              const linkUrl = actualOffer.link || actualOffer.url || actualOffer.offer_link || '#';                              couponsChildren.push({ type: "line-break", children: [{ text: "" }] });                              couponsChildren.push({ text: "🎟️ " });                              couponsChildren.push({                                  type: "link",                                  url: linkUrl,                                  isNoFollow: true,                                  isSponsored: false,                                  isOpenNewTab: true,                                  isPreventDataRewrite: false,                                  children: [{ text: offerName, bold: true }]                              });                          });                      }                  }              } catch (err) {                  console.warn('Failed to fetch coupons for', merchant, err);              }              let descriptionValue = [];              if (deal.text) {                 descriptionValue = htmlToSlate(deal.text);              } else {                 const dealDescriptions = [                   `Don't miss out on this fantastic deal for the ${title}. It is currently available at ${merchant} for a highly competitive price.`,                   `We've spotted an excellent price drop on the ${title}. Grab it now at ${merchant} before it's gone.`,                   `The ${title} is currently seeing a generous discount over at ${merchant}. This is a perfect time to buy if you've been holding out.`,                   `If you're in the market for the ${title}, ${merchant} has just the deal for you.`,                   `Score the ${title} for less at ${merchant} right now. This is a rare chance to save big.`,                   `Upgrade your setup with the ${title}, now available at a stellar price via ${merchant}.`                 ];                 const randomDescription = dealDescriptions[Math.floor(Math.random() * dealDescriptions.length)];                 descriptionValue = [                    { type: "paragraph", children: [{ text: randomDescription }] }                 ];              }                            if (couponsChildren.length > 0) {                 let lastBlock = descriptionValue[descriptionValue.length - 1];                 if (lastBlock && lastBlock.type === 'paragraph') {                     lastBlock.children.push({ type: "line-break", children: [{ text: "" }] });                     lastBlock.children.push({ type: "line-break", children: [{ text: "" }] });                     lastBlock.children.push({ text: "Also check out these coupons: ", bold: true });                     lastBlock.children.push({ type: "line-break", children: [{ text: "" }] });                     lastBlock.children = lastBlock.children.concat(couponsChildren);                 } else {                     descriptionValue.push({                         type: "paragraph",                         children: [                             { type: "line-break", children: [{ text: "" }] },                             { type: "line-break", children: [{ text: "" }] },                             { text: "Also check out these coupons: ", bold: true },                             { type: "line-break", children: [{ text: "" }] },                             ...couponsChildren                         ]                     });                 }              }              function normalizeCurrencyToISO(symbol) {                const map = { '£': 'GBP', '$': 'USD', 'A$': 'AUD', 'CA$': 'CAD', '€': 'EUR' };                return map[symbol] || symbol;              }              const isoCurrency = normalizeCurrencyToISO(deal.currency);              blocks.push({                 id: (window.crypto && window.crypto.randomUUID) ? window.crypto.randomUUID() : 'cms-' + Date.now() + Math.random(),                 blockTypeName: "deal",                 excludeFrom: [],                 collapsible: false,                 props: {                    description: {                       value: descriptionValue,                       touched: false,                       validationMessage: ""                    },                    image: {                       value: {                          credit: [{ type: "paragraph", children: [{ text: merchant }] }],                          dateCreated: Date.now(),                          dateModified: Date.now(),                          distribution: [],                          fileSize: 0,                          height: 1000,                          id: deal.id,                          imageRights: "",                          src: image,                          name: title + ".jpg",                          tags: [],                          width: 1000                       },                       touched: false,                       validationMessage: ""                    },                    showDealButton: { value: true, touched: false, validationMessage: "" },                    isPreferredPartner: { value: false, touched: false, validationMessage: "" },                    linkHref: { value: url, touched: false, validationMessage: "" },                    linkLabel: { value: "", touched: false, validationMessage: "" },                    linkIsNoFollow: { value: true, touched: false, validationMessage: "" },                    linkIsSponsored: { value: false, touched: false, validationMessage: "" },                    linkIsOpenNewWindow: { value: true, touched: false, validationMessage: "" },                    customPromoFlags: { value: [], touched: false, validationMessage: "" },                    showStarDeal: { value: false, touched: false, validationMessage: "" },                    savingType: { value: "none", touched: false, validationMessage: "" },                    starDealPromoFlag: { value: "", touched: false, validationMessage: "" },                    showEditorsChoice: { value: false, touched: false, validationMessage: "" },                    editorsChoiceTitle: { value: "", touched: false, validationMessage: "" },                    hawkPriceCurrency: { value: { value: isoCurrency, label: isoCurrency }, touched: false, validationMessage: "" },                    hawkPrice: { value: deal.hasWasPrice ? String(deal.rawMsrp) : String(deal.rawPrice), touched: false, validationMessage: "" },                    hawkSalePrice: { value: String(deal.rawPrice), touched: false, validationMessage: "" },                    lastCheckedPriceDate: { value: "", touched: false, validationMessage: "" },                    hawkModel: { touched: false, validationMessage: "" },                    productId: { value: "", touched: false, validationMessage: "" },                    voucherId: { value: "", touched: false, validationMessage: "" },                    brand: { value: deal.brand || merchant, touched: false, validationMessage: "" },                    productName: { value: title, touched: false, validationMessage: "" },                    label: { value: "", touched: false, validationMessage: "" },                    retailer: { value: merchant, touched: false, validationMessage: "" },                    priceCheckError: false                 },                 failedFetchError: ""              });           }           const payload = {              type: "articleBuilderPages",              data: blocks           };           const jsonStr = JSON.stringify(payload);                      if (navigator.clipboard && navigator.clipboard.writeText) {              navigator.clipboard.writeText(jsonStr).then(() => {                 this.editorCopyBtn.innerHTML = 'Copied!';                 setTimeout(() => {                    this.editorCopyBtn.innerHTML = '\x3Csvg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-right: 6px;">\x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2"><' + '/rect>\x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"><' + '/path><' + '/svg> Copy to CMS';                 }, 2000);              }).catch(err => {                 console.warn('Failed to copy text: ', err);                 alert('Failed to copy deals to clipboard. See console.');              });           } else {              // Fallback              const textArea = document.createElement("textarea");              textArea.value = jsonStr;              document.body.appendChild(textArea);              textArea.focus();              textArea.select();              try {                 document.execCommand('copy');                 this.editorCopyBtn.innerHTML = 'Copied!';                 setTimeout(() => {                    this.editorCopyBtn.innerHTML = '\x3Csvg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-right: 6px;">\x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2"><' + '/rect>\x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"><' + '/path><' + '/svg> Copy to CMS';                 }, 2000);              } catch (err) {                 console.warn('Fallback: Oops, unable to copy', err);                 alert('Fallback: Failed to copy deals to clipboard.');              }              document.body.removeChild(textArea);           }        }      }      // Initialize the Widget      if (document.readyState === 'loading') {        document.addEventListener('DOMContentLoaded', () => new DealsFinderWidget({ rootId: 'signal-deals-finder-root', rootNode: shadowRoot, hostContainer: hostContainer }));      } else {        new DealsFinderWidget({ rootId: 'signal-deals-finder-root', rootNode: shadowRoot, hostContainer: hostContainer });      }    })();  </script></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ ‘The Invite’ review: Olivia Wilde and Seth Rogen’s new film is the best movie I’ve seen in 2026. Yeah, I’m as surprised as you are ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/entertainment/movies/the-invite-review</link>
                                                                            <description>
                            <![CDATA[ "The Invite" is a masterpiece of a comedy-drama, with a perfect foursome of actors and impressive directing chops from star Olivia Wilde. It's the best movie of 2026 so far. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">edRwBuSg9RmoLbYAwLcLmg</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/9iKnSEMsGsBxP5FMie7Qh3-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 26 Jun 2026 08:30:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Movies]]></category>
                                                    <category><![CDATA[Entertainment]]></category>
                                                                                                <author><![CDATA[ malcolm.mcmillan@futurenet.com (Malcolm McMillan) ]]></author>                    <dc:creator><![CDATA[ Malcolm McMillan ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/sSDLEbNEgBXf86HpujaWZ6.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Malcolm McMillan is a Streaming Editor for Tom&#039;s Guide, covering all the latest in streaming TV shows and movies. That means news, analysis, recommendations, reviews and more for just about anything you can watch, including sports! If it can be seen on a screen, he can write about it. &lt;/p&gt;&lt;p&gt;Malcolm has been with Tom&#039;s Guide since June 2022, starting as a staff writer covering breaking news. Since then, he&#039;s transitioned to cover artificial intelligence (AI), A/V tech and VR headsets. Since late 2023 he has almost exclusively covered streaming and entertainment for Tom&#039;s Guide.&lt;/p&gt;&lt;p&gt;Before writing for Tom&#039;s Guide, Malcolm worked as a fantasy football analyst writing for several sites and also had a brief stint working for Microsoft selling laptops, Xbox products and even the ill-fated Windows phone. He is passionate about video games and sports, though both cause him to yell at the TV frequently. He proudly sports many tattoos, including an Arsenal tattoo, in honor of the team that causes him to yell at the TV the most.&lt;/p&gt; ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/9iKnSEMsGsBxP5FMie7Qh3-1280-80.jpg">
                                                            <media:credit><![CDATA[A24]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[(L-R) Penélope Cruz and Olivia Wilde in &quot;The Invite&quot; (2026).]]></media:description>                                                            <media:text><![CDATA[(L-R) Penélope Cruz and Olivia Wilde in &quot;The Invite&quot; (2026).]]></media:text>
                                <media:title type="plain"><![CDATA[(L-R) Penélope Cruz and Olivia Wilde in &quot;The Invite&quot; (2026).]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/9iKnSEMsGsBxP5FMie7Qh3-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <div  class="fancy-box"><div class="fancy_box-title">Tom's Guide Verdict: 'The Invite'</div><div class="fancy_box_body"><p class="fancy-box__body-text"><ul><li><strong>Rating:</strong> <strong>5/5 stars</strong></li><li><strong>Verdict: </strong>"The Invite" is a textbook comedy-drama. It will make you laugh, it will make you cry and it will make you cry from laughing. The casting for this intimate film is impeccable, and despite its relatively simple construction, director Olivia Wilde manages to show off on occasion while still putting in an incredible performance as one of the movie's leads.</li><li><strong>Where to watch:</strong> <a data-analytics-id="inline-link" href="https://www.fandango.com/the-invite-2026-246048/movie-overview" target="_blank" rel="nofollow">See "The Invite" in theaters now</a></li></ul></p></div></div><p><strong>"The Invite" </strong>may not have been the <a href="https://www.tomsguide.com/entertainment/movies/37-biggest-summer-movies-of-2026-spider-man-star-wars-the-odyssey-toy-story-and-more">biggest summer movie</a> to watch this year, but it's been the best. I've seen "<a href="https://www.tomsguide.com/entertainment/movies/backrooms-review-this-youtube-horror-movie-is-blair-witch-meets-cabin-in-the-woods-in-the-best-possible-way">Backrooms</a>," "<a href="https://www.tomsguide.com/entertainment/movies/obsession-is-a-delightfully-creepy-thrill-ride-and-a-must-watch-for-a-star-making-performance-from-inde-navarrette">Obsession</a>," "<a href="https://www.tomsguide.com/entertainment/movies/disclosure-day-review">Disclosure Day</a>" and even "<a href="https://www.tomsguide.com/entertainment/movies/toy-story-5-review">Toy Story 5</a>," and I can unequivocally say that this comedy-drama is the best of the lot. In fact, it's the best movie of 2026 so far.</p><p>Simply put, this movie is incredible. It's not a technical marvel, given that it's set almost entirely within a large apartment in Boston and features just four actors. But it’s the only movie I think I’ve ever seen that goes from being so hilarious that you struggle to hear dialogue over the laughter of the audience, to so serious that you could hear a pin drop in that same theater. </p><p>Besides, "The Invite" being so intimate is for the best. Or at least, it gets the best out of director Olivia Wilde. Despite a positive debut with "Booksmart," her 2022 disaster "Don't Worry Darling" had some questioning if directing was the right role for her. This movie renders those questions moot. She's in complete control of the confines of the apartment, and the result is a pitch-perfect bedroom farce, until it turns into something far different.</p><a href="https://follow.it/articles-by-malcolm-mcmillan-streaming-editor-tom-s-guide?leanpub" class="button button--medium button--primary">Get the latest from Malcolm in your inbox</a><figure class="inline-layout"><fw-embed-feed channel="toms_guide" playlist="gdR2W4" mode="row" player_placement="bottom-right"></fw-embed-feed></figure><h2 id="rogen-wilde-norton-and-cruz-show-incredible-range-throughout-the-invite">Rogen, Wilde, Norton and Cruz show incredible range throughout 'The Invite'</h2><p>"The Invite" is basically a stage play in three acts. It's set, aside from a prologue, entirely within a (relatively spacious) apartment. The cast is equally intimate; Wilde and Seth Rogen star as husband and wife, Angela and Joe, and they’re eventually joined by their neighbors, Pina (Penelope Cruz) and Hawk (Edward Norton). That's it. That's the full cast list, other than an uncredited orchestra in the aforementioned prologue.</p><p>As a comedy-drama, it runs the gamut of both sides of the spectrum. It starts as a hysterical bedroom farce, with Wilde and Rogen going from room to room, arguing about all sorts of things. Particularly, the fact that the neighbors are coming over, and that those same neighbors are keeping them up with ear-shattering orgasms.</p><p>Despite the argumentative nature of that scene, the movie feels light up to this point. The tension then starts to creep in, though, when Hawk and Pina arrive. Unbeknownst to Joe and Angela, Hawk and Pina have overheard much of the argument from outside the front door — again, mostly arguing about Hawk and Pina, themselves. Joe also doesn't go to any great lengths to hide his anger, which Hawk needles him about on several occasions.</p><p>But Pina and Hawk aren't here to poke at Joe until he snaps. They're here to — and for those who want zero spoilers, turn back now (though what I'm about to disclose is heavily implied in the trailer) — have group sex with Angela and Joe.</p><p>Turns out, this spontaneous night of drinks and charcuterie isn't so spontaneous after all; the neighbors had an ulterior motive. And as the discussion about Hawk and Pina's lifestyle choice continues, it becomes clear that Angela and Joe aren't as taken aback by the idea as one might expect.</p><p>At this point, we’re fully into the second act of the movie. The first act is the introduction; the second act is the seduction. The third act? That’s the destruction. I won't spoil exactly what happens or who it happens to, but a mishap befalls one of the foursome. From that point, there's no more laughter in this comedy-drama. </p><p>It's a sudden but deft twist in the tale, and a less talented cast than Rogen, Wilde, Norton and Cruz might struggle with it. Even though you, deep down, expect the initial shift to come, the movie manages to lead you on long enough that you wonder if maybe, just maybe, the film will avoid the expected conclusion. </p><p>Despite some of its predictability, you still can't necessarily anticipate all the turns the story takes in this third act. By the time the credits roll, you'll be sitting in stunned silence.</p><h2 id="verdict-the-invite-is-the-best-movie-of-2026-so-far">Verdict: 'The Invite' is the best movie of 2026 so far</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/OJ19I9q_hOQ" allowfullscreen></iframe></div></div><p>Movies succeed when they either nail the realism of their world or the escapism, and this movie does both, though largely the former. If you’re in (or have ever been in) an adult, long-term relationship, you will feel seen watching this film, sometimes uncomfortably so. If you’re like me and happen to not only be a failed musician, like Joe, but also look a fair amount like Seth Rogen, that feeling of having a mirror held up to you during the course of this movie gets cranked up to 11. </p><p>Thankfully, the absurdity allows for escapism. Like many of you, I've never had an awkward dinner with neighbors turn into being propositioned for an orgy that then takes a turn for the worse. This allows you to disconnect from the story <em>just</em> enough to still enjoy it.</p><p>"The Invite" isn't flawless. If I were writing it, I would probably have the ending linger on a more ambiguous note. But there's no denying its excellence. It’s not just the writing that makes it a delight, either. There are moments where the technical framing of a scene is impeccable. My favorite is a scene where Angela and Joe are going back and forth and the camera cuts between them, both people totally separated but framed exactly the same way, leaning against a pillar centered along a wall. </p><p>So, if you want a movie that will make you laugh, cry and cry from laughing all at once, “The Invite” is a must-watch. It’s masterfully crafted, the epitome of farce at one moment and then the height of relationship drama the next. It’s the best movie I’ve seen all year, and filled with Oscar-worthy performances.</p><p><em><strong>"The Invite" is in theaters now</strong></em></p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-ORVgVO"></div>                            </div>                            <script src="https://kwizly.com/embed/ORVgVO.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/entertainment/hulu/3-new-to-hulu-movies-you-need-to-stream-this-weekend-june-26-28-2026">3 new to Hulu movies you need to stream this weekend (June 26-28)</a></li><li><a href="https://www.tomsguide.com/entertainment/hbo-max/house-of-the-dragon-finally-delivers-the-epic-battle-ive-been-waiting-for-in-its-season-3-premiere">'House of the Dragon' finally delivers the epic battle I've been waiting for in its season 3 premiere</a></li><li><a href="https://www.tomsguide.com/entertainment/paramount-plus/3-new-to-paramount-movies-you-need-to-stream-this-weekend-june-26-28-2026">3 new to Paramount+ movies you need to stream this weekend (June 26-28)</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Fissler or fizzle? Woolworths customers can’t cash in cookware credits ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/home/kitchen-dining/fissler-or-fizzle-woolworths-customers-cant-cash-in-cookware-credits</link>
                                                                            <description>
                            <![CDATA[ Woolworths shoppers say Fissler cookware stock ran out before they could redeem their credits. Here’s how to check availability and where to complain. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">FTXqDxyQhUCEdzhvpYewGX</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/2pkFifsdZnHyWiBoYoifJm-1280-80.png" type="image/png" length="0"></enclosure>
                                                                        <pubDate>Fri, 26 Jun 2026 07:30:00 +0000</pubDate>                                                                                                                                <updated>Sun, 28 Jun 2026 21:25:12 +0000</updated>
                                                                                                                                            <category><![CDATA[Kitchen &amp; Dining]]></category>
                                                    <category><![CDATA[Home]]></category>
                                                    <category><![CDATA[Home Appliances]]></category>
                                                                                                                    <dc:creator><![CDATA[ Lindsay Handmer ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/wW9vhn8B3SBkfvtiTdYrCS.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/png" url="https://cdn.mos.cms.futurecdn.net/2pkFifsdZnHyWiBoYoifJm-1280-80.png">
                                                            <media:credit><![CDATA[Woolworths]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Wools Cookware Credit Promotion screenshot and Will stocks last? banner]]></media:description>                                                            <media:text><![CDATA[Wools Cookware Credit Promotion screenshot and Will stocks last? banner]]></media:text>
                                <media:title type="plain"><![CDATA[Wools Cookware Credit Promotion screenshot and Will stocks last? banner]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/2pkFifsdZnHyWiBoYoifJm-1280-80.png" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p><strong>TL;DR </strong>Woolworths’ Fissler cookware promotion promised shoppers they could earn and redeem credits for free cookware, but tempers are flaring online over missing stock and credits that can’t be redeemed.</p><p>I asked Woolworths if there was even one store with stock I could call. They never got back to me, and now the entire stock locator is offline.</p><p>So I headed down the rabbit hole looking for answers — and ways to cash in before time runs out. <br><br><strong>Update note:</strong> I've added new details and a timeline showing just how early complaints started. </p><h3 class="article-body__section" id="section-promo-and-stock-timeline"><span>Promo and stock timeline</span></h3><ul><li><strong>Week 1 – March 18:</strong> Promotion starts</li><li><strong>Week 6 – April 25:</strong> Complaints start about lack of stock</li><li><strong>Week 6 – April 27:</strong> Complaints start about accuracy of stock locator</li><li><strong>Week 7 – May 4:</strong> Media reports start on redemption/stock frustration</li><li><strong>Week 8 – May 12:</strong> Halfway point</li><li><strong>Weeks 9 to 13 –</strong> Ongoing stock/rdemption complaints on social media</li><li><strong>Week 14 – June 21:</strong> Cookware display first reported removed</li><li><strong>Week 14 – June 23, 11:59 PM:</strong> Credit earning period ends</li><li><strong>Week 15 – June 24, Midnight:</strong> Redeem-only period begins, Woolworths adds warning majority of stores are out of stock</li><li><strong>Week 15 – June 25:</strong> Woolworths says almost no stock anywhere and takes stock locator offline</li><li><strong>Week 16 – July 7, 23:59:</strong> End of promotion<br>⁤</li><li><a href="#elk-fff4b8d1-ccb6-4650-a0da-1d735006436f">Jump to sources</a>.</li></ul><h3 class="article-body__section" id="section-fissler-or-fizzle"><span>Fissler or fizzle?</span></h3><p>On June 23, Woolworths’ stock checker told me I could redeem Fissler promo cookware at my local store.</p><p>When I arrived, however, there wasn’t even an empty cookware display. While you could still <em>earn</em> cookware credits, it turns out you can’t actually cash them in.</p><p>That was my first clue that my plan for a <em>How to best claim your Woolworths cookware credits before they expire</em> article was not going to be as simple as I thought.</p><p><strong>To recap:</strong> the latest Woolworths purchase promotion is a Fissler cookware offer built around a straightforward deal. Customers earn credits by doing little tasks, like buying certain brands or products, signing up for the rewards app, or simply remembering to scan their rewards card when doing their regular shopping.</p><p>Those credits could be used to ‘buy’ any (or all) of a set of six Fissler-branded cookware items, and there was even a two-week ‘redemption only’ period (which officially started on June 24 and ends on July 7) to make sure anyone earning credits in the last few days or weeks of the promo wouldn’t miss out.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1134px;"><p class="vanilla-image-block" style="padding-top:60.41%;"><img id="QkPtdNchtvHQ4HixGD9K2k" name="Woolworths Cookware Credits Promotion screenshot" alt="Woolworths Cookware Credits Promotion screenshot of promo page" src="https://cdn.mos.cms.futurecdn.net/QkPtdNchtvHQ4HixGD9K2k.png" mos="" align="middle" fullscreen="" width="1134" height="685" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="caption-text">Customers earn credits and cash them in for cookware. What could go wrong? </span><span class="credit" itemprop="copyrightHolder">(Image credit: Woolworths)</span></figcaption></figure><h2 id="there-s-always-a-catch">There’s always a catch</h2><p>The warning signs were all there: back in April, over two weeks before the halfway point, <a href="https://www.reddit.com/r/woolworths/comments/1sww9go/anyone_else_having_trouble_getting_the_free/">complaints were already showing up on Reddit</a> about the lack stock for redeeming cookware. </p><p>We get it. Who among us hasn’t made a few mistakes when running a national cookware campaign?</p><p>Fortunately (at least from Woolworths’ perspective), there was a failsafe in the terms and conditions: the promotion would only run ‘while stocks last’ and could be ended early at any time.</p><p>But when shortages became apparent, Woolworths didn’t bow out gracefully, or even take a pause – at least not publicly. They continued on, leaving customers increasingly frustrated. </p><h2 id="my-journey-into-cookware-madness-begins">My journey into cookware madness begins</h2><p>On the final day of credit earning, I headed into my local store to see how full the cookware display was, trying to get an idea how it would hold up for the two week redemption only period. </p><p>But there wasn't any cookware. The entire cookware display, which should have at least held <em>some</em> stock, had already been dismantled and removed.</p><p>All that was left were banners urging me to buy the right brands to earn more bonus credits to redeem for cookware that was nowhere to be seen.</p><p>I naively asked a staff member in the self-serve checkouts where I could find the cookware.</p><p>There wasn’t any.</p><p>I said the app told me there was stock.</p><p>I got a look of pity.</p><p>I tried to leave, but the exit barriers refused to open. I awkwardly stumbled past them and hurried away, too embarrassed to look back and see if I had done something wrong.</p><h2 id="where-s-the-stock">Where's the stock?</h2><p>Safely back in the digital realm, I found another store with stock and gave them a call.</p><p>No cookware.</p><p>The staff member told me the store hadn’t had any for weeks.</p><p>I kept trying stores where Woolworths’ app cheerfully insisted products were available, but I couldn’t find even one that actually had any cookware.</p><p>Part of the problem, I realised, was that Woolworths’ website and AI chatbot stock checkers didn’t always agree and directed me to different stores.</p><p>There are more than 1,000 stores, Australia-wide, so I’m sure <em>some</em> had stock. There just didn’t seem to be a way to figure out where they were. </p><p>Things only got weirder that night as the clock ticked from June 23 to June 24, and the customer-friendly two-week redemption-only period started.</p><p>At the stroke of midnight, Woolworths slapped a new warning on the cookware promo stating:</p><p><em>“Due to high demand, stock is now exhausted in the following areas: Sydney & Wollongong areas, Melbourne metro, Brisbane metro, Adelaide metro and Northern Rivers.”</em></p><p>I did the maths. By my count, that out-of-stock area covers around 60% of Woolworths stores Australia-wide.</p><p>Yet somehow that mighty stock shortage wasn’t worth warning about one minute earlier, or a day, a week, or a month before, while customers were still being openly encouraged to hustle to earn a few more credits.</p><p>Yeah, I had questions about that.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2048px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Ch4EJTnqRtRLqHgg7XFwik" name="Woolworths Fissler promo" alt="Woolworths Cookware Credits Promotion earn bonus credits" src="https://cdn.mos.cms.futurecdn.net/Ch4EJTnqRtRLqHgg7XFwik.png" mos="" align="middle" fullscreen="" width="2048" height="1152" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="caption-text">Woolworths kept encouraging customers to earn bonus credits right up to the very last minute, even when there didn't seem to be any cookware left to redeem.  </span><span class="credit" itemprop="copyrightHolder">(Image credit: Woolworths)</span></figcaption></figure><h2 id="no-really-where-is-the-stock">No really, where is the stock?</h2><p>I reached out to Woolworths and cut straight to the point. </p><p>Why, I asked, did “while stocks last” appear to line up so neatly with “while customers were still spending money to earn credits” but not “while customers could redeem those credits”?</p><p>Woolworths politely dodged the question and suggested customers could use the stock locator to find places to redeem their credits.</p><p>I even asked if I could get the location of just one store with stock. Somewhere, surely, there had to be a store where staff would be overjoyed to receive a call from someone who wanted the bounty of cookware overflowing their shelves.</p><p>Woolworths said they’d check and get back to me on that.</p><p>They didn’t.</p><p>A day later, the entire Cookware stock checker was taken offline, and Woolworths released a statement that the majority of stores Australia wide were out of stock.</p><p>Customers could earn credits less than two days before and still had 12 days left to redeem them. But Woolworths hadn't ordered stock to actually honour that. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1823px;"><p class="vanilla-image-block" style="padding-top:56.23%;"><img id="yJ4xH6B5DsdEtcKERNFjsj" name="Woolworths fissler_products" alt="Woolworths Cookware Credits Promotion products with question marks" src="https://cdn.mos.cms.futurecdn.net/yJ4xH6B5DsdEtcKERNFjsj.png" mos="" align="middle" fullscreen="" width="1823" height="1025" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Woolworths)</span></figcaption></figure><h2 id="fissler-flop">Fissler flop</h2><p>Now, don’t get me wrong. There are clearly a lot of happy customers, and Woolworths has said that more than 1.8 million cookware products have been claimed. That’s impressive.</p><p>But why had stock started drying up less than halfway into the promotion? </p><p>Why wasn't enough stock ordered to cover the redemption only period in the terms and conditions?<br><br>Woolworths, of course, declined to comment.  </p><p>In hindsight, it turns out the promotion’s cheery “First come, best served!” slogan was actually a warning.</p><p>And that leaves a bad taste not even a secret stash of Fissler cookware could fix.</p><h3 class="article-body__section" id="section-woolworths-cookware-claiming-compendium"><span>Woolworths Cookware Claiming Compendium</span></h3><p>So, where does that leave anyone still holding credits? Is there a way to redeem them?</p><p>If you happen to live somewhere that still has stock, then you might have a chance. With the stock locater offline, your only option is to call around and see. </p><p>Unfortunately, that probably doesn't include anywhere<strong> </strong><del>in the Sydney & Wollongong areas, Melbourne metro, Brisbane metro, Adelaide metro and Northern Rivers</del> much at all really, Australia wide.</p><p><del>If you’re a glutton for punishment, I suggest using the web or app stock checker, as while it was still wrong every time I tried, it's a less hopeful, more up-to-date kind of wrong.</del></p><p><del>And make sure to call the store before you go</del>, but be nice to the staff – it’s not their fault.<br><br><strong>Updated advice: </strong>good luck, as you're going to need it!</p><figure class="van-image-figure pull-left inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:814px;"><p class="vanilla-image-block" style="padding-top:46.81%;"><img id="2UkyGrm5r8DtFp7c7oVfkj" name="Woolworths Cookware Credits Promotion slogan" alt="Woolworths Cookware Credits Promotion First come best served" src="https://cdn.mos.cms.futurecdn.net/2UkyGrm5r8DtFp7c7oVfkj.png" mos="" align="left" fullscreen="" width="814" height="381" attribution="" endorsement="" class="pull-leftinline"></p></div></div><figcaption itemprop="caption description" class="pull-left inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Woolworths)</span></figcaption></figure><h2 id="timeline-sources">Timeline sources</h2><p>These are the earliest reports about stock and other issues I can find so far. </p><p><strong>April 25 ~6 weeks in</strong> — <a href="https://www.facebook.com/reel/1599587854484876" target="_blank">earliest social media complaint we have seen about stock issues in the comments on this Facebook reel from Woolworths</a>. A follow up comment on April 27 flags the stock location issue –  saying: <em>"I’ve tried 4 stores today, 3 said in stock and not there."</em><br><br><strong>April 27 ~6 weeks in</strong> — <a href="https://www.reddit.com/r/woolworths/comments/1sww9go/anyone_else_having_trouble_getting_the_free/">this Reddit post</a> has further claims about lack of stock, as well as one user saying (on April 29) that the stock locator is not accurate. <br><br><strong>May 4 ~7 weeks in</strong> — <a href="https://www.nine.com.au/lifestyle/money/woolworths-fissler-cookware-promotion-customers-having-trouble-finding-items-20260402-p5ztwf.html">Nine News story</a> covering the early stock problems and customer frustrations. </p><p><strong>June 21 ~14 weeks in</strong> — <a href="https://www.reddit.com/r/australia/comments/1u2q430/woolworths_non_existent_cookware_promo/osw5fu3/">a user adds a comment on a Reddit post</a> noting that their stores cookware display had been removed that day.<br><br><strong>Woolworths </strong><a href="https://wowprodmediaaae.blob.core.windows.net/content/banners/cookware-tncs.pdf"><strong>terms and conditions PDF </strong></a><strong>that includes promotion dates. </strong><br><br><strong>Other sources and discussion:</strong></p><ul><li><a href="https://www.facebook.com/groups/305820275956380">Everyday rewards discussion group — Facebook</a></li><li><a href="https://www.reddit.com/r/woolworths/comments/1t2z753/whats_the_point_exactly/">What’s the point exactly? — Reddit</a></li><li><a href="https://www.reddit.com/r/australia/comments/1u2q430/woolworths_non_existent_cookware_promo/">Woolworths non-existent cookware promo — Reddit</a></li><li><a href="https://www.reddit.com/r/woolworths/comments/1uf2x0d/hi_im_not_complaining_but_thought_it_was_possible/">Hi, I’m not complaining but… — Reddit</a></li><li><a href="https://www.reddit.com/r/AussieFrugal/comments/1ue95rg/psa_claim_fissler_cookware_from_woolies_before_7/">PSA: Claim Fissler cookware from Woolies before 7 — Reddit</a></li><li><a href="https://www.facebook.com/woolworths/posts/dont-let-your-credits-go-to-waste-nows-your-time-%EF%B8%8Fredeem-your-free-premium-cookw/990196593352230/">Don’t let your credits go to waste post — Facebook</a></li><li><a href="https://www.facebook.com/woolworths/videos/dont-let-your-credits-go-to-waste-nows-your-time-%EF%B8%8Fredeem-your-free-premium-cookw/1638738554078730/">Don’t let your credits go to waste video — Facebook</a></li><li><a href="https://www.facebook.com/woolworths/posts/got-cookware-credits-built-up-redeem-for-free-cookware-now-before-its-too-latetc/1006447198393836/">Got Cookware Credits built up? — Facebook</a></li><li><a href="https://www.facebook.com/woolworths/posts/looking-for-your-free-premium-cookware-credits-dont-worry-weve-got-youfinding-yo/983264344045455/">Looking for your free premium cookware credits? — Facebook</a></li><li><a href="https://www.facebook.com/groups/305820275956380/posts/766844269853976/">Leftover credits discussion — Facebook group</a></li></ul><h2 id="still-unhappy-about-your-unredeemable-cookware-credits">Still unhappy about your unredeemable cookware credits?</h2><p>We hear you. Woolworths seems determined to try to ignore the whole fiasco, but that doesn't seem very likely, considering our tools show Google searches for <em>Woolworths cookware credits</em> have jumped up over 400,000%. </p><p>This is especially bold considering Woolworths is currently waiting to find out the outcome of an <a href="https://www.accc.gov.au/media-release/accc-takes-woolworths-and-coles-to-court-over-alleged-misleading-prices-dropped-and-down-down-claims">ACCC misleading-discounts case</a> that was heard in April and May. </p><p>Plus, there's extra scrutiny right now from regulators, as from July 1, 2026, <a href="https://ministers.treasury.gov.au/ministers/jim-chalmers-2022/media-releases/banning-supermarket-price-gouging-protect-australian">new laws banning supermarket price gouging</a> go into effect to protect Australian shoppers. </p><h2 id="does-saying-while-stocks-last-make-it-ok-for-cookware-to-run-out-before-the-end-of-the-promotion">Does saying "while stocks last" make it OK for cookware to run out before the end of the promotion?</h2><p>In <a href="https://wowprodmediaaae.blob.core.windows.net/content/banners/cookware-tncs.pdf">the terms and conditions PDF</a>, Woolworths states: "The Promotion runs from 00:01 AEDT on 18 March 2026 until 23:59 AEST on 7 July 2026 or until stock of Cookware is exhausted".</p><p>Only a court can decide if the promotion was actually misleading, but I would certainly feel misled if Woolworths kept encouraging customers to earn more credits past the point they could reasonably redeem them. </p><p>Woolworths can see (or reasonably should have checked) customer credit balances and remaining stock numbers and thus know when outstanding customer credits were enough to redeem all the remaining stock. </p><p>That's when I would say that, yes, c<em>ookware is exhausted</em>, and Woolworths should have stopped credits from being earned and focused on helping customers redeem cookware. </p><p>Or, just order more stock!</p><p>Even just allowing customers to redeem credits online and have the products shipped directly to them would have helped prevent any backlash. </p><p>But was the promotion actually misleading? We'll have to see if the ACCC weighs in to find out. </p><h3 class="article-body__section" id="section-make-a-complaint"><span>Make a complaint</span></h3><p>Woolworths doesn't have a published complaints handling process I can see, so your best bet is to <a href="https://www.woolworths.com.au/shop/discover/about-us/contact-us">reach out through one of the contact methods</a> or use the <a href="https://www.woolworths.com.au/shop/help/feedback">feedback and enquiry form online</a>. </p><p>If that doesn’t get you anywhere, these are the official places to try next. </p><p><a href="https://www.accc.gov.au/about-us/contact-us-or-report-an-issue"><strong>ACCC — report a consumer issue</strong></a><strong>:</strong> lodge a report here if you think Woolworths’ lack of cookware stock is an issue that should be investigated. Reports about these types of promotions is how the ACCC knows when there is a problem.<br><br><strong>For state specific help:</strong><br><br><a href="https://www.nsw.gov.au/departments-and-agencies/fair-trading/complaints-and-enquiries/how-nsw-fair-trading-handles-general-complaints/general-complaint-form"><strong>NSW Fair Trading — general complaint form</strong></a><strong>:</strong> NSW customers can lodge a general complaint if they’ve already tried to resolve it with Woolworths.</p><p><a href="https://www.consumer.vic.gov.au/contact-us/resolve-your-problem"><strong>Consumer Affairs Victoria — resolve your problem</strong></a><strong>: </strong>Victorian customers can use this page to work out whether to make a general complaint and what information to provide.</p><p><a href="https://www.qld.gov.au/law/your-rights/consumer-rights-complaints-and-scams/make-a-consumer-complaint"><strong>Queensland Office of Fair Trading — make a consumer complaint</strong></a><strong>: </strong>Queensland customers can use this page to start a complaint after trying to sort it out with the business.</p><p><a href="https://www.cbs.sa.gov.au/online-forms"><strong>SA Consumer and Business Services — online forms</strong></a><strong>:</strong> South Australian customers can use CBS’s online form to complain about a business or product.</p><p><a href="https://www.consumerprotection.wa.gov.au/complaints"><strong>WA Consumer Protection — complaints</strong></a><strong>:</strong> Western Australian customers can use the complaint form for a problem with a product or service.</p><p><a href="https://www.cbos.tas.gov.au/topics/products-services/problems/resolve-problem-complaint/complaint-process"><strong>Consumer, Building and Occupational Services Tasmania — complaints</strong></a><strong>:</strong> Tasmanian customers can use this page to work through the complaint process and contact CBOS if needed.</p><p><a href="https://www.accesscanberra.act.gov.au/consumer-rights/get-help-with-a-consumer-issue"><strong>Access Canberra — get help with a consumer issue</strong></a><strong>:</strong> ACT customers can use this page for consumer-protection help and complaints.</p><p><a href="https://consumeraffairs.nt.gov.au/for-consumers/consumer-conciliation-request"><strong>NT Consumer Affairs — consumer conciliation request</strong></a><strong>:</strong> Northern Territory customers can use this free conciliation service to ask for help resolving a dispute with a business.</p><h3 class="article-body__section" id="section-woolworths-response"><span>Woolworths' response</span></h3><p>I asked Woolworths a <em>lot</em> of questions about the Fissler cookware promotion, none of which were directly answered. They did give me a little bit of background information, but not anything that I am allowed to quote, or that answered my questions in a meaningful way.</p><p>Here are some of the things I asked:</p><ul><li>Could customers rely on the online and app stock locator, why was it showing stock at stores that said they had none, and why was the locator later shut down?</li><li>Were customers expected to call stores directly to check stock, and what official advice did Woolworths have for finding remaining cookware?</li><li>Which stores still had stock, how much stock was available, and were stores still receiving cookware deliveries?</li><li>How much stock did Woolworths expect to have available during the two-week redemption-only period?</li><li>Why did stock appear to have dried up so far ahead of the end of the promotion?</li><li>What steps did Woolworths take to ensure customers who earned credits before the end of the promotion could redeem them during the redemption-only period?</li><li>Why did Woolworths continue encouraging customers to earn bonus cookware credits when stock appeared difficult or impossible to redeem?</li><li>Why did Woolworths not end, suspend or modify the promotion early when stock shortages became apparent?</li><li>Why were customers only warned about exhausted stock in major areas after the earning period had ended?</li><li>Would Woolworths extend the redemption period, offer online redemption, provide rainchecks, or otherwise help customers who could not find stock?</li><li>How many cookware credits did Woolworths expect would go unredeemed?</li><li>Did Woolworths receive supplier funding, placement fees, advertising contributions or other commercial benefits from participating brands?</li><li>Did commercial agreements with participating brands influence Woolworths’ decision not to end, suspend or modify the earn period before June 23?</li><li>Did Woolworths consider the promotion transactional, and how did it characterise the value of credits customers had already earned?</li><li>Has Woolworths ended the promotion itself, or only shut off the stock locator?</li></ul><h2 id="statements-from-woolworths">Statements from Woolworths</h2><p>Woolworths made a number of public statements, which I have included below. </p><p><strong>Woolworths’ first statement</strong></p><p>“We’ve been absolutely blown away by the response to our latest cookware program, with customers bringing home over 1.8 million pieces to date.</p><p>“While we try to predict demand as accurately as possible, the love for this specific range completely exceeded our expectations. We understand how disappointing it is to miss out on a piece you've had your eye on, and appreciate everyone's understanding.</p><p>“While the Fissler range is strictly ‘while stocks last,’ we want to help customers redeem their credits on the remaining items. Before heading into a store, we highly recommend checking the live stock locator in the Woolworths app to see what is available nearby.”</p><p></p><p><strong>Woolworths’ updated statement</strong></p><p>“We’ve been overwhelmed by the response to our latest cookware program, with customers bringing home over 1.8 million Fissler cookware products to date.</p><p>“While we tried to predict demand as accurately as possible when ordering these products based on previous collectables campaigns, demand in the final weeks of this promotion was genuinely unprecedented.</p><p>“Stock is now very limited, but we do still have some items available across our store network.</p><p>“We understand the frustration from some customers who missed out on their preferred items, and we thank our community for their enthusiasm and patience as our store teams distribute the final remaining pieces of stock.”</p><p><strong></strong></p><p><strong>Woolworths’ latest statement</strong></p><p>After Woolworths shut down the online and app stock locator, the company provided another statement:</p><p>“The final rush for this collection was huge, and it means we've now run out of stock in the vast majority of our stores.</p><p>“We want to thank all of our customers who participated in the campaign and collected over 1.9 million Fissler cookware products. We understand it's disappointing for those who missed out on their preferred items, and we really appreciate everyone’s understanding.”</p><div class="product star-deal"><p><strong>Are you unhappy with the Woolworths cookware promotion? Or do you know a store that still had stock? Let us know in the comments.</strong></p></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ 3 new to Hulu movies you need to stream this weekend (June 26-28) ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/entertainment/hulu/3-new-to-hulu-movies-you-need-to-stream-this-weekend-june-26-28-2026</link>
                                                                            <description>
                            <![CDATA[ Hulu just added a ton of must-watch movies worth watching this weekend. Here are my top 3 picks. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">ZVKcEkovKFvYMseYiHksVH</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/GrKEecZatbpVd3b9zibwtQ-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 25 Jun 2026 17:14:03 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Hulu]]></category>
                                                    <category><![CDATA[Movies]]></category>
                                                    <category><![CDATA[Entertainment]]></category>
                                                    <category><![CDATA[Streaming]]></category>
                                                                                                <author><![CDATA[ malcolm.mcmillan@futurenet.com (Malcolm McMillan) ]]></author>                    <dc:creator><![CDATA[ Malcolm McMillan ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/sSDLEbNEgBXf86HpujaWZ6.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Malcolm McMillan is a Streaming Editor for Tom&#039;s Guide, covering all the latest in streaming TV shows and movies. That means news, analysis, recommendations, reviews and more for just about anything you can watch, including sports! If it can be seen on a screen, he can write about it. &lt;/p&gt;&lt;p&gt;Malcolm has been with Tom&#039;s Guide since June 2022, starting as a staff writer covering breaking news. Since then, he&#039;s transitioned to cover artificial intelligence (AI), A/V tech and VR headsets. Since late 2023 he has almost exclusively covered streaming and entertainment for Tom&#039;s Guide.&lt;/p&gt;&lt;p&gt;Before writing for Tom&#039;s Guide, Malcolm worked as a fantasy football analyst writing for several sites and also had a brief stint working for Microsoft selling laptops, Xbox products and even the ill-fated Windows phone. He is passionate about video games and sports, though both cause him to yell at the TV frequently. He proudly sports many tattoos, including an Arsenal tattoo, in honor of the team that causes him to yell at the TV the most.&lt;/p&gt; ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/GrKEecZatbpVd3b9zibwtQ-1280-80.jpg">
                                                            <media:credit><![CDATA[Hulu; Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Hulu logo on orange film reel background]]></media:description>                                                            <media:text><![CDATA[Hulu logo on orange film reel background]]></media:text>
                                <media:title type="plain"><![CDATA[Hulu logo on orange film reel background]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/GrKEecZatbpVd3b9zibwtQ-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p><strong></strong><a href="https://www.tomsguide.com/entertainment/streaming/hulu"><strong>Hulu</strong></a><strong> </strong>is a great <a href="https://www.tomsguide.com/us/best-streaming-video-services,review-2625.html">streaming service</a> for building your next weekend movie marathon. It regularly adds originals and classics to its library. Plus, because it's owned by Disney, it's the streaming home for new releases from several Disney-owned studios. It even has deals with some other studios to get in new releases before any other service, whether they're produced by Disney or not.</p><p>This weekend, I have three movies recently added to Hulu that are a must-watch. First up is the all-time classic, <strong>"Gladiator,"</strong> which I could re-watch any given weekend. Then, this Saturday, Hulu is adding <strong>"The Creator,"</strong> which is a visually stunning film, even if the story doesn't always work. Finally, you'll want to check out <strong>"Between the Temples,"</strong> a highly-rated comedy-drama that's arriving on Hulu this Sunday.</p><p>Here are the three new to Hulu movies you need to stream this weekend. For more recommendations, check out the full list of <a href="https://www.tomsguide.com/entertainment/hulu/new-on-hulu-in-june-2026-all-the-new-shows-and-movies-to-watch">everything new to Hulu in June 2026</a>.</p><figure class="inline-layout"><fw-embed-feed channel="toms_guide" playlist="gdR2W4" mode="row" player_placement="bottom-right"></fw-embed-feed></figure><a href="https://follow.it/articles-by-malcolm-mcmillan-streaming-editor-tom-s-guide?leanpub" class="button button--medium button--primary">Get the latest from Malcolm in your inbox</a><h2 id="americana-2025">'Americana' (2025)</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/ulZoLec80fs" allowfullscreen></iframe></div></div><p><strong>Genre: </strong>Crime thriller</p><p><strong>What's it about? </strong>"Americana" stars Sydney Sweeney and Paul Walter Hauser as Penny and Lefty. These two attempt to snag a rare Native American ghost shirt, worth a lot on the black market. But they're not the only ones; Ghost Eye (Zahn McClarnon), the leader of a Native American group, wants the shirt as well.</p><p><strong>Why you need to watch it: </strong>This movie isn't flawless, but if you like a gritty crime thriller, it's worth a watch for the performances. Halsey and McClarnon are particularly good, and "Americana" manages to nail its neo-Western vibes, even if the end result is slightly uneven.</p><p><em>Watch </em><a href="https://click.linksynergy.com/fs-bin/click?id=kXQk6*ivFEQ&offerid=966271.482&type=3&subid=0&u1=hawk-custom-tracking" target="_blank" rel="nofollow"><em>"Americana" on Hulu</em></a><em> starting June 26</em></p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-XpmaGe"></div>                            </div>                            <script src="https://kwizly.com/embed/XpmaGe.js" async></script><h2 id="queens-of-the-dead-2025">'Queens of the Dead' (2025)</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/A_gUjCvASN4" allowfullscreen></iframe></div></div><p><strong>Genre: </strong>Zombie comedy</p><p><strong>What's it about? </strong>What happens when a zombie apocalypse breaks out in New York and invades a warehouse party filled with drag queens, clubgoers and more in Brooklyn? "Queens of the Dead" happens.</p><p><strong>Why you need to watch it: </strong>Billed as a comedy, you might be able to handle "Queens of the Dead" even if you don't typically dabble in horror movies. Just know that it's still a zombie movie, and that means guns, guts and gore are still to be expected.</p><p><em>Watch </em><a href="https://click.linksynergy.com/fs-bin/click?id=kXQk6%2aivFEQ&offerid=1589248.206&type=3&subid=0&u1=hawk-custom-tracking" target="_blank" rel="nofollow"><em>"Queens of the Dead" on Hulu</em></a><em> starting June 26</em></p><h2 id="the-creator-2023">'The Creator' (2023)</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/ex3C1-5Dhb8" allowfullscreen></iframe></div></div><p><strong>Genre:</strong> Sci-fi action</p><p><strong>What's it about?</strong> "The Creator" is set in a world where A.I. detonated a nuclear warhead in Los Angeles, causing devastation and sparking a war. 15 years later, the U.S. is still at war with New Asia over the fate of machines. But they're hoping for a breakthrough when they send special forces Sgt. Joshua Taylor (John David Washington) to take down "Nirmata," an A.I. expert who is key to the New Asian resistance.</p><p><strong>Why you should watch it:</strong> This movie looks stunning. The story takes some twists and turns, and is frankly a bit dense when it could stand to be superficial, but it's worth checking out for the visuals alone. Thankfully, it has some must-watch action sequences as well.</p><p><em>Watch </em><a href="https://click.linksynergy.com/fs-bin/click?id=kXQk6%2aivFEQ&offerid=1589248.206&type=3&subid=0&u1=hawk-custom-tracking" target="_blank" rel="nofollow"><em>"The Creator" on Hulu</em></a><em> now</em></p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/entertainment/paramount-plus/3-new-to-paramount-movies-you-need-to-stream-this-weekend-june-26-28-2026">3 new to Paramount+ movies you need to stream this weekend (June 26-28)</a></li><li><a href="https://www.tomsguide.com/entertainment/hbo-max/house-of-the-dragon-finally-delivers-the-epic-battle-ive-been-waiting-for-in-its-season-3-premiere">'House of the Dragon' finally delivers the epic battle I've been waiting for in its season 3 premiere</a></li><li><a href="https://www.tomsguide.com/entertainment/movies/critics-and-audiences-do-not-agree-about-denzels-26-year-old-serial-killer-crime-thriller-movie-so-i-had-to-stream-it-for-myself">Critics and audiences do not agree about Denzel's 26-year-old serial killer crime thriller movie — so I had to stream it for myself</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ 3 new to Paramount+ movies you need to stream this weekend (June 26-28) ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/entertainment/paramount-plus/3-new-to-paramount-movies-you-need-to-stream-this-weekend-june-26-28-2026</link>
                                                                            <description>
                            <![CDATA[ Paramount+ just added a ton of must-watch movies worth watching this weekend. Here are my top 3 picks. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">qKUsHRJ6jqAQGXqyxobzYf</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/VHYx2Wcxxo8zKFkJwNXGta-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 25 Jun 2026 15:09:53 +0000</pubDate>                                                                                                                                <updated>Thu, 25 Jun 2026 15:15:25 +0000</updated>
                                                                                                                                            <category><![CDATA[Paramount Plus]]></category>
                                                    <category><![CDATA[Movies]]></category>
                                                    <category><![CDATA[Entertainment]]></category>
                                                    <category><![CDATA[Streaming]]></category>
                                                                                                <author><![CDATA[ malcolm.mcmillan@futurenet.com (Malcolm McMillan) ]]></author>                    <dc:creator><![CDATA[ Malcolm McMillan ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/sSDLEbNEgBXf86HpujaWZ6.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Malcolm McMillan is a Streaming Editor for Tom&#039;s Guide, covering all the latest in streaming TV shows and movies. That means news, analysis, recommendations, reviews and more for just about anything you can watch, including sports! If it can be seen on a screen, he can write about it. &lt;/p&gt;&lt;p&gt;Malcolm has been with Tom&#039;s Guide since June 2022, starting as a staff writer covering breaking news. Since then, he&#039;s transitioned to cover artificial intelligence (AI), A/V tech and VR headsets. Since late 2023 he has almost exclusively covered streaming and entertainment for Tom&#039;s Guide.&lt;/p&gt;&lt;p&gt;Before writing for Tom&#039;s Guide, Malcolm worked as a fantasy football analyst writing for several sites and also had a brief stint working for Microsoft selling laptops, Xbox products and even the ill-fated Windows phone. He is passionate about video games and sports, though both cause him to yell at the TV frequently. He proudly sports many tattoos, including an Arsenal tattoo, in honor of the team that causes him to yell at the TV the most.&lt;/p&gt; ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/VHYx2Wcxxo8zKFkJwNXGta-1280-80.jpg">
                                                            <media:credit><![CDATA[Paramount+; Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Paramount+ logo on a popcorn background]]></media:description>                                                            <media:text><![CDATA[Paramount+ logo on a popcorn background]]></media:text>
                                <media:title type="plain"><![CDATA[Paramount+ logo on a popcorn background]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/VHYx2Wcxxo8zKFkJwNXGta-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p><a href="https://www.tomsguide.com/entertainment/streaming/paramount-plus"><strong>Paramount+</strong></a> is a great <a href="https://www.tomsguide.com/us/best-streaming-video-services,review-2625.html">streaming service</a> for building your next movie marathon. It adds dozens of movies to the platform each month; it <a href="https://www.tomsguide.com/entertainment/paramount-plus/paramount-just-added-93-new-movies-and-shows-heres-the-5-im-streaming-first-june-1-2026">added 93 new movies and shows in June</a> alone. Many of these are beloved classics or more modern hits, but a few times a month, you even get brand-new movies from Paramount Skydance studios.</p><p>This week, I'm sticking with some more modern masterpieces. At the top of my list is "<strong>The Big Short</strong>," which is a movie I rewatch more than most others. Then, there's "<strong>The Manchurian Candidate</strong>," a 2004 remake of the 1962 political thriller classic, starring Denzel Washington. Finally, I'm keeping things in the thriller genre with "<strong>Witness</strong>," an incredible crime thriller starring Harrison Ford.</p><p>Here are the three new to Paramount+ movies that you need to be streaming this weekend. If you need more recommendations, check out our full guide to <a href="https://www.tomsguide.com/entertainment/paramount-plus/new-on-paramount-in-june-2026-top-movies-and-shows-to-stream-this-month">everything new on Paramount+ in June 2026</a>.</p><figure class="inline-layout"><fw-embed-feed channel="toms_guide" playlist="gdR2W4" mode="row" player_placement="bottom-right"></fw-embed-feed></figure><a href="https://follow.it/articles-by-malcolm-mcmillan-streaming-editor-tom-s-guide?leanpub" class="button button--medium button--primary">Get the latest from Malcolm in your inbox</a><h2 id="the-big-short-2015">'The Big Short' (2015)</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/vgqG3ITMv1Q" allowfullscreen></iframe></div></div><p><strong>Genre: </strong>Biographical comedy-drama</p><p><strong>What's it about? </strong>Set around unpacking the causes of the 2008 financial crisis, "The Big Short" centers on three main groups, starting with Dr. Michael Burry (Christian Bale), who is first among the trio to short the housing market. Through Jared Vennett (Ryan Gosling), this news makes it to Mark Baum (Steve Carell) and his team, who then also start to short the mortgage sector. Finally, there's a duo of young investment bankers mentored by Ben Rickert (Brad Pitt), who also learn of the shorts and decide to join the fray. They all walk away rich while the U.S. economy collapses.</p><p><strong>Why you should watch it: </strong>"The Big Short" is basically three incredible ensemble performances rolled into a single movie, and I love rewatching it, especially when I'm having writer's block. You probably won't watch it for that reason, but you definitely should still watch it.</p><p><em>Watch </em><a href="https://www.paramountplus.com/" target="_blank" rel="nofollow"><em>"The Big Short" on Paramount+</em></a><em> now</em></p><h2 id="the-manchurian-candidate-2004">'The Manchurian Candidate' (2004)</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/Q2c5-L5qBvM" allowfullscreen></iframe></div></div><p><strong>Genre: </strong>Neo-noir political thriller</p><p><strong>What's it about? </strong>"The Manchurian Candidate" stars Denzel Washington as Maj. Bennett Marco. He commanded a unit in the Persian Gulf War that included Sgt. First Class Raymond Shaw (Liev Schreiber) and both of them were captured during a mission, but later escaped. Since the war, Shaw has gone on to become a member of Congress and is now on track to be the next Vice President of the U.S., but Marco starts to uncover a conspiracy regarding their time in Kuwait that could put Shaw's candidacy in jeopardy. </p><p><strong>Why you should watch it: </strong>While the 1962 original is probably the better movie, this 2004 remake is still worth checking out. Besides Denzel and Schreiber, the cast list also includes Meryl Streep, Jon Voight, Jeffrey Wright and a few other familiar faces. It's worth watching for some of their performances alone.</p><p><em>Watch </em><a href="https://www.paramountplus.com/" target="_blank" rel="nofollow"><em>"The Manchurian Candidate" on Paramount+</em></a><em> now</em></p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-eAwdMO"></div>                            </div>                            <script src="https://kwizly.com/embed/eAwdMO.js" async></script><h2 id="witness-1985">'Witness' (1985)</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/T9AtV8FIzFI" allowfullscreen></iframe></div></div><p><strong>Genre:</strong> Neo-noir crime thriller</p><p><strong>What's it about?</strong> "Witness" stars Harrison Ford as Det. Cpt. John Book, a member of the Philadelphia Police Department. He's been tasked with protecting Samuel, a young Amish boy who witnessed the murder of an undercover cop, and it turns out the perpetrator is another officer. To keep him safe, Harrison returns with Samuel to Amish country, and the members of the community are less than thrilled to have an outsider among them.</p><p><strong>Why you should watch it: </strong>This crime thriller was a hit with critics and at the box office. It scored eight Oscar nominations, including one for Ford's performance. It's a must-watch now that you can stream it on Paramount+.</p><p><em>Watch </em><a href="https://www.paramountplus.com/" target="_blank" rel="nofollow"><em>"Witness" on Paramount+</em></a><em> now</em></p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/entertainment/paramount-plus/michael-fassbender-shines-in-the-agency-season-2-which-is-as-twisted-a-spy-thriller-as-ever">Michael Fassbender shines in ‘The Agency’ season 2, which is as twisted a spy thriller as ever</a></li><li><a href="https://www.tomsguide.com/entertainment/hbo-max/house-of-the-dragon-finally-delivers-the-epic-battle-ive-been-waiting-for-in-its-season-3-premiere">'House of the Dragon' finally delivers the epic battle I've been waiting for in its season 3 premiere</a></li><li><a href="https://www.tomsguide.com/entertainment/movies/critics-and-audiences-do-not-agree-about-denzels-26-year-old-serial-killer-crime-thriller-movie-so-i-had-to-stream-it-for-myself">Critics and audiences do not agree about Denzel's 26-year-old serial killer crime thriller movie — so I had to stream it for myself</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ 3 new to Netflix thriller movies to watch this week — including one of my favorite mystery movies of all time (June 25-July 1) ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/entertainment/netflix/3-new-to-netflix-thriller-movies-to-watch-this-week-including-one-of-my-favorite-mystery-movies-of-all-time-june-25-july-1</link>
                                                                            <description>
                            <![CDATA[ Thriller fans won't want to miss these recently-added Netflix movies, including David Fincher's psychological-mystery masterpiece. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">2qXrbe28Y3PBH86JHzjWik</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/LRpAcw7W9N25fT6aoxbMxj-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 25 Jun 2026 09:23:29 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Netflix]]></category>
                                                    <category><![CDATA[Entertainment]]></category>
                                                    <category><![CDATA[Streaming]]></category>
                                                                                                <author><![CDATA[ rory.mellon@futurenet.com (Rory Mellon) ]]></author>                    <dc:creator><![CDATA[ Rory Mellon ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/5Rv6LtQXMj5JB4Eu8Lt4Sn.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/LRpAcw7W9N25fT6aoxbMxj-1280-80.jpg">
                                                            <media:credit><![CDATA[Netflix; Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Netflix on a futuristic hyper light background]]></media:description>                                                            <media:text><![CDATA[Netflix on a futuristic hyper light background]]></media:text>
                                <media:title type="plain"><![CDATA[Netflix on a futuristic hyper light background]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/LRpAcw7W9N25fT6aoxbMxj-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Netflix clearly knows that many of its subscribers love a good thriller movie. The genre often dominates Netflix’s top 10 most-watched list, and the big red <a href="https://www.tomsguide.com/us/best-streaming-video-services,review-2625.html">streaming service </a>regularly adds additional thriller movies to its library to keep subscribers on the edge of their seats.</p><p>This week is no exception, with the first wave of July content landing, there are thrillers aplenty to add to your watchlist. From an ambitious drama set across two periods, to an acclaimed flick from director David Fincher, which I’d label a real modern masterpiece. There’s also an overlooked crime thriller that explores the opioid crisis from multiple perspectives. </p><p>If you’re craving some new to Netflix thrillers this week, you’ve come to the right place. I’ve combed through the latest arrivals and picked out a handful that you won’t want to miss.</p><h3 class="article-body__section" id="section-3-new-to-netflix-thrillers-to-watch-this-week"><span>3 new to Netflix thrillers to watch this week</span></h3><h2 id="in-the-hand-of-dante-2026">‘In the Hand of Dante’ (2026)</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/cXA3Zgsky18" allowfullscreen></iframe></div></div><p>“In the Hand of Dante” is an ambitious dramatic thriller that tells an epic story, set across two time periods over a chunky 153-minute runtime. At its center is Oscar Isaac, who plays two roles: a New York author in the modern day and the famed Italian poet Dante Alighieri in the 14th century. Adding yet another wrinkle to the tapestry, the NYC scenes are presented in stark black-and-white, while the historical sequences are in full color. </p><p>Based on the novel by Nick Tosches, Isaac plays a fictional version of Tosches himself, who is recruited by the New York City mob to verify that a copy of Dante’s “The Divine Comedy” was written in the poet’s own hand, making it priceless. Interspersed with this crime odyssey are 14th-century sequences focused on Dante’s life. The movie also stars Gal Gadot, Gerard Butler, John Malkovich, Martin Scorsese, Al Pacino and Jason Momoa. </p><p><em><strong>Watch </strong></em><a href="https://www.netflix.com/title/82623388" target="_blank" rel="nofollow"><em><strong>"In The Hand of Dante" on Netflix</strong></em></a><em><strong> now</strong></em></p><h2 id="gone-girl-2014">'Gone Girl' (2014)</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/2-_-1nJf8Vg" allowfullscreen></iframe></div></div><p>“Gone Girl” isn’t just one of the best mystery thrillers of the 2010s but one of the genre’s very best, period. Based on Gillian Flynn’s best-selling novel and directed by David Fincher, who is something of a thriller mastermind, having also helmed ‘90s classics “Seven” and “Fight Club,” it’s gripping from the start with a real sense of momentum and a mid-movie twist that will leave your jaw on the floor. “Gone Girl” is the modern thriller others must measure up to, and one of my favorite movies of the 21st century.</p><p>On the day of their fifth wedding anniversary, Nick Dunne (Ben Affleck) returns home to find that his wife, Amy (Rosamund Pike), is missing. What follows is a police investigation to find Amy, which quickly becomes national news. But while the media is initially sympathetic to Nick’s plight, as Amy’s absence continues without a culprit identified, the lens shifts to Nick, and he becomes the prime suspect. Did Nick kill "Amazing" Amy?</p><p><em><strong>Watch </strong></em><a href="https://www.netflix.com/title/70305893" target="_blank" rel="nofollow"><em><strong>"Gone Girl" on Netflix </strong></em></a><em><strong>starting July 1</strong></em></p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-XZjz1X"></div>                            </div>                            <script src="https://kwizly.com/embed/XZjz1X.js" async></script><h2 id="crisis-2021">‘Crisis’ (2021)</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/6IY5-IALivk" allowfullscreen></iframe></div></div><p>“Crisis” was a movie that came and went upon release, making little impression on critics or audiences. That’s a tad surprising when you consider its stacked cast list with Gary Oldman, Evangeline Lilly, Greg Kinnear, Michelle Rodriguez, Luke Evans and Lily-Rose Depp. It also features Armie Hammer, though the inclusion of the controversial actor may not have helped its marketability. Anyway, with this crime thriller flick hitting Netflix at the start of July, perhaps it’ll find the wider viewership that it didn’t manage to score in theaters half a decade ago.  </p><p>Based around the Fentanyl crisis, it explores multiple perspectives, including the leader of a criminal operation, a mother battling addiction while also hunting for answers about her missing son, a researcher working for a pharmaceutical company launching a new drug, and more POVs. “Crisis” uses the opioid epidemic as the backdrop to explore several complex characters. Their stories eventually collide in unexpected ways. </p><p><em><strong>Watch '</strong></em><a href="https://www.netflix.com/title/81410837" target="_blank" rel="nofollow"><em><strong>Crisis' on Netflix</strong></em></a><em><strong> starting July 1</strong></em></p><figure class="inline-layout"><fw-embed-feed channel="toms_guide" playlist="gdR2W4" mode="row" player_placement="bottom-right"></fw-embed-feed></figure><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/entertainment/netflix/new-on-netflix-in-june-2026-5-best-movies-and-shows-to-stream-plus-full-release-list#section-everything-new-on-netflix-in-june-2026">New on Netflix in June 2026</a></li><li><a href="https://www.tomsguide.com/entertainment/netflix/3-must-stream-netflix-movies-about-to-be-removed-in-june-2026-including-a-mark-wahlberg-disaster-thriller-based-on-a-true-story">Must-watch Netflix movies leaving in June 2026</a></li><li><a href="https://www.tomsguide.com/entertainment/netflix/5-best-netflix-movies-about-aliens-to-stream-now">5 best Netflix movies about aliens to stream now</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ 10 best summer movies of the decade, ranked ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/entertainment/movies/10-best-summer-movies-of-the-decade-ranked</link>
                                                                            <description>
                            <![CDATA[ A ranked list of the 10 best summer movies of the past decade, from sun-soaked coming-of-age stories and breezy romances that capture the feeling of summer. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">uzuKeRPqdX86PLMtq56BVg</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/vSygXG5cZUFKRDkSqdXE6b-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 25 Jun 2026 04:01:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Movies]]></category>
                                                    <category><![CDATA[Entertainment]]></category>
                                                                                                <author><![CDATA[ alix.blackburn@futurenet.com (Alix Blackburn) ]]></author>                    <dc:creator><![CDATA[ Alix Blackburn ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/8UxyT2McanNFLYwQ6wC7di.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/vSygXG5cZUFKRDkSqdXE6b-1280-80.jpg">
                                                            <media:credit><![CDATA[Amazon MGM Studios]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[The Challengers poster features a large image of Zendaya wearing sunglasses that reflect two tennis players]]></media:description>                                                            <media:text><![CDATA[The Challengers poster features a large image of Zendaya wearing sunglasses that reflect two tennis players]]></media:text>
                                <media:title type="plain"><![CDATA[The Challengers poster features a large image of Zendaya wearing sunglasses that reflect two tennis players]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/vSygXG5cZUFKRDkSqdXE6b-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Summer movies aren’t defined by when they’re released, but by how they <em>feel</em>. Over the past decade, filmmakers have delivered plenty of films that capture the energy of summer. From coming-of-age stories and road trips to holidays, these films capture the many sides of summer on screen.</p><p>Now that we have just entered the <em>very </em>hot season, it’s the perfect time to lean into films that match this time of year. Not everyone will be staying in to watch movies in the heat, but for those who enjoy a warm evening watch, these summer-set stories really hit differently in the middle of the season.</p><p>Here, we’re ranking the 10 best summer movies of the decade that capture the feeling of summer in different ways.</p><figure class="inline-layout"><fw-embed-feed channel="toms_guide" playlist="gdR2W4" mode="row" player_placement="bottom-right"></fw-embed-feed></figure><h2 id="10-in-the-heights-2021">10. ‘In the Heights’ (2021)</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/U0CL-ZSuCrQ" allowfullscreen></iframe></div></div><p>While it sits at the bottom of this incredibly competitive list, Jon M. Chu’s adaptation of Lin-Manuel Miranda's musical is a massive feat of joy. “In the Heights” is an explosion of color, community, and seriously impressive choreography. The technical ambition of the musical numbers (especially the dancing on the side of an apartment building and the public pool sequence) makes it a blast to watch. </p><p>Usnavi (Anthony Ramos) is a bodega owner who dreams of returning to the Dominican Republic while navigating life in his close-knit neighbourhood. Over the course of a few summer days, the story follows him and those around him as they balance work and relationships. These include Nina (Leslie Grace) returning home from college with uncertain plans for the future, Vanessa (Melissa Barrera) pursuing a career in fashion, and Benny working at a local taxi dispatch company. </p><p><em><strong>Buy/rent on </strong></em><a href="https://www.amazon.com/Heights-Anthony-Ramos/dp/B099D8TXL2" target="_blank" rel="nofollow"><em><strong>Amazon</strong></em></a></p><h2 id="9-spider-man-homecoming-2017">9. ‘Spider-Man: Homecoming’ (2017)</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/rk-dF1lIbIg" allowfullscreen></iframe></div></div><p>“Spider-Man: Homecoming” is arguably the best of the live-action MCU “Spider-Man” films (so far) precisely because it refuses to be an apocalyptic superhero epic. Instead, it is a John Hughes-style high school movie that just happens to have web-swinging. Tom Holland essentially plays the frantic energy of a kid just waiting for summer break. Plus, as a fun fact, the film’s working title during production was reportedly “The Summer of George.”</p><p>After helping the Avengers in Germany, Peter Parker (Tom Holland) returns to Queens and tries to manage high school life and duties as Spider-Man. Eager to prove himself worthy of becoming a full-fledged Avenger, he spends his time stopping small-time crimes while keeping his superhero identity a secret from most of his classmates. When he discovers a group of criminals selling advanced weapons created from alien technology, Peter begins investigating despite warnings from his mentor, Tony Stark (Robert Downey Jr.). </p><p><em><strong>Watch on </strong></em><a href="https://www.disneyplus.com/browse/entity-d285316b-e1ea-4b50-933a-bb5fd13549c1" target="_blank" rel="nofollow"><em><strong>Disney+</strong></em></a></p><h2 id="8-booksmart-2019">8. ‘Booksmart’ (2019)</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/VjGJm3wV5-I" allowfullscreen></iframe></div></div><p>Olivia Wilde’s directorial debut is one of the funniest high school comedies ever made. At the absolute core of the movie is a refreshing plot centered around female best friendship. Instead of the typical teen-movie drama involving jealousy or competing over love interests, the two leads share a fiercely supportive bond. Their platonic chemistry and hilarious banter give the entire movie its warmth and emotional heartbeat. </p><p>On the eve of their high school graduation, best friends Molly (Beanie Feldstein) and Amy (Kaitlyn Dever) realize that many of their classmates managed to get into top colleges while still enjoying a social life. Determined not to leave high school with regrets, the pair set out to attend a huge graduation party and fit four years of missed experiences into one unforgettable night. Their plans quickly turn into chaos as they attend multiple parties and have some awkward run-ins with classmates.</p><p><em><strong>Buy/rent on </strong></em><a href="https://www.amazon.com/Booksmart-Kaitlyn-Dever/dp/B07T8KSZSH" target="_blank" rel="nofollow"><em><strong>Amazon</strong></em></a></p><h2 id="7-challengers-2024">7. ‘Challengers’ (2024)</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/AXEK7y1BuNQ" allowfullscreen></iframe></div></div><p>“Challengers” was a huge hit when it first came out, and it only felt like yesterday when this sports drama blew up. I think we can all agree this intense film operates on pure cinematic adrenaline, thanks to its framing of the tennis court as a psychological battleground where ambition and manipulation completely collide. It channels the heavy July humidity and turns it into a sweaty, high-energy experience driven by loud club music and constant friction between the characters.</p><p>Tashi Duncan (Zendaya) is a former tennis prodigy whose playing career is cut short by an injury. Years later, she is coaching her husband, Art Donaldson (Mike Faist), a successful professional player who has fallen into a losing streak. Hoping to rebuild his confidence, Tashi enters him into a lower-level Challenger tournament, where he unexpectedly comes face-to-face with Patrick Zweig (Josh O'Connor), his former best friend and Tashi’s ex-boyfriend. </p><p><em><strong>Watch on </strong></em><a href="https://tubitv.com/movies/100054242/challengers" target="_blank" rel="nofollow"><em><strong>Tubi</strong></em></a></p><h2 id="6-midsommar-2019">6. ‘Midsommar’ (2019)</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/1Vnghdsjmd0" allowfullscreen></iframe></div></div><p>Being a huge horror fan, I had to include “Midsommar.” It’s not your typical summer movie, given that it’s not a mood-booster and doesn’t make you feel good, but it’s an impressive film, because most of the horror takes place in broad daylight. Directed by Ari Aster, this film pulled off a revolutionary feat in modern horror by actively weaponizing the aesthetic of a beautiful paradise. The ending is a massive emotional purge that will probably leave you on edge, but it’s a truly gripping watch.</p><p>After a devastating family tragedy, Dani (Florence Pugh) joins her boyfriend Christian (Jack Reynor) and his friends on a trip to a remote village in Sweden for a once-in-a-lifetime midsummer festival. Invited by their friend Pelle (Vilhelm Blomgren), the group arrives expecting a relaxing cultural retreat filled with traditional celebrations and local customs. However, as the festival unfolds over several days, they begin witnessing increasingly unusual rituals and unsettling practices carried out by the isolated community. </p><p><em><strong>Watch on </strong></em><a href="https://www.hbomax.com/movies/midsommar/1ce3b54f-7e35-4cdf-a60e-b52b5468ac27" target="_blank" rel="nofollow"><em><strong>HBO Max</strong></em></a></p><h2 id="5-luca-2021">5. ‘Luca’ (2021)</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/mYfJxlgR2jw" allowfullscreen></iframe></div></div><p>It wouldn’t be right if I didn’t include a charming animated flick, and “Luca” is the perfect little summer movie. This is the cinematic equivalent of a refreshing scoop of gelato on a scorching afternoon. While the core narrative tracks a simple summer friendship, the film has earned enduring praise for its deeper meaning about acceptance. It’s a soft and heartwarming escape that focuses on simple, nostalgic childhood moments instead of any big drama.</p><p>Set on the Italian Riviera, “Luca” follows a young sea monster named Luca Paguro (Jacob Tremblay) who becomes fascinated by the world above the ocean's surface. After befriending another sea monster, Alberto (Jack Dylan Grazer), he discovers they can take human form when they are dry and begins exploring the nearby seaside town of Portorosso. There, they meet a girl named Giulia (Emma Berman) and set their sights on winning the town's annual triathlon to earn enough money to buy a Vespa scooter. </p><p><em><strong>Watch on </strong></em><a href="https://www.disneyplus.com/browse/entity-f28b825f-c207-406b-923a-67f85e6d90e0" target="_blank" rel="nofollow"><em><strong>Disney+</strong></em></a></p><h2 id="4-palm-springs-2020">4. ‘Palm Springs’ (2020)</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/CpBLtXduh_k" allowfullscreen></iframe></div></div><p>Something a little different is the romantic sci-fi comedy “Palm Springs,” which premiered at the 2020 Sundance Film Festival, where it broke the historical record for the highest sale in the festival’s history after selling to Neon and Hulu. It also went on to win Best Comedy at the Critics’ Choice Awards and earned multiple Golden Globe nominations. It effectively takes a time-travel formula that audiences thought had been played out and turns it into an endlessly rewatchable classic about the courage it takes to break out of daily loops.</p><p>Nyles (Andy Samberg) is a laid-back wedding guest attending a celebration in the California desert. During the festivities, he forms a connection with Sarah (Cristin Milioti), the bride’s older sister and maid of honor. After a strange incident in the desert, Sarah discovers she is trapped in a time loop, reliving the same wedding day over and over again alongside Nyles. As they repeatedly experience the events of the day, they spend their time exploring different possibilities and trying to understand the unusual situation they find themselves in. </p><p><em><strong>Watch on </strong></em><a href="https://www.hulu.com/movie/palm-springs-f70dfd4d-dbfb-46b8-abb3-136c841bba11" target="_blank" rel="nofollow"><em><strong>Hulu</strong></em></a></p><h2 id="3-barbie-2023">3. ‘Barbie’ (2023)</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/pBk4NYhWNMM" allowfullscreen></iframe></div></div><p>There’s always room on these best summer movie lists for the absolute global cultural phenomenon, “Barbie.” It was the highest-grossing film of 2023 at $1.44 billion worldwide and secured eight Academy Award nominations, including Best Picture. I don’t really need to explain why this is a great summer flick, given how vibrant and fun the movie is. It’s a rare studio blockbuster that manages to be incredibly funny, beautifully nostalgic, and deeply philosophical all at once.</p><p>“Barbie” follows Stereotypical Barbie (Margot Robbie), who lives a seemingly perfect life in Barbieland alongside countless other Barbies and Kens. When she begins experiencing unusual changes in herself, she sets off on a journey to the real world in search of answers. Ken (Ryan Gosling) joins her, and together they arrive in Los Angeles, where they attract the attention of executives from Mattel. With help from Gloria and her daughter, Barbie must decide what comes next.</p><p><em><strong>Watch on </strong></em><a href="https://www.hbomax.com/movies/barbie/80bc4915-c826-499f-9961-b422b17559b6" target="_blank" rel="nofollow"><em><strong>HBO Max</strong></em></a></p><h2 id="2-call-me-by-your-name-2017">2. ‘Call Me by Your Name’ (2017)</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/Z9AYPxH5NTM" allowfullscreen></iframe></div></div><p>Timothée Chalamet initially laid the groundwork for his career with a memorable stint on the television drama “Homeland.” However, his true breakthrough came when he channeled a deeply vulnerable energy into the role of Elio Perlman in Luca Guadagnino’s 2017 romantic drama “Call Me by Your Name.” The Best Picture-nominated film functions as a beautifully lush, sun-drenched summer escape, with Chalamet giving one of his best-ever performances.</p><p>Set in northern Italy in 1983, “Call Me by Your Name” follows 17-year-old Elio Perlman (Timothée Chalamet), who spends the summer at his family’s villa with his parents. His father, a professor, invites a graduate student, Oliver (Armie Hammer), to stay and assist with research. As Oliver settles into the household, Elio and Oliver spend their days exploring nearby towns, reading, swimming, and accompanying Elio’s friends on outings. Over time, the two grow increasingly close during their daily routines together. </p><p><em><strong>Watch on </strong></em><a href="https://www.peacocktv.com/watch-online/movies/call-me-by-your-name/02db7bb6-1585-3eca-a5af-4b631beb0a08" target="_blank" rel="nofollow"><em><strong>Peacock</strong></em></a></p><h2 id="1-aftersun-2022">1. ‘Aftersun’ (2022)</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/G9jOaggGPKQ" allowfullscreen></iframe></div></div><p>Topping this list is the emotional drama “Aftersun,” one of the most overlooked films of the past five years, despite earning an Academy Award nomination for Best Actor. It’s a deeply moving independent drama written and directed by Scottish filmmaker Charlotte Wells, which almost functions as a poetic psychological puzzle. The story switches between a blissful summer vacation at a faded Turkish resort in the late 1990s and the present day, but it’s the relationship between father and daughter that makes it so memorable.</p><p>Sophie (Celia Rowlson Hall) looks back on a holiday she took as a child (Frankie Corio) with her father, Calum (Paul Mescal), at a resort in Turkey. As an adult, she reviews old camcorder recordings and photographs from the trip. The story alternates between Sophie’s memories of the holiday, where she spends time swimming, exploring the resort, attending activities, and observing her father as he tries to make the trip enjoyable. She also pieces together fragments of that period while reflecting on her last days with him and what followed.</p><p><em><strong>Watch on </strong></em><a href="https://tubitv.com/es-us/movies/100047084/aftersun" target="_blank" rel="nofollow"><em><strong>Tubi</strong></em></a></p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-evL0lO"></div>                            </div>                            <script src="https://kwizly.com/embed/evL0lO.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/entertainment/streaming/5-best-movies-like-voicemails-for-isabelle-to-stream-now">5 best movies like ‘Voicemails for Isabelle’ to stream now</a></li><li><a href="https://www.tomsguide.com/entertainment/hbo-max/hbo-max-just-added-glen-powells-box-office-flop-thriller-but-you-should-give-it-a-chance-this-week">HBO Max just added Glen Powell’s box-office flop thriller</a></li><li><a href="https://www.tomsguide.com/entertainment/movies/leaked-avengers-doomsday-clip-hints-at-massive-mcu-moment-but-it-might-be-a-fake">Leaked 'Avengers: Doomsday' clip hints at massive MCU moment</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ ‘Supergirl’ review: Rough around the edges, but this space adventure is a blast ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/entertainment/movies/supergirl-review-rough-around-the-edges-but-this-space-adventure-is-a-blast</link>
                                                                            <description>
                            <![CDATA[ “Supergirl” is the newest movie in the DCU, following Kara Zor-El, a hardened Kryptonian survivor as she journeys across space on a brutal revenge mission. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">z2R4VfQRHCZjhutEtCdsy8</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/7bSxw3AdGPCEvfK8opnZj3-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 24 Jun 2026 16:00:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Movies]]></category>
                                                    <category><![CDATA[Entertainment]]></category>
                                                                                                <author><![CDATA[ alix.blackburn@futurenet.com (Alix Blackburn) ]]></author>                    <dc:creator><![CDATA[ Alix Blackburn ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/8UxyT2McanNFLYwQ6wC7di.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/7bSxw3AdGPCEvfK8opnZj3-1280-80.jpg">
                                                            <media:credit><![CDATA[Warner Bros. Pictures]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Milly Alcock as Kara Zor-El / Supergirl in &quot;Supergirl&quot; movie (2026)]]></media:description>                                                            <media:text><![CDATA[Milly Alcock as Kara Zor-El / Supergirl in &quot;Supergirl&quot; movie (2026)]]></media:text>
                                <media:title type="plain"><![CDATA[Milly Alcock as Kara Zor-El / Supergirl in &quot;Supergirl&quot; movie (2026)]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/7bSxw3AdGPCEvfK8opnZj3-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>It’s been just under a year since James Gunn’s “Superman” reboot launched the DCU, and now we’re getting another major addition to the franchise, this time centred on the iconic heroine Supergirl. Starring “House of the Dragon” breakout Milly Alcock as Kara Zor-El, the film is heavily based on the critically acclaimed 2021 eight-issue comic miniseries "Supergirl: Woman of Tomorrow." Moving away from the traditional Earth-bound superhero formula, the movie launches the character into a rugged, cosmic road trip across the stars. </p><div  class="fancy-box"><div class="fancy_box-title">Tom's Guide Verdict: 'Supergirl'</div><div class="fancy_box_body"><p class="fancy-box__body-text"><ul><li><strong>Rating:</strong> 3.5/5 stars</li><li><strong>Verdict:</strong> A chaotic, space-faring Supergirl adventure that echoes “Guardians of the Galaxy” in tone but carves its own rougher path. Despite weak CGI and a rushed, undercooked story, Kara’s emotionally grounded journey delivers surprising heart, driven by trauma, teamwork, and a desperate mission to save Krypto.</li><li><strong>Where to watch: </strong>"Supergirl" drops in theaters on June 26</li></ul></p></div></div><p>“Supergirl” has been one of the most anticipated movies of the summer. James Gunn has noted that Ana Nogueira’s script was so strong that it jumped ahead of other DC projects in development, which immediately raised expectations ahead of its release. After seeing the trailer, I also picked up clear “Guardians of the Galaxy” vibes. And then there’s Krypto, the super-powered canine companion who brings both heart and comic relief to Kara’s rugged space journey. There are a lot of interesting components here worth getting excited about.</p><p>Having attended an early screening of “Supergirl,” it's obvious the studio is playing it relatively safe with this one. Still, a lack of massive risks isn’t always an issue when the final product is this much fun. But that doesn’t mean “Supergirl” is flawless.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-W3wvJW"></div>                            </div>                            <script src="https://kwizly.com/embed/W3wvJW.js" async></script><h2 id="supergirl-delivers-a-space-faring-twist-on-the-superhero-origin">‘Supergirl’ delivers a space-faring twist on the superhero origin</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="CBuBs2L2bx7mKNxcYhP99M" name="Supergirl" alt="Milly Alcock as Kara Zor-El / Supergirl and Matthias Schoenaerts as Krem in "Supergirl" movie (2026)" src="https://cdn.mos.cms.futurecdn.net/CBuBs2L2bx7mKNxcYhP99M.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Parisa Taghizadeh / Warner Bros. Pictures)</span></figcaption></figure><p>One thing I was most looking forward to in “Supergirl” is how much it reminded me of “Guardians of the Galaxy,” as a cosmic space adventure that leans away from shiny, pristine sci-fi. The film opens inside Kara’s messy spaceship, with Krypto being his usual chaotic self, leaving a trail of destruction in his wake (including peeing on a newspaper about Clark Kent), before waking up a very hungover Kara. The opening makes it clear she’s using her birthday week as an excuse to drink, rather than confronting her heavy dose of trauma.</p><p>“Supergirl” doesn’t waste time introducing Ruthye (Eve Ridley), a revenge-driven young girl who is determined to kill space pirate Krem (Matthias Schoenaerts) after he commits brutal violence against her family. When Ruthye tracks down a vacationing, heavily intoxicated Supergirl to ask for help, Krem ambushes them and shoots Krypto with a poisoned arrow before fleeing into deep space. To save Krypto’s life, Kara and Ruthye are forced to team up and pursue Krem across the galaxy, uncovering the horrific trail of destruction and human trafficking he leaves behind.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Z6FbgEVwZo5o2Gojn5kaPc" name="Supergirl" alt="Eve Ridley as Ruthye in "Supergirl" movie (2026)" src="https://cdn.mos.cms.futurecdn.net/Z6FbgEVwZo5o2Gojn5kaPc.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Parisa Taghizadeh / Warner Bros. Pictures)</span></figcaption></figure><p>I’m genuinely thankful that “Supergirl” runs at under two hours. Its shorter runtime, compared to most superhero movies, means it gets straight into the action of Kara stopping at nothing to save her dog, while confronting her own trauma along the way. The action sequences are some of the strongest parts of the film, as Supergirl grows stronger each time she’s exposed to a yellow sun, battling space pirates and taking out groups of them in fun, slow-motion scenes backed by funky music. In between the action, there are also heartfelt moments between Kara and Ruthye as they reminisce on her past, including how she was sent to Earth and met Clark, with David Corenswet returning for a few scenes.</p><p>“Supergirl” ends up being a fun space adventure built around Kara’s desire to do good and protect vulnerable people from systemic cruelty. It certainly shares similarities with “Guardians of the Galaxy,” though it doesn’t fully capture the same charm or polish. The film does suffer from some weak CGI, particularly in scenes where Kara is hovering in the sky. There’s also a sense that Kara’s story is undercooked, with parts of the narrative feeling rushed and slightly hollow as a result. Still, it’s likely the DCU will give Supergirl more depth in upcoming films, and for a story about a superhero saving her dog, it’s a surprisingly strong emotional ride.</p><h2 id="verdict-supergirl-might-surprise-you">Verdict: ‘Supergirl’ might surprise you</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="5x6VsbqgqsgqcBzSGe9cW3" name="Supergirl" alt="Milly Alcock as Kara Zor-El / Supergirl and Krypto in "Supergirl" movie (2026)" src="https://cdn.mos.cms.futurecdn.net/5x6VsbqgqsgqcBzSGe9cW3.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Warner Bros. Pictures)</span></figcaption></figure><p>Ultimately, “Supergirl” delivers exactly what a superhero movie should: It's an incredibly fun time. It connects Kara to her cousin, Clark, setting up an exciting future for their relationship in the broader DCU. Milly Alcock is also perfect in the role, managing to balance Kara’s hardened exterior with a dry sense of humor that grounds the epic scale.</p><p>While the physical production design shines (with the retro-styled alien bars standing out as visual highlights), the film isn't without its flaws. The CGI proves a bit distracting, and the script leaves you wishing it had expanded even further into Kara’s rich backstory. It also underutilizes its supporting cast; Jason Momoa’s Lobo wasn't in the film nearly as much as I thought he'd be, to the point where he was a character I forgot about most of the time. Still, it is incredibly refreshing to experience a superhero blockbuster that’s set entirely in the cosmic deep, away from Earth.</p><p>While I think “Superman” is a better quality movie in terms of its story and direction, “Supergirl” ends up being a bold, entertaining step forward for the franchise that leaves you eager for more.</p><p><em><strong>"Supergirl" is in theaters on June 26</strong></em></p><figure class="inline-layout"><fw-embed-feed channel="toms_guide" playlist="gdR2W4" mode="row" player_placement="bottom-right"></fw-embed-feed></figure><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/entertainment/movies/7-top-new-movies-to-stream-this-week-on-netflix-hbo-max-disney-and-more-june-23-29">7 top new movies to stream this week on Netflix and more</a></li><li><a href="https://www.tomsguide.com/entertainment/movies/leaked-avengers-doomsday-clip-hints-at-massive-mcu-moment-but-it-might-be-a-fake">Leaked 'Avengers: Doomsday' clip hints at massive MCU moment</a></li><li><a href="https://www.tomsguide.com/entertainment/every-upcoming-dc-universe-movie-and-tv-show">Every upcoming DC Universe movie and TV show</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ HBO Max just added Glen Powell’s box-office flop thriller — but you should give it a chance this week ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/entertainment/hbo-max/hbo-max-just-added-glen-powells-box-office-flop-thriller-but-you-should-give-it-a-chance-this-week</link>
                                                                            <description>
                            <![CDATA[ HBO Max just added Glen Powell's new thriller "How to Make a Killing," and while this dark flick is very flawed, the "Top Gun" actor gives a highly charismatic performance, making it worth watching. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">xDwr33AdLNWVYxKXwZtiDh</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/FYVTMwrNgi2NcEuuUGcNQd-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 24 Jun 2026 06:30:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[HBO Max]]></category>
                                                    <category><![CDATA[Entertainment]]></category>
                                                    <category><![CDATA[Streaming]]></category>
                                                                                                <author><![CDATA[ rory.mellon@futurenet.com (Rory Mellon) ]]></author>                    <dc:creator><![CDATA[ Rory Mellon ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/5Rv6LtQXMj5JB4Eu8Lt4Sn.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/FYVTMwrNgi2NcEuuUGcNQd-1280-80.jpg">
                                                            <media:credit><![CDATA[Blueprint Pictures / StudioCanal]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Glen Powell as Becket Redfellow in &quot;How to Make a Killing&quot; on HBO Max]]></media:description>                                                            <media:text><![CDATA[Glen Powell as Becket Redfellow in &quot;How to Make a Killing&quot; on HBO Max]]></media:text>
                                <media:title type="plain"><![CDATA[Glen Powell as Becket Redfellow in &quot;How to Make a Killing&quot; on HBO Max]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/FYVTMwrNgi2NcEuuUGcNQd-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>In the wake of critical and commercial hits like “Top Gun: Maverick,” “Hit Man,” "Anybody but You," and “Twisters,” Glen Powell appeared on a one-stop route to superstardom. But in recent months, his coronation as a certified A-lister has hit something of a snag following the largely lukewarm response to Edgar Wright’s “The Running Man” and the very tepid box office returns of his new thriller movie, “How to Make Killing.”</p><p>This movie, inspired by a 1949 British film, "Kind Hearts and Coronets,” hit the big screen back in March, where it met with a shrug of the shoulders (It grossed a weak $21 million against a $15 million budget). But in today’s movie landscape, a film’s streaming debut represents a second chance to make an impression, and with “How to Make a Killing” having just been added to HBO Max, Powell’s latest movie could earn its own redemption. </p><div class="product"><a data-dimension112="c55a4582-277c-4c06-9c34-d493ba5f919b" data-action="Deal Block" data-label="HBO Max Standard gives you full library access with no ads, 1080p resolution and 30 monthly downloads. Alongside all the movies/shows that make HBO Max our favorite streaming service, you also get live sports, including NHL, MLB, USNT soccer, and NASCAR." data-dimension48="HBO Max Standard gives you full library access with no ads, 1080p resolution and 30 monthly downloads. Alongside all the movies/shows that make HBO Max our favorite streaming service, you also get live sports, including NHL, MLB, USNT soccer, and NASCAR." data-dimension25="$132" href="https://www.amazon.com/gp/video/addons?ref_=atv_hom_Max_c_9zZ8D2_hom" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:471px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="5oZ5WFhjFZvrqy8xMEiUpd" name="HBO max" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/5oZ5WFhjFZvrqy8xMEiUpd.png" mos="" align="middle" fullscreen="" width="471" height="471" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>HBO Max Standard gives you full library access with no ads, 1080p resolution and 30 monthly downloads. Alongside all the movies/shows that make HBO Max our favorite streaming service, you also get live sports, including NHL, MLB, USNT soccer, and NASCAR.  <a class="view-deal button" href="https://www.amazon.com/gp/video/addons?ref_=atv_hom_Max_c_9zZ8D2_hom" target="_blank" rel="nofollow" data-dimension112="c55a4582-277c-4c06-9c34-d493ba5f919b" data-action="Deal Block" data-label="HBO Max Standard gives you full library access with no ads, 1080p resolution and 30 monthly downloads. Alongside all the movies/shows that make HBO Max our favorite streaming service, you also get live sports, including NHL, MLB, USNT soccer, and NASCAR." data-dimension48="HBO Max Standard gives you full library access with no ads, 1080p resolution and 30 monthly downloads. Alongside all the movies/shows that make HBO Max our favorite streaming service, you also get live sports, including NHL, MLB, USNT soccer, and NASCAR." data-dimension25="$132">View Deal</a></p></div><p>As somebody who did catch this one when it was in theaters, I’m here to give you the lowdown on this new thriller that’s infused with plenty of dark humor. Just be warned, while Powell's presence is as magnetic as ever, the movie that houses his performance is more of a mixed bag.</p><h2 id="what-is-how-to-make-a-killing-about">What is ‘How to Make a Killing’ about?</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/BxBof_p3_es" allowfullscreen></iframe></div></div><p>Opening with Becket Redfellow (Glen Powell) on death row, “How to Make a Killing” flashes back to explain how this former suit shop worker ended up in prison for murder. </p><p>Raised by a single mother, Becket is actually the illegitimate grandson of a wealthy tycoon (Ed Harris). His mom was disowned by her family after becoming pregnant in her teenage years, and on her deathbed, she told Becket that he should fight for the inheritance he “deserves.”</p><p>Due to a legal loophole, Becket stands to inherit his grandfather’s huge estate, but only if he’s the last remaining heir to the Redfellow fortune. To ensure the money comes his way, Becket sets about murdering his estranged relative and staging each death as an unfortunate accident.</p><h2 id="glen-powell-is-the-reason-to-watch-how-to-make-a-killing-on-hbo-max">Glen Powell is the reason to watch ‘How to Make a Killing’ on HBO Max</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="HZaLPiCRizJfqzHcSvmtPd" name="3DTW3W9-how-to-make-a-killing-2026" alt="Glen Powell as Becket Redfellow in "How to Make a Killing" on HBO Max" src="https://cdn.mos.cms.futurecdn.net/HZaLPiCRizJfqzHcSvmtPd.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Blueprint Pictures / StudioCanal / FlixPix / Alamy)</span></figcaption></figure><p>The reason to watch this thriller is in big letters on the poster: Glen Powell. The actor is the livewire that keeps this thriller engaging, and his performance is similar to the fantastic effort he delivered in 2023’s “Hit Man.” Becket is all charm and wide smiles, while he meticulously schemes to murder his arrogant and largely unlikeable relatives. His methods are obviously immoral, but you can’t help but root for Becket’s success.</p><p>Powell is clearly aware of what kind of movies he’s starring in and manages to bridge the movie’s mixed bag of tones, which leaps between satirical swipes at society’s elite and almost a screwball comedy, as Becket, for all his best efforts, is by no means a seasoned professional killer. I have a lot of problems with this movie, but at least Glen Powell is not one of them. </p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-eMVYjW"></div>                            </div>                            <script src="https://kwizly.com/embed/eMVYjW.js" async></script><p>It’s when you look beyond Powell’s charismatic performance that “How to Make a Killing” starts to stumble. Margaret Qualley appears in a supporting role as Becket’s childhood friend, who gets entangled in the scheme and is more cunning than she first appears. This character, named Julia, is poorly written and sketched out, and is central to many of the narrative issues.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="E9tnzL82ckaiPMBPzf5vPd" name="how-to-make-a-killing-2026-movie-02" alt="Margaret Qualley as Julia Steinway in "How to Make a Killing" on HBO Max" src="https://cdn.mos.cms.futurecdn.net/E9tnzL82ckaiPMBPzf5vPd.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Blueprint Pictures / StudioCanal)</span></figcaption></figure><p>Maybe “How to Make a Killing” was the victim of poor release timing, hitting cinemas in the wake of last year’s “No Other Choice,” which sees a desperate man resort to murdering his competition for a prestigious job. Park Chan-wook’s comedy-thriller handles similar material with infinitely more skill and weaves its social commentary within its compelling plot.</p><p>When “How to Make a Killing” was in theaters, it wasn’t a movie I recommended anybody rush out to see (nor fork over movie theater ticket prices), but now that it’s on streaming, the barrier to entry has dropped considerably. Powell's performance just about makes a viewing worthwhile, even if his efforts can only go so far in exonerating the thriller’s other issues.</p><p>For more fresh additions to HBO Max this month, here’s a full guide to <a href="https://www.tomsguide.com/entertainment/hbo-max/new-on-hbo-max-in-june-2026-all-the-new-shows-and-movies-to-watch-this-month">everything new added to the streaming service in June 2026.</a> </p><p><em><strong>Watch </strong></em><a href="https://www.hbomax.com/movies/how-to-make-a-killing/e5edd78c-5d67-4845-8660-4313584d08b3" target="_blank" rel="nofollow"><em><strong>"How to Make a Killing" on HBO Max</strong></em></a><em><strong> now</strong></em></p><figure class="inline-layout"><fw-embed-feed channel="toms_guide" playlist="gdR2W4" mode="row" player_placement="bottom-right"></fw-embed-feed></figure><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/entertainment/hbo-max/new-on-hbo-max-in-june-2026-all-the-new-shows-and-movies-to-watch-this-month">New on HBO Max in June 2026</a></li><li><a href="https://www.tomsguide.com/entertainment/hbo-max/quick-hbo-max-just-got-a-usd65-price-cut-ahead-of-prime-day-and-you-can-watch-house-of-the-dragon-season-3-now">HBO Max is 40% off ahead of Prime Day </a></li><li><a href="https://www.tomsguide.com/entertainment/movies/hbo-max-just-added-one-of-the-best-movies-of-the-year-and-alexander-skarsgards-performance-makes-it-a-must-watch">HBO Max just added one of the best movies of 2026</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ 3 new to Prime Video thriller movies to stream this week — one of them is a classic masterpiece ranked among the best films ever made (June 23-29) ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/entertainment/prime-video/3-new-to-prime-video-thriller-movies-to-stream-this-week-one-of-them-is-a-classic-masterpiece-ranked-among-the-best-films-ever-made-june-23-29</link>
                                                                            <description>
                            <![CDATA[ I've scoured Prime Video's new arrivals to find a trio of thrillers worth watching this week, including a neo-noir mystery with Liam Neeson. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">oY7khmBMw9BwnvRCSZQSvS</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/7EZZyGZEXsWAo6kmTF6dAL-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 23 Jun 2026 12:45:26 +0000</pubDate>                                                                                                                                <updated>Tue, 23 Jun 2026 18:49:46 +0000</updated>
                                                                                                                                            <category><![CDATA[Prime Video]]></category>
                                                    <category><![CDATA[Entertainment]]></category>
                                                    <category><![CDATA[Streaming]]></category>
                                                                                                <author><![CDATA[ rory.mellon@futurenet.com (Rory Mellon) ]]></author>                    <dc:creator><![CDATA[ Rory Mellon ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/5Rv6LtQXMj5JB4Eu8Lt4Sn.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/7EZZyGZEXsWAo6kmTF6dAL-1280-80.jpg">
                                                            <media:credit><![CDATA[Prime Video; Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Prime Video logo ]]></media:description>                                                            <media:text><![CDATA[Prime Video logo ]]></media:text>
                                <media:title type="plain"><![CDATA[Prime Video logo ]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/7EZZyGZEXsWAo6kmTF6dAL-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>I’m always on the hunt for thriller movies across the <a href="https://www.tomsguide.com/us/best-streaming-video-services,review-2625.html">best streaming services</a>, including Prime Video. I consider the genre a personal favorite, and it’s clear I’m not alone in my love of any movie packed with action, suspense, excitement, tension, and maybe a good twist or two. </p><p>Prime Video clearly understands that many of its subscribers demand good thriller movies, so it regularly adds new options to its content library. Case in point, the <a href="https://www.youtube.com/watch?v=TEN-2uTi2c0">Prime Video June 2026 slate</a> is packed with thrillers. To save you the hassle of browsing the dozens of recent arrivals yourself, I’ve combed through the slate and found three thrillers to watch this week.</p><p>My latest picks include movies fronted by two of the genre’s most popular stars, Liam Neeson and Gerard Butler, as well as a certified Hollywood classic. The latter may be more of a legal drama, but I guarantee you’ll find it engrossing and deeply compelling. These are the three new to Prime Video thriller movies to add to your streaming watchlist this week.</p><div class="product"><a data-dimension112="58e2e683-44e5-4db7-9bf2-adc4aa644831" data-action="Deal Block" data-label="Prime Video add-on subscriptions: deals from $1/month @ Amazon" data-dimension48="Prime Video add-on subscriptions: deals from $1/month @ Amazon" href="https://www.amazon.com/gp/video/storefront" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2048px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="ndGtwi34pjSnVsVuuKMjEV" name="prime-video-logo-2025" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/ndGtwi34pjSnVsVuuKMjEV.png" mos="" align="middle" fullscreen="" width="2048" height="2048" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong>Prime Video add-on subscriptions: </strong><a href="https://www.amazon.com/gp/video/addons" target="_blank" rel="nofollow" data-dimension112="58e2e683-44e5-4db7-9bf2-adc4aa644831" data-action="Deal Block" data-label="Prime Video add-on subscriptions: deals from $1/month @ Amazon" data-dimension48="Prime Video add-on subscriptions: deals from $1/month @ Amazon" data-dimension25=""><strong>deals from $1/month @ Amazon</strong></a> <br>Prime Day streaming deals<a href="https://www.tomsguide.com/entertainment/prime-video/i-found-the-3-prime-video-black-friday-deals-worth-your-hard-earned-cash"> </a>are officially live, letting you stream more but spend less. Whether you’re looking to bundle multiple channels or grab a standalone add-on subscription, there’s something for everyone, including Starz, Apple TV and MGM+. With over 20 options available, you can enjoy blockbuster movies, hit shows, and exclusive content for a fraction of the usual price. <a class="view-deal button" href="https://www.amazon.com/gp/video/storefront" target="_blank" rel="nofollow" data-dimension112="58e2e683-44e5-4db7-9bf2-adc4aa644831" data-action="Deal Block" data-label="Prime Video add-on subscriptions: deals from $1/month @ Amazon" data-dimension48="Prime Video add-on subscriptions: deals from $1/month @ Amazon" data-dimension25="">View Deal</a></p></div><h2 id="12-angry-men-1957">‘12 Angry Men’ (1957)</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/TEN-2uTi2c0" allowfullscreen></iframe></div></div><p>I’m slightly stretching the definition of a thriller to include this one, but then again, “12 Angry Men” is just as electrifying and compelling as anything else I’ve watched in the thriller genre. It’s a masterclass in screenwriting, with one of cinema’s greatest-ever scripts. It’s no slouch in other crucial departments either. Sidney Lumet’s legal drama is regularly cited as one of the best and most influential movies ever made, and it deserves every ounce of adulation it's received over the decades. </p><p>Set in the sweltering heat of a New York City courthouse during the sticky summer season, 12 jurors convene to determine the guilt of a young boy accused of murdering his father. The men might not be the ones on trial, but as their discussion unfolds, each one’s character is thoroughly examined. Initially, 11 of the jurors believe the boy is guilty without question, and it’s up to Henry Fonda’s Juror No. 8 to present the alternative case.</p><p><em><strong>Watch </strong></em><a href="https://www.amazon.com/gp/video/detail/B0BRHJCCH2" target="_blank" rel="nofollow"><em><strong>"12 Angry Men" on Prime Video</strong></em></a><em><strong> now</strong></em></p><h2 id="a-walk-among-the-tombstones-2014">'A Walk Among the Tombstones' (2014)</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/aTKBowDjMQg" allowfullscreen></iframe></div></div><p>Liam Neeson-fronted action-thrillers are a comfort watch to me. Yes, it’s a little odd to consider movies filled with violence, criminals, and usually a gruff protagonist comforting, but Neeson had made a name for himself in the genre by bringing predictable (but usually enjoyable) thrills to the table. In fact, “A Walk Among the Tombstones” is one of Neeson’s better action-thrillers, giving Neeson a role with a little more meat on the bone. </p><p>Matt Scudder (Neeson) is a retired NYPD detective, now working as a private investigator. When he’s approached by a wealthy drug dealer (Dan Stevens), he’s hired for a complex case. The dealer’s wife was kidnapped, and despite the requested ransom being paid, she was still brutally murdered. He wants her killers found and brought to justice. As Scudder investigates the grisly killing, he sinks into New York’s criminal underworld, soon encountering Ray (David Harbour), a sadistic criminal.</p><p><em><strong>Watch </strong></em><a href="https://www.amazon.com/Walk-Among-Tombstones-Liam-Neeson/dp/B00QHMEDLC" target="_blank" rel="nofollow"><em><strong>"A Walk Among the Tombstones" on Prime Video</strong></em></a><em><strong> now</strong></em></p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-eM76lO"></div>                            </div>                            <script src="https://kwizly.com/embed/eM76lO.js" async></script><h2 id="plane-2023">‘Plane’ (2023)</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/M25zXBIUVr0" allowfullscreen></iframe></div></div><p>“Plane” is a no-nonsense thriller that leans into its own predictability. Even the movie’s title is extremely matter-of-fact, and I appreciate it when a film has a self-aware streak. This 2023 action-thriller doesn’t have genre reinvention on its agenda and instead aims to please with Gerard Butler playing a suitably kick-butt action hero and Mike Colter offering strong support. I’m just disappointed the sequel, tentatively titled “Boat,” got canned just a couple of weeks before production was due to begin.</p><p>In “Plane,” Butler plays Brodie Torrance, a pilot forced into an emergency landing when lightning threatens the safety of his plane and passengers. The snag is that the aircraft has touched down in a war-torn region, and the survivors are immediately taken hostage. Torrance has no choice but to team up with an accused murderer, Louis Gaspare (Colter), who was on the airplane in FBI custody. They’re an unlikely team, ready to save the day.</p><p><em><strong>Watch </strong></em><a href="https://www.amazon.com/gp/video/detail/B0FP45BB2L" target="_blank" rel="nofollow"><em><strong>"Plane" on Prime Video</strong></em></a><em><strong> now</strong></em></p><figure class="inline-layout"><fw-embed-feed channel="toms_guide" playlist="gdR2W4" mode="row" player_placement="bottom-right"></fw-embed-feed></figure><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/entertainment/prime-video/new-on-prime-video-in-june-2026-top-movies-and-shows-to-stream-this-month#section-new-movies-on-prime-video-in-june-2026">New on Prime Video in June 2026</a></li><li><a href="https://www.tomsguide.com/live/news/prime-day-streaming-deals-and-sales-live-2026">Best Prime Day streaming deals 2026 live</a></li><li><a href="https://www.tomsguide.com/entertainment/prime-video/prime-video-top-10-movies-heres-the-3-worth-watching-this-week-june-22-28">Prime Video top 10 movies — here’s the 3 worth watching</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Forget overpriced OLEDs — this 40-inch ultrawide monitor is down to $359 for Prime Day ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/computing/monitors/i-went-big-on-a-budget-with-this-40-inch-ultrawide-monitor-and-its-incredibly-immersive-without-breaking-the-bank</link>
                                                                            <description>
                            <![CDATA[ The Innocn 40C1R may be older, but you won’t find a flat, high-refresh 40-inch display that still holds up for this price anywhere else. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">ZXtHM5jfFvxL7ebdYm3XeF</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/gLCFQNJ85JYJAqsC9mGkji-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 23 Jun 2026 10:30:00 +0000</pubDate>                                                                                                                                <updated>Wed, 24 Jun 2026 14:43:30 +0000</updated>
                                                                                                                                            <category><![CDATA[Monitors]]></category>
                                                    <category><![CDATA[Computing Peripherals]]></category>
                                                    <category><![CDATA[Computing Hardware]]></category>
                                                                                                <author><![CDATA[ anthony.spadafora@futurenet.com (Anthony Spadafora) ]]></author>                    <dc:creator><![CDATA[ Anthony Spadafora ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/z73LEoj7FkUjNG85GcWHtH.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Anthony Spadafora is the managing editor for security and home office furniture at Tom’s Guide where he covers everything from data breaches and malware to password managers and the best way to cover your whole home or business with a strong Wi-Fi signal.&lt;/p&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;Before joining the team, he spent three years covering cybersecurity and B2B tech for ITProPortal while living in South Korea. After moving back to the US. Anthony joined the TechRadar Pro team where he covered these topics along with VPNs, web hosting, online collaboration software and video conferencing for four years. Anthony also has his ears to the ground and is on the lookout for the next major cyberattack or data breach.&lt;/p&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;Based in Houston, Texas, Anthony also handles VPN testing for both Tom’s Guide and TechRadar. As someone who has worked from home exclusively since 2018, he has reviewed dozens of standing desks as well as office chairs and has taken a closer look at other essential remote working accessories. As part of these reviews, Anthony frequently builds intricate desk setups which is why he’s such a big advocate for cable management and keeping things organized. When he’s not writing, he can be found tinkering with PCs and game consoles, managing cables and making upgrades to his smart home.&lt;/p&gt; ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/gLCFQNJ85JYJAqsC9mGkji-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[The Innocn 40C1R ultrawide monitor playing a music video with a 21:9 aspect ratio]]></media:description>                                                            <media:text><![CDATA[The Innocn 40C1R ultrawide monitor playing a music video with a 21:9 aspect ratio]]></media:text>
                                <media:title type="plain"><![CDATA[The Innocn 40C1R ultrawide monitor playing a music video with a 21:9 aspect ratio]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/gLCFQNJ85JYJAqsC9mGkji-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>When people think about upgrading to a big, immersive display, the latest <a href="https://www.tomsguide.com/computing/monitors/i-tried-lgs-bendable-5k2k-gaming-monitor-and-its-now-the-screen-of-my-dreams">5K2K monitors</a> from LG and Samsung are usually the first that come to mind. However, while they’re certainly some of the <a href="https://www.tomsguide.com/best-picks/best-monitors">best monitors</a> you can buy, they come with premium price tags of at least $1,000.</p><p>Fortunately, if you want more screen real estate but don’t want to pay as much as you would for a high-end graphics card, there are more affordable alternatives. A few months back, I tried out the 5K2K <a href="https://www.tomsguide.com/computing/monitors/i-ditched-my-dual-monitor-setup-for-a-single-40-inch-ultrawide-and-two-screens-arent-better-than-one">Innocn 401CU</a> and it certainly fits the bill. While it has a list price of $999, I’ve seen it as low as $600 during major sales events.</p><p>After looking through the comments on that story though, I was surprised to see how many Tom’s Guide readers thought even <em>that</em> sale price was too expensive for a monitor, with many suggesting buying a budget 4K TV instead. To see if I could find a gem in the rough, I decided to try out Innocn’s even more affordable sibling: the 401CR ultrawide monitor.</p><p>At full price, it’s just under $500, but I’ve seen it go for as low as $350 while on sale. At that price, it’s a steal for a flat, 40-inch ultrawide with single-cable USB-C connectivity. Given <a href="https://www.tomsguide.com/sales-events/prime-day-apple-deals-are-live-now-get-up-to-32-percent-off-iphone-17-macbooks-ipads-and-airpods">Prime Day </a>starts today, I expect it to see a deep discount.</p><p>If you need massive screen space for productivity and more immersive gaming, this underdog might just be the perfect upgrade for your desk setup.</p><div class="product"><a data-dimension112="d46fa21a-ecfc-4b84-afae-0420d87f1b24" data-action="Deal Block" data-label="If you want the sheer scale of a massive 40-inch monitor but prioritize smooth gaming speeds over an excessive pixel count, the 40C1R is an unbeatable value. It trades the demanding 5K2K resolution of its premium sibling for a much more GPU-friendly 3440 x 1440 canvas, allowing it to bump the refresh rate up to a fluid 144Hz. It even manages to beat the more expensive model in raw utility — serving up a beefier 90W of power delivery over a single USB-C cable to easily keep power-hungry pro laptops fully charged while you play." data-dimension48="If you want the sheer scale of a massive 40-inch monitor but prioritize smooth gaming speeds over an excessive pixel count, the 40C1R is an unbeatable value. It trades the demanding 5K2K resolution of its premium sibling for a much more GPU-friendly 3440 x 1440 canvas, allowing it to bump the refresh rate up to a fluid 144Hz. It even manages to beat the more expensive model in raw utility — serving up a beefier 90W of power delivery over a single USB-C cable to easily keep power-hungry pro laptops fully charged while you play." data-dimension25="$379" href="https://www.amazon.com/INNOCN-Ultrawide-Monitor-Gaming-FreeSync/dp/B0G7VVZ229?th=1" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1500px;"><p class="vanilla-image-block" style="padding-top:62.07%;"><img id="SD5VTihpfBoetQyx8jZckP" name="40C1R" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/SD5VTihpfBoetQyx8jZckP.jpg" mos="" align="middle" fullscreen="" width="1500" height="931" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>If you want the sheer scale of a massive 40-inch monitor but prioritize smooth gaming speeds over an excessive pixel count, the 40C1R is an unbeatable value. It trades the demanding 5K2K resolution of its premium sibling for a much more GPU-friendly 3440 x 1440 canvas, allowing it to bump the refresh rate up to a fluid 144Hz. It even manages to beat the more expensive model in raw utility — serving up a beefier 90W of power delivery over a single USB-C cable to easily keep power-hungry pro laptops fully charged while you play.  <a class="view-deal button" href="https://www.amazon.com/INNOCN-Ultrawide-Monitor-Gaming-FreeSync/dp/B0G7VVZ229?th=1" target="_blank" rel="nofollow" data-dimension112="d46fa21a-ecfc-4b84-afae-0420d87f1b24" data-action="Deal Block" data-label="If you want the sheer scale of a massive 40-inch monitor but prioritize smooth gaming speeds over an excessive pixel count, the 40C1R is an unbeatable value. It trades the demanding 5K2K resolution of its premium sibling for a much more GPU-friendly 3440 x 1440 canvas, allowing it to bump the refresh rate up to a fluid 144Hz. It even manages to beat the more expensive model in raw utility — serving up a beefier 90W of power delivery over a single USB-C cable to easily keep power-hungry pro laptops fully charged while you play." data-dimension48="If you want the sheer scale of a massive 40-inch monitor but prioritize smooth gaming speeds over an excessive pixel count, the 40C1R is an unbeatable value. It trades the demanding 5K2K resolution of its premium sibling for a much more GPU-friendly 3440 x 1440 canvas, allowing it to bump the refresh rate up to a fluid 144Hz. It even manages to beat the more expensive model in raw utility — serving up a beefier 90W of power delivery over a single USB-C cable to easily keep power-hungry pro laptops fully charged while you play." data-dimension25="$379">View Deal</a></p></div><h2 id="flat-wide-and-fully-specced">Flat, wide and fully-specced</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="48CsMnEMukYzoiXGKopnsP" name="Innocn 401CR-6" alt="The Innocn 40C1R ultrawide monitor unboxed on a desk" src="https://cdn.mos.cms.futurecdn.net/48CsMnEMukYzoiXGKopnsP.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>At 37.1 x 16.5 x 2.2 inches, the 40C1R is anything but a small display, and at roughly 20 pounds without the stand, it’s on the heavier side, too. Thankfully, Innocn includes a fairly heavy-duty stand with a thick metal baseplate and a plastic vertical arm that’s reinforced with a sturdy metal core.</p><p>Having unboxed my fair share of monitors over the years, I really like how Innocn includes a high-speed USB-C to USB-C video cable and a DisplayPort cable right in the box. You don’t get an HDMI cable though, but you likely have several of those laying around anyway. Likewise, you probably won’t want to use an HDMI connection with this display as your refresh rate will be capped at 100 Hz versus the full 144 Hz you get over DisplayPort.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="MDB4pzkvSjKpKqDmpu2cLU" name="Innocn 401CR-4" alt="The Innocn 40C1R ultrawide monitor lying face down on a desk showing off its rear ports and VESA mounting holes" src="https://cdn.mos.cms.futurecdn.net/MDB4pzkvSjKpKqDmpu2cLU.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>With the monitor lying face down on my desk, you get a clear look at its overall structural design. Right off the bat, I love how Innocn uses standard, square 100 x 100 VESA mounting holes instead of those silly circular 75 x 75 ones you see on a lot of other gaming monitors. This makes it incredibly easy to swap out the stand for any of the <a href="https://www.tomsguide.com/best-picks/best-monitor-arms">best monitor arms</a> since you won’t need to hunt for a proprietary adapter.</p><p>Looking at the back of the panel, the connectivity is split cleanly. The power port sits entirely on its own side, which highlights one of my favorite features: a built-in power supply. Just like the more expensive 40C1U, there is no bulky power brick to hide under your desk — just a single standard power cable. On the opposite side of the rear cutout, you'll find the main selection of ports, while the monitor’s physical OSD navigation buttons line the corresponding outer edge.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="9ArrHAaRhZn5JUMkWDHdaW" name="Innocn 401CR-5" alt="A closeup shot of the Innocn 40C1R's rear ports" src="https://cdn.mos.cms.futurecdn.net/9ArrHAaRhZn5JUMkWDHdaW.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>As for those ports, you get a great selection of connection options, including dual HDMI 2.0 inputs, DisplayPort 1.4, USB-C, and a 3.5mm audio jack. While the 40C1R drops the built-in USB-A hub found on the premium 40C1U to save on cost, it oddly beats its more expensive sibling in utility: its USB-C port delivers a massive 90W of power delivery as opposed to just 60W.</p><p>After unboxing the 40C1R, I installed the included stand using a single built-in thumb screw. With the monitor securely set up and plugged in, it was finally time to see how it performs.</p><h2 id="laptop-power-with-gaming-pc-framerates">Laptop power with gaming PC framerates</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="VM35926LUe7iRxKUayjg4a" name="Innocn 401CR-3" alt="A MacBook Pro M5 16 inch connected to the Innocn 40C1R ultrawide monitor on a desk" src="https://cdn.mos.cms.futurecdn.net/VM35926LUe7iRxKUayjg4a.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>In order to test the 40C1R and make sure it was working properly, I first hooked it up to a <a href="https://www.tomsguide.com/computing/macbooks/macbook-pro-16-inch-m5-pro-review">MacBook Pro M5</a> I borrowed from work for another monitor review. Although 90W of power delivery is a bit less than the 140W provided by Apple's included charger, it is still more than enough juice to keep a 16-inch MacBook fully topped off even during heavy workloads. For the rest of the <a href="https://www.tomsguide.com/computing/laptops/best-laptops">best laptops</a>, 90W will be plenty to fast charge them while connected to this massive display.</p><p>With the MacBook Pro plugged into the 40C1R, the monitor’s IPS panel looked vibrant and crisp, with no dead pixels to speak of. While the 40C1R does come equipped with dual 5W built-in speakers, I ended up switching back to the ones on the MacBook Pro after a bit. Still, they are nice to have in a pinch, and they do sound much less tinny than the bottom-tier 2W speakers you find on a lot of other budget monitors.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="9Fdd8h3QCxU444iuK58uce" name="Innocn 401CR-2" alt="The Innocn 40C1R ultrawide monitor with the Khadas Mind 2S attached to the Mind Graphics 2 GPU dock underneath it" src="https://cdn.mos.cms.futurecdn.net/9Fdd8h3QCxU444iuK58uce.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Sadly, I no longer own a big, bulky gaming desktop anymore (as I’ve been using one of the <a href="https://www.tomsguide.com/us/best-mini-pc.html">best mini PCs</a> for both work and play for the past few years) but fortunately, my favorite pocketable mini PC — the <a href="https://www.tomsguide.com/computing/mini-pcs/khadas-mind-2s-review">Khadas Mind 2S</a> — can be instantly upgraded with an NVIDIA GeForce RTX 5060 Ti desktop GPU just by dropping it onto Khadas’ <a href="https://www.tomsguide.com/computing/mini-pcs/i-gave-my-favorite-pocketable-mini-pc-an-instant-upgrade-with-this-docking-station-and-now-its-a-full-fledged-gaming-rig">Mind Graphics 2</a> dock.</p><p>Now, I know what you might be thinking when looking at a compact setup like this: airflow. I too was worried about putting this docked mini PC directly underneath the 40C1R at first. However, after pushing the hardware and running a few demanding games on it, I didn’t run into any thermal throttling or heating issues at all. I chalk this up to Khadas' excellent internal cooling design and the fact that the dock's entire outer shell is machined from aluminum, which acts as a giant heatsink.</p><p>With the 40C1R confirmed to be fully operational and paired with a surprisingly powerful eGPU dock, it was time to see how this budget-friendly 40-inch ultrawide handles real-world productivity and immersive gaming.</p><h2 id="big-screen-on-a-budget">Big screen on a budget</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4532px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="vVzs4Cc6V2BBm7REY9uQ2L" name="LucidSound LS500P" alt="A person playing Death Stranding 2 on the Innocn 40C1R ultrawide monitor" src="https://cdn.mos.cms.futurecdn.net/vVzs4Cc6V2BBm7REY9uQ2L.jpg" mos="" align="middle" fullscreen="" width="4532" height="2549" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Back when I tried out Innocn’s more premium 40-inch ultrawide, I did play a few games on it. However, with a massive resolution of 5120 x 2160, the <a href="https://www.tomsguide.com/computing/mini-pcs/framework-desktop-review">Framework Desktop</a> I was using at the time struggled to push smooth frame rates. With a lower — yet still reasonably high — resolution of 3440 x 1440, I knew that my mini PC with its desktop-grade <a href="https://www.tomsguide.com/computing/gpus/nvidia-geforce-rtx-5060-ti-review">RTX 5060 Ti</a> would have a much easier time keeping up. Likewise, given this is an outright gaming monitor instead of a productivity-first screen like the 40C1U, it actually features a much higher 144 Hz refresh rate.</p><p>For the past few months, I’ve been making my way through <a href="https://www.tomsguide.com/gaming/death-stranding-2-is-the-most-beautiful-game-ive-ever-played-and-its-everything-id-hope-for-in-a-sequel">Death Stranding 2</a>, and on an ultrawide display like this one with a 21:9 aspect ratio, it’s been an absolute joy to play. Not only was the game’s world wider than it was on my <a href="https://www.tomsguide.com/gaming/playstation/i-fixed-my-biggest-gripe-with-the-ps5-pro-with-these-unofficial-cover-plates-and-now-it-looks-and-feels-more-like-a-pc">PS5 Pro</a>, but I could crank the framerate past 60 fps all the way up to a buttery-smooth 144 fps. In fact, if you’re coming from a console and are playing on an ultrawide, you might end up double-dipping on a few titles just to experience them at full width without any distracting black bars on the sides.</p><p>In addition to Death Stranding 2, I also really enjoyed playing my go-to skateboarding game <a href="https://www.tomsguide.com/opinion/session-is-the-perfect-stopgap-until-skate-4-if-you-can-handle-the-learning-curve">Session</a> and <a href="https://www.tomsguide.com/reviews/ratchet-and-clank-rift-apart">Ratchet and Clank: Rift Apart</a> on this wider display. It also helps that the monitor comes equipped with AMD’s FreeSync Premium, so you can turn on VRR (variable refresh rate) for a tear-free experience. The 40C1R does have HDR support, but I preferred leaving it off since it's an HDR400 panel that tops out around 400 to 500 nits of brightness. Without local dimming, SDR content actually looks a lot punchier.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="gLCFQNJ85JYJAqsC9mGkji" name="Innocn 401CR" alt="The Innocn 40C1R ultrawide monitor playing a music video with a 21:9 aspect ratio" src="https://cdn.mos.cms.futurecdn.net/gLCFQNJ85JYJAqsC9mGkji.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>With an ultrawide display like the 40C1R, streaming content online can be awesome, too... if you find the right video. While most TV shows are locked to standard 16:9, you can find plenty of movies and even some music videos — like Drake’s "2 Hard 4 The Radio" pictured above — that are natively available with a cinematic 21:9 aspect ratio. After upgrading to an ultrawide, I highly recommend going to YouTube, searching for 21:9 trailers, and turning the resolution all the way up. You won’t be disappointed.</p><p>Overall, I’m quite impressed with the 40C1R, especially given the fact that it’s a four-year-old monitor design. While you might think you need the latest and greatest OLED display to upgrade your desk setup or battlestation, my experience with this monitor proves you definitely don’t.</p><h2 id="one-for-work-one-for-play">One for work, one for play</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1985px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="2hEB2xyce6TZxirksW7w8n" name="work-vs-play-2" alt="A side by side shot showing the Innocn 40C1U on the left and the Innocn 40C1R on the right" src="https://cdn.mos.cms.futurecdn.net/2hEB2xyce6TZxirksW7w8n.jpg" mos="" align="middle" fullscreen="" width="1985" height="1117" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>I’ll admit, I was lucky enough to experience Innocn’s latest and greatest 40-inch ultrawide before tying out this more budget-friendly model. However, after thoroughly testing both of them, they each clearly have their place depending on your use case and how much you’re willing to spend.</p><p>With its higher resolution and built-in USB hub, the Innocn 40C1U is a fantastic productivity monitor. You can see substantially more on the screen at the same time, and if you want to switch between two computers — say a Mac and a Windows machine like I’m doing here — you won’t need to buy a separate <a href="https://www.tomsguide.com/gaming/i-took-a-big-risk-on-this-open-box-gaming-monitor-and-it-actually-paid-off">KVM switch</a>. However, for gaming at that native 5K2K resolution, you’re going to need a really beefy graphics card with frame generation turned on for your favorite titles to truly shine.</p><div class="product"><a data-dimension112="77cdf817-e28a-4a93-acd8-73f210484641" data-action="Deal Block" data-label="This massive 40-inch flat panel is a rare find in the ultrawide world. It delivers a stunning 5K2K resolution (5120 x 2160), giving you the same pixel density as a 32-inch 4K monitor but with 33% more horizontal space. It features a built-in KVM switch, 65W USB-C power delivery and a flat IPS panel that’s perfect for creators who can't stand the distortion of curved screens." data-dimension48="This massive 40-inch flat panel is a rare find in the ultrawide world. It delivers a stunning 5K2K resolution (5120 x 2160), giving you the same pixel density as a 32-inch 4K monitor but with 33% more horizontal space. It features a built-in KVM switch, 65W USB-C power delivery and a flat IPS panel that’s perfect for creators who can't stand the distortion of curved screens." data-dimension25="$799" href="https://www.amazon.com/INNOCN-Inch-2160p-Ultrawide-Monitor/dp/B0D7Q8N64F" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1500px;"><p class="vanilla-image-block" style="padding-top:61.07%;"><img id="BzCn3DiniFqNV4SefEPo3D" name="40C1U" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/BzCn3DiniFqNV4SefEPo3D.jpg" mos="" align="middle" fullscreen="" width="1500" height="916" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>This massive 40-inch flat panel is a rare find in the ultrawide world. It delivers a stunning 5K2K resolution (5120 x 2160), giving you the same pixel density as a 32-inch 4K monitor but with 33% more horizontal space. It features a built-in KVM switch, 65W USB-C power delivery and a flat IPS panel that’s perfect for creators who can't stand the distortion of curved screens. <a class="view-deal button" href="https://www.amazon.com/INNOCN-Inch-2160p-Ultrawide-Monitor/dp/B0D7Q8N64F" target="_blank" rel="nofollow" data-dimension112="77cdf817-e28a-4a93-acd8-73f210484641" data-action="Deal Block" data-label="This massive 40-inch flat panel is a rare find in the ultrawide world. It delivers a stunning 5K2K resolution (5120 x 2160), giving you the same pixel density as a 32-inch 4K monitor but with 33% more horizontal space. It features a built-in KVM switch, 65W USB-C power delivery and a flat IPS panel that’s perfect for creators who can't stand the distortion of curved screens." data-dimension48="This massive 40-inch flat panel is a rare find in the ultrawide world. It delivers a stunning 5K2K resolution (5120 x 2160), giving you the same pixel density as a 32-inch 4K monitor but with 33% more horizontal space. It features a built-in KVM switch, 65W USB-C power delivery and a flat IPS panel that’s perfect for creators who can't stand the distortion of curved screens." data-dimension25="$799">View Deal</a></p></div><p>Given its higher refresh rate and lower price, the Innocn 40C1R stands out as a fantastic ultrawide monitor for gaming, even if the underlying panel design is several years old now. While it comes equipped with legacy HDMI 2.0 ports instead of newer <a href="https://www.tomsguide.com/tvs/hdmi-2-1-vs-hdmi-2-2-biggest-differences-explained-and-when-you-should-upgrade">HDMI 2.1</a> ones, that won’t be a problem since you’re going to want to use a DisplayPort cable anyway to make full use of its faster 144 Hz refresh rate. Although a built-in USB-A hub would have been nice to see, I’m sure most people would rather have the massive 90W of power delivery over USB-C so they can fast charge a laptop and utilize it to its fullest potential at the same time.</p><p>Now, would I recommend either of these monitors for gaming on a console? Absolutely not, since even the more powerful PS5 Pro is still strictly locked to a standard 16:9 aspect ratio. That could very well change down the road with the <a href="https://www.tomsguide.com/gaming/playstation/sony-will-allegedly-launch-three-ps6-systems-including-two-consoles-and-a-handheld-claims-leaker">PS6</a> and Xbox’s upcoming <a href="https://www.tomsguide.com/gaming/xbox/next-xbox-will-play-your-xbox-and-pc-games-new-ceo-promises">Project Helix</a>, but for now, if you want to experience a wider, more immersive field of view while gaming, PC is your best and only option.</p><p>At the moment, I have the Innocn 40C1U set up as my dedicated work machine powered by the ultra-powerful <a href="https://www.tomsguide.com/computing/mini-pcs/geekom-a9-max-review">Geekom A9 Max 2026 Edition</a>, and I’m using the Innocn 40C1R right alongside it for gaming. If I was on a strict budget and had to pick one over the other, the 40C1R would easily be my choice because you’re getting a flat, massive 40-inch ultrawide with a high refresh rate and better power delivery over a single USB-C cable. That’s not to say the 40C1U is a bad monitor by any means, but at 100 Hz with a demanding 5K2K resolution, it’s simply much better suited for spreadsheets and content creation than it is for high-framerate gaming.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/i-built-the-ultimate-distraction-free-desk-setup-and-now-im-truly-locked-in">I built a completely distraction-free desk setup with these 10 gadgets and now I’m truly locked in</a></li><li><a href="https://www.tomsguide.com/computing/peripherals/monitor-stand-vs-monitor-arm-how-to-pick-the-right-one-for-your-display">Monitor stand vs monitor arm: how to pick the right one for your display</a></li><li><a href="https://www.tomsguide.com/computing/monitors/i-spent-a-week-with-dual-apple-studio-displays-and-realized-ive-been-lying-to-myself-about-glossy-screens-for-years">I spent a week with dual Apple Studio Displays and realized I’ve been lying to myself about glossy screens for years</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Netflix top 10 shows — here’s the 3 you need to binge-watch this week (June 23-29) ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/entertainment/netflix/netflix-top-10-shows-heres-the-3-you-need-to-binge-watch-this-week-june-23-29</link>
                                                                            <description>
                            <![CDATA[ Looking for something new to watch? We've picked the best shows currently dominating Netflix's top 10 list, including the new No. 1 thriller based on a Harlan Coben story. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">ifgmJCSJFA6TmgDVxRSAdG</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/xgLKfGx4fjQtGCCtCDQdYC-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 23 Jun 2026 09:10:18 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Netflix]]></category>
                                                    <category><![CDATA[Entertainment]]></category>
                                                    <category><![CDATA[Streaming]]></category>
                                                                                                <author><![CDATA[ alix.blackburn@futurenet.com (Alix Blackburn) ]]></author>                    <dc:creator><![CDATA[ Alix Blackburn ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/8UxyT2McanNFLYwQ6wC7di.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/xgLKfGx4fjQtGCCtCDQdYC-1280-80.jpg">
                                                            <media:credit><![CDATA[Netflix; Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Netflix logo on orange background]]></media:description>                                                            <media:text><![CDATA[Netflix logo on orange background]]></media:text>
                                <media:title type="plain"><![CDATA[Netflix logo on orange background]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/xgLKfGx4fjQtGCCtCDQdYC-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p><a href="https://www.tomsguide.com/entertainment/streaming/netflix">Netflix’s</a> top 10 is a quick way to figure out what’s popular when you’re stuck for something to watch, but being high on the list doesn’t automatically mean a show is actually good. Every week, I go through the most-watched titles on the platform and highlight the series that are genuinely worth your time, cutting through the noise to separate the standouts from the ones lacking quality.</p><p>The trending list this week is packed with intense thrills and plenty of juicy drama. At No. 1 right now is Harlan Coben’s latest series, “I Will Find You,” an easy binge for anyone after a gripping watch. If you’re not sure what to watch next, I’ve selected three standout titles from Netflix’s top 10 that are worth adding to your watchlist, plus the full ranking (at the time of writing).</p><p><strong>Note: This list is based on the Netflix U.S. top 10 shows as of Tuesday, June 23, 2026. </strong></p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-W2Y8ve"></div>                            </div>                            <script src="https://kwizly.com/embed/W2Y8ve.js" async></script><h3 class="article-body__section" id="section-best-shows-in-the-netflix-top-10"><span>Best shows in the Netflix top 10</span></h3><h2 id="i-will-find-you">‘I Will Find You’</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/mObRUsA7dPY" allowfullscreen></iframe></div></div><p>Harlan Coben is one of Netflix’s most reliably popular creators. Since his deal with Netflix started in 2018, the platform has adapted multiple novels into limited series, and several of them have become global hits in the streamer’s top 10 lists. The latest adaptation to reach the No. 1 spot is “I Will Find You,” structured as a fast-paced, ticking-clock conspiracy thriller. While it leans on familiar thriller tropes and relies on a series of convenient escapes, this series is clearly an engaging streaming hit packed with twists to keep you invested.</p><p>“I Will Find You” follows David Burroughs (Sam Worthington), a man serving a life sentence for the murder of his young son. His life suddenly changes when he receives evidence suggesting his son may still be alive. Determined to uncover the truth, David escapes from prison and begins a relentless search. The closer he gets to answers, the more he uncovers shocking revelations that challenge everything he believed about his past, the original investigation, and those closest to him, while racing to reunite with his child before it’s too late.</p><p><em><strong>Stream "I Will Find You" on </strong></em><a href="https://www.netflix.com/title/81509368" target="_blank" rel="nofollow"><em><strong>Netflix</strong></em></a><em><strong> </strong></em></p><h2 id="oasis">‘Oasis’</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/PQ0DS3oyWUE" allowfullscreen></iframe></div></div><p>“Oasis” is a Spanish mystery thriller series set in an ultra-luxurious, exclusive resort where wealthy families spend their summer holidays in apparent paradise. Styled as a highly addictive, sun-drenched “nightmare vacation” drama, the series has immediately drawn heavy comparisons to a YA-focused iteration of HBO’s hit “The White Lotus.” This already seems like a highly bingeable piece of summer escapism perfect for viewers who love their teenage high-society drama.</p><p>Dani (Tomy Aguilera) is a newcomer thrust into a world of hyper-privileged teenagers, including his scheming step-sister Sofía (Ada Molina) and the wealthy Maca (Berta Castañé). When a local worker named Celia (Victoria Kantch) mysteriously vanishes, the resort is plunged into a police lockdown. To uncover the truth, Dani teams up with Celia's fierce best friend, Helena (Ana Garcés), and they begin uncovering secrets hidden beneath the resort’s perfect surface.</p><p><em><strong>Stream "Oasis" on </strong></em><a href="https://www.netflix.com/title/81734907" target="_blank" rel="nofollow"><em><strong>Netflix</strong></em></a></p><h2 id="the-four-seasons">‘The Four Seasons’</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/WKTwtIL4xyk" allowfullscreen></iframe></div></div><p>Lastly we have the second season of a popular comedy-drama. “The Four Seasons” adapts the structural conceit of Alan Alda’s classic 1981 film, which revolves around a simple hook: it follows a tightly knit circle of well-off, middle-aged friends exclusively during their four seasonal vacation getaways over the course of a year. It’s perfect for those wanting adult-centered TV that is equal parts heartbreaking and hysterically funny, and it also feels fitting now that we’re in summer.</p><p>Season 2 of “The Four Seasons” picks up after Nick’s (Steve Carell) death, with the group continuing their tradition of seasonal trips while adjusting to major changes in their lives. Jack (Will Forte) struggles to maintain normal routines without Nick, while Kate (Tina Fey) tries to keep the friendships from drifting apart. Danny (Colman Domingo) and Claude (Marco Calvani) begin building a life together in Claude’s hometown in Italy. Anne (Kerri Kenney-Silver) and Ginny (Erika Henningsen) are forced to share responsibility for Nick’s baby, Gino, during a series of trips.</p><p><em><strong>Watch "The Four Seasons"  seasons 1-2 on </strong></em><a href="https://www.netflix.com/title/81750702" target="_blank" rel="nofollow"><em><strong>Netflix</strong></em></a><em><strong> </strong></em></p><h3 class="article-body__section" id="section-netflix-top-10-shows-right-now"><span>Netflix top 10 shows right now</span></h3><p>1. "I Will Find You" (2026)<br>2. "The Polygamist" (2026)<br>3. "America's Sweethearts: Dallas Cowboys Cheerleaders" (2024)<br>4. "Sweet Magnolias" (2020)<br>5. "Outlast: The Jungle" (2026)<br>6. "Oasis" (2026)<br>7. "Michael Jackson: The Verdict" (2026)<br>8. "The Four Seasons" (2025)<br>9. "Salish & Jordan Matter" (2026)<br>10. "The Amazing Digital Circus" (2023)</p><figure class="inline-layout"><fw-embed-feed channel="toms_guide" playlist="gdR2W4" mode="row" player_placement="bottom-right"></fw-embed-feed></figure><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/entertainment/netflix/5-new-netflix-movies-and-shows-you-need-to-stream-this-week-june-22-28-2026">5 best new Netflix movies and shows to stream this week</a></li><li><a href="https://www.tomsguide.com/entertainment/netflix/new-on-netflix-in-june-2026-5-best-movies-and-shows-to-stream-plus-full-release-list">Everything new on Netflix in June 2026</a></li><li><a href="https://www.tomsguide.com/entertainment/netflix/3-must-stream-netflix-movies-about-to-be-removed-in-june-2026-including-a-mark-wahlberg-disaster-thriller-based-on-a-true-story">3 must-watch Netflix movies leaving in June 2026</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ 3 best Westerns on Paramount+ for your next movie night —including a Coen brothers masterpiece ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/entertainment/paramount-plus/3-best-westerns-on-paramount-for-your-next-movie-night-including-a-coen-brothers-masterpiece</link>
                                                                            <description>
                            <![CDATA[ Dive into these great sci-fi movie picks you may have missed at Paramount+. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">k7ef3evaXyLTJeZh2jzjaK</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/FxddwkegYLH3BTPsGSmBbC-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 23 Jun 2026 07:30:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Paramount Plus]]></category>
                                                    <category><![CDATA[Entertainment]]></category>
                                                    <category><![CDATA[Streaming]]></category>
                                                                                                                    <dc:creator><![CDATA[ Brittany Vincent ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/JDgb6vqXHys3nrFJpkRCub.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/FxddwkegYLH3BTPsGSmBbC-1280-80.jpg">
                                                            <media:credit><![CDATA[Paramount+; Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Paramount+ logo on a orange-blue background]]></media:description>                                                            <media:text><![CDATA[Paramount+ logo on a orange-blue background]]></media:text>
                                <media:title type="plain"><![CDATA[Paramount+ logo on a orange-blue background]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/FxddwkegYLH3BTPsGSmBbC-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>If your taste in Westerns runs deeper than old-school John Wayne classics, Paramount+ has an incredible range of modern options to choose from. Not sure where to begin? We’ve combed through the streamer’s extensive library so you don't have to, handpicking three stellar films for a full-fledged Western watch party on movie night.</p><p>From Oscar-nominated blockbusters to brutal international imports that reinvent the genre entirely, Paramount+ is a goldmine for anyone looking to kick up some dust and ride off into the sunset. Keep reading for three of our top picks for the best Western movies on Paramount+ you can watch right now.</p><div class="product"><a data-dimension112="f4726217-6e8c-47f7-b5e5-039834b0be49" data-action="Deal Block" data-label="Paramount+ Essential or Premium for just $1 per month for two months" data-dimension48="Paramount+ Essential or Premium for just $1 per month for two months" data-dimension25="$" href="https://www.paramountplus.com/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:400px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="yFR2FM7u3jYWPbbbpoBqNR" name="paramount plus logo.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/yFR2FM7u3jYWPbbbpoBqNR.jpg" mos="" align="middle" fullscreen="" width="400" height="400" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>Until June 25, you can get <a href="https://www.paramountplus.com/" target="_blank" rel="nofollow" data-dimension112="f4726217-6e8c-47f7-b5e5-039834b0be49" data-action="Deal Block" data-label="Paramount+ Essential or Premium for just $1 per month for two months" data-dimension48="Paramount+ Essential or Premium for just $1 per month for two months" data-dimension25="$"><strong>Paramount+ Essential or Premium for just $1 per month for two months</strong></a>, making it one of the best streaming deals currently available. That's a massive discount from the usual prices of $9 and $13. <a class="view-deal button" href="https://www.paramountplus.com/" target="_blank" rel="nofollow" data-dimension112="f4726217-6e8c-47f7-b5e5-039834b0be49" data-action="Deal Block" data-label="Paramount+ Essential or Premium for just $1 per month for two months" data-dimension48="Paramount+ Essential or Premium for just $1 per month for two months" data-dimension25="$">View Deal</a></p></div><figure class="inline-layout"><fw-embed-feed channel="toms_guide" playlist="gdR2W4" mode="row" player_placement="bottom-right"></fw-embed-feed></figure><h2 id="true-grit">'True Grit'</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/Q5fEgKj9QNs" allowfullscreen></iframe></div></div><p>After an outlaw guns down her father in cold blood, fearless 14-year-old Mattie Ross (Hailee Steinfeld) sets out to see the killer hanged. To get the job done, she enlists Rooster Cogburn (Jeff Bridges), a one-eyed U.S. Marshal with a fearsome reputation, a hair-trigger temper, and a much looser relationship with the law than she’d like. A vain Texas Ranger (Matt Damon) who is chasing the same man for his own reasons completes the mismatched trio. Their ride into hostile Indian Territory tests every single ounce of grit they possess. Co-directed by the Coen brothers, this sharp adaptation of Charles Portis's 1968 novel makes for a rousing, beautifully shot adventure that may just outshine the 1969 John Wayne original.</p><p><em><strong>Stream now on </strong></em><a href="https://www.paramountplus.com/movies/video/d3_qWtv1IZ6CKqEWYUyL96VdIuVx2FIf/" target="_blank" rel="nofollow"><em><strong>Paramount+</strong></em></a> </p><h2 id="django-unchained">'Django Unchained'</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/_iH0UBYDI4g" allowfullscreen></iframe></div></div><p>Two years before the Civil War, a slave named Django (Jamie Foxx) is freed by Dr. King Schultz (Christoph Waltz), an eccentric German bounty hunter who needs help identifying three wanted killers. The two strike up an unlikely, highly lucrative partnership. Once the job is done, Schultz agrees to help Django track down and rescue his long-lost wife from an abusive plantation owner. Their search leads them straight to Candyland, a notorious Mississippi estate run by Calvin Candie (Leonardo DiCaprio), a charming yet sadistic monster. While Candie doesn't take kindly to being played, he ultimately learns that a brutal reckoning is his true destiny. Quentin Tarantino's stylized, blood-soaked epic is as thrilling as it is unforgettable.</p><p><em><strong>Stream now on </strong></em><a href="https://www.paramountplus.com/movies/video/8Mo0OhX_WtdHnZGZaCaHdSZF3795H0dO/" target="_blank" rel="nofollow"><em><strong>Paramount+</strong></em></a></p><h2 id="the-salvation">'The Salvation'</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/LwBS3a9HOWI" allowfullscreen></iframe></div></div><p>In 1870s America, Danish immigrant and former soldier Jon (Mads Mikkelsen) has finally saved enough money to bring his wife and young son across the ocean. Tragically, their long-awaited reunion lasts barely a day before both are murdered by a pair of brutal drifters. Jon swiftly enacts his vengeance, but his righteous fury triggers a deadly chain reaction: one of the men he killed is the brother of Delarue (Jeffrey Dean Morgan), a feared, merciless gang leader. When Delarue descends on the local town demanding the killer's head, Jon's terrified neighbors quickly abandon him. Left entirely on his own, Jon must stand solitary against a ruthless army to defend the town that betrayed him and honor the family he lost.</p><p><em><strong>Stream now on </strong></em><a href="https://www.paramountplus.com/movies/video/aK_naOzbnO77sAeJf8_sDFxk70Zhtqa9/" target="_blank" rel="nofollow"><em><strong>Paramount+</strong></em></a></p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-exzPJO"></div>                            </div>                            <script src="https://kwizly.com/embed/exzPJO.js" async></script>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Spike Lee is having the ultimate Knicks championship summer, but his greatest New York movie leaves Prime Video in days ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/entertainment/prime-video/spike-lee-is-having-the-ultimate-knicks-championship-summer-but-his-greatest-new-york-movie-leaves-prime-video-in-days</link>
                                                                            <description>
                            <![CDATA[ Spend a day with Mookie and Co. down in Bed-Stuy with a "Do the Right Thing" rewatch before the Spike Lee masterpiece leaves Prime Video on June 30 ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">ky6xM56gFgVxw9qL3aRbpN</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/d8dbWYQqaBTTMrK85LeG2M-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 23 Jun 2026 06:00:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Prime Video]]></category>
                                                    <category><![CDATA[Entertainment]]></category>
                                                    <category><![CDATA[Streaming]]></category>
                                                                                                                    <dc:creator><![CDATA[ Christina Izzo ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/LMncQCRNbbLXxxjbfZJvWE.jpeg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/d8dbWYQqaBTTMrK85LeG2M-1280-80.jpg">
                                                            <media:credit><![CDATA[Prime Video]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Do the Right Thing]]></media:description>                                                            <media:text><![CDATA[Do the Right Thing]]></media:text>
                                <media:title type="plain"><![CDATA[Do the Right Thing]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/d8dbWYQqaBTTMrK85LeG2M-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>In case you haven't heard, it's a Spike Lee summer. Ever since his beloved New York Knicks broke a 53-year drought to win this year's NBA Championships, the legendary filmmaker has been joyfully hitting the streets of New York in celebration with, well, everybody. The whole spectacle has looked like a scene straight out of one of Lee's NYC-set flicks, none more iconic or summery than "Do the Right Thing."</p><div  class="fancy-box"><div class="fancy_box-title">'Do the Right Thing' details</div><div class="fancy_box_body"><p class="fancy-box__body-text"><ul><li><strong>Writer/director:</strong> Spike Lee</li><li><strong>Starring:</strong> Spike Lee, Danny Aiello, Giancarlo Esposito, John Turturro, Rosie Perez, and Bill Nunn</li><li><strong>Runtime:</strong> 2 hours (120 minutes)</li><li><strong>Where to watch:</strong> <a data-analytics-id="inline-link" href="https://www.amazon.com/dp/B000I9VOGW" target="_blank" rel="nofollow"><strong>Prime Video</strong></a></li></ul></p></div></div><p>Taking place over the course of a single day in Brooklyn — the most sweltering day of the year, to be exact — the 1989 indie comedy encompasses summer, all relentless heat, rising tensions and residential liveliness.  </p><p>And if all of that post-win, Spike-approved good energy isn't enough of an impetus to rewatch the cinematic classic, then the fact that "Do the Right Thing" is set to leave <a href="https://www.tomsguide.com/entertainment/streaming/prime-video">Prime Video</a> at the end of the month should be reason enough. Here's why you should hang out with Mookie, Da Mayor, Mother Sister, Radio Raheem and the rest of the Stuyvesant Avenue crew before they depart the <a href="https://www.tomsguide.com/us/best-streaming-video-services,review-2625.html">streaming service</a> on June 30. </p><figure class="inline-layout"><fw-embed-feed channel="toms_guide" playlist="gdR2W4" mode="row" player_placement="bottom-right"></fw-embed-feed></figure><h2 id="what-is-do-the-right-thing-about">What is 'Do the Right Thing' about?</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/yVAD4fYRcvA" allowfullscreen></iframe></div></div><p>Written, directed and produced by Spike Lee, the events of "Do the Right Thing" play out across a single summer day in Brooklyn's Bedford-Stuyvesant area, following Lee's character Mookie as he navigates his relationships with his Black-American neighbors (played by Ossie Davis, Ruby Dee, Bill Nunn and Roger Guenveur Smith, among others) and the Italian-American owners of the local pizzeria at which he works. (Danny Aiello, John Turturro and Richard Edson make up the latter dough-punching contingent.) </p><p>As the temperatures continue to ratchet up, the simmering racial tensions between those two groups boil over after Mookie's buddy Buggin' Out (Giancarlo Esposito) demands that the pizzeria display prominent Black public figures on its "Wall of Fame," a denied request that leads to a neighborhood boycott. </p><h2 id="why-i-recommend-you-stream-do-the-right-thing-on-prime-video">Why I recommend you stream 'Do the Right Thing' on Prime Video</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="pt9wRdSBHhneZAkHkT324M" name="Spike Lee in "Do the Right Thing"" alt="Do the Right Thing" src="https://cdn.mos.cms.futurecdn.net/pt9wRdSBHhneZAkHkT324M.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Prime Video)</span></figcaption></figure><p>Spike Lee had made ambitious and energetic films prior to "Do the Right Thing" — including "She's Gotta Have It" and "School Daze" — but his 1989 ode to New York summer remains arguably his most seminal work all these decades later, one pulsing with infectious vibrancy, social conflict, biting humor, raw emotion and unshakeable heat. </p><p>The film earned two Academy Award nominations, one for Lee's screenplay as well as for actor Danny Aiello's supporting performance) and has since been ranked one of the greatest films of all time by <a href="https://www.bfi.org.uk/sight-and-sound/greatest-films-all-time" target="_blank">Sight and Sound</a>'s 2022 survey of film critics, curators, archivists and more.  </p><p>On <a href="https://www.rottentomatoes.com/m/do_the_right_thing" target="_blank" rel="nofollow">Rotten Tomatoes,</a> the film has an approval rating of 92%, with its critics' consensus praising: "Smart, vibrant and urgent without being didactic, 'Do the Right Thing' is one of Spike Lee's most fully realized efforts – and one of the most important films of the 1980s." So do the right thing and give this Spike Lee masterpiece a rewatch before it's gone. </p><p><em><strong>Stream </strong></em><a href="https://www.amazon.com/dp/B000I9VOGW" target="_blank" rel="nofollow"><em><strong>"Do the Right Thing" on Prime Video</strong></em></a><em><strong> now</strong></em></p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-ey6xaW"></div>                            </div>                            <script src="https://kwizly.com/embed/ey6xaW.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/i-asked-chatgpt-which-movies-to-watch-before-2026s-biggest-summer-blockbusters-these-films-got-added-to-my-streaming-queue">I asked ChatGPT which movies to watch before 2026’s biggest summer blockbusters — these films got added to my streaming queue</a></li><li><a href="https://www.tomsguide.com/entertainment/movies/37-biggest-summer-movies-of-2026-spider-man-star-wars-the-odyssey-toy-story-and-more">37 biggest summer movies of 2026 — 'Spider-Man,' 'Star Wars,' 'The Odyssey,' 'Toy Story' and more</a></li><li><a href="https://www.tomsguide.com/entertainment/netflix/i-watch-netflix-movies-for-a-living-and-these-are-the-5-films-im-adding-to-my-summer-watchlist">I watch Netflix movies for a living and these are the 5 films I’m adding to my summer watchlist</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Prime Video top 10 movies — here’s the 3 worth watching this week (June 22-28) ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/entertainment/prime-video/prime-video-top-10-movies-heres-the-3-worth-watching-this-week-june-22-28</link>
                                                                            <description>
                            <![CDATA[ If you're browsing Prime Video this week, these are the first three movies I'd recommend adding to your watchlist. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">39mxDD3YsxVNmnJvG8tUFo</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/jei6mM4DzGfkzn9S6Ezz7U-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Mon, 22 Jun 2026 09:26:20 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Prime Video]]></category>
                                                    <category><![CDATA[Entertainment]]></category>
                                                    <category><![CDATA[Streaming]]></category>
                                                                                                <author><![CDATA[ alix.blackburn@futurenet.com (Alix Blackburn) ]]></author>                    <dc:creator><![CDATA[ Alix Blackburn ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/8UxyT2McanNFLYwQ6wC7di.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/jei6mM4DzGfkzn9S6Ezz7U-1280-80.jpg">
                                                            <media:credit><![CDATA[Prime Video; Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Prime Video logo on a yellow popcorn background]]></media:description>                                                            <media:text><![CDATA[Prime Video logo on a yellow popcorn background]]></media:text>
                                <media:title type="plain"><![CDATA[Prime Video logo on a yellow popcorn background]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/jei6mM4DzGfkzn9S6Ezz7U-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>If you're not sure what to stream on <a href="https://www.tomsguide.com/entertainment/streaming/prime-video">Prime Video</a>, its top 10 movies list is a useful place to begin. The ranking showcases the films currently drawing the most viewers on the service. To help you avoid wasting an evening on a disappointing pick, I've highlighted the movies I'd recommend streaming first.</p><p>That includes a popular DCU movie that is perfect to watch before “Supergirl,” a new romantic drama sequel packed with yearning and tension, and an action-thriller starring Jason Statham. The recommendations below are pulled from Prime Video’s top 10 movies as of <strong> Monday, June 22, 2026</strong>. The chart isn't particularly strong this week, but these are the three titles I think are most worth your time.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-XYQaAX"></div>                            </div>                            <script src="https://kwizly.com/embed/XYQaAX.js" async></script><h3 class="article-body__section" id="section-best-prime-video-top-10-movies-to-stream-right-now"><span>Best Prime Video top 10 movies to stream right now</span></h3><h2 id="superman-2025-2">‘Superman’ (2025)</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/Ox8ZLF6cGM0" allowfullscreen></iframe></div></div><p>As the first movie in James Gunn’s new DC Universe, “Superman” lays the foundation for an entirely new interconnected franchise. With David Corenswet taking on the iconic role, the film introduced a fresh take on Clark Kent while setting up the next chapter of the DCU. That makes now the perfect time to catch up, especially with “Supergirl” arriving this week as the franchise's second movie. </p><p>In James Gunn’s reboot of “Superman,” Clark Kent is already an established hero working as a reporter at the Daily Planet while protecting Metropolis as Superman. When he intervenes in an international conflict, billionaire tech mogul Lex Luthor (Nicholas Hoult) seizes the opportunity to turn public opinion against him, portraying Superman as a dangerous threat. As Luthor’s schemes grow more elaborate, Superman finds himself facing a crisis that puts the entire world at risk. </p><p><em><strong>Watch "Superman" on </strong></em><a href="https://www.amazon.com/Superman-James-Gunn/dp/B0F4VGZ46L" target="_blank" rel="nofollow"><em><strong>Prime Video</strong></em></a><em><strong> now</strong></em></p><h2 id="your-fault-london-2026">‘Your Fault: London’ (2026)</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/A3ZbjkDxYUs" allowfullscreen></iframe></div></div><p>I do love a guilty pleasure movie, and Prime Video has a knack for delivering exactly what fans of the genre enjoy. The latest addition comes in the form of “Your Fault: London,” following on from 2025’s “My Fault: London.” Together, both films continue Prime Video’s English-language adaptation of Mercedes Ron’s bestselling Culpables trilogy. This sequel leans further into drama in its second instalment, moving away from the first film’s heavier focus on past trauma and its brief shift into action-thriller territory. </p><p>“Your Fault: London” follows Noah (Asha Banks) and Nick (Matthew Broome) as they try to keep their relationship alive while living increasingly separate lives in London and Oxford. Noah begins university life at Oxford, where she meets her roommate Briar (Scarlett Rayner) and Michael (Joel Nankervis), a charming student. Meanwhile, Nick works within his father’s business empire and meets his new colleague Sophia (Louisa Binder). Soon, the couple’s bond is tested more than ever. </p><p><em><strong>Watch "Your Fault: London" on </strong></em><a href="https://www.amazon.com/Your-Fault-London-Charlotte-Fassler/dp/B0GXL87WLG" target="_blank" rel="nofollow"><em><strong>Prime Video</strong></em></a><em><strong> now</strong></em></p><h2 id="a-working-man-2025">‘A Working Man’ (2025)</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/zTbgNC42Ops" allowfullscreen></iframe></div></div><p>If you’re in the mood for an action-packed thriller this week, “A Working Man” should be on your watchlist. It’s a real treat for action purists who miss the R-rated vengeance fantasies of the late ’80s and ’90s. While the film is weighed down by a predictable plot and some overly dramatic villain tropes, it still delivers a slick, satisfying popcorn actioner that reminds you why Jason Statham remains an untouchable force in modern action cinema. </p><p>Levon Cade (Jason Statham) is a former Royal Marine Commando who has left his covert military past behind to work construction in Chicago. When the teenage daughter of his boss, Jenny Garcia (Arianna Rivas), is kidnapped during a violent human trafficking operation, Levon is pulled back into his old skill set. He begins tracking the kidnappers across the city, uncovering a wider criminal network tied to organized crime and corrupt officials, determined to bring the girl back home safely.</p><p><em><strong>Watch "A Working Man" on </strong></em><a href="https://www.amazon.com/Working-Man-David-Ayer/dp/B0DV2B7N5D" target="_blank" rel="nofollow"><em><strong>Prime Video</strong></em></a><em><strong> now</strong></em></p><h3 class="article-body__section" id="section-prime-video-top-10-movies-right-now"><span>Prime Video top 10 movies right now</span></h3><ol start="1"><li>"Superman" (2025)</li><li>"Your Fault: London" (2026)</li><li>"Jack Ryan: Ghost War" (2026)</li><li>"Eli Manning Presents: The Undercovers" (2024)</li><li>"Aquaman and the Lost Kingdom" (2023)</li><li>"The Pout-Pout Fish" (2026)</li><li>"Despicable Me 4" (2024)</li><li>"Battleship" (2012)</li><li>"My Fault: London" (2025)</li><li>"A Working Man" (2025)</li></ol><figure class="inline-layout"><fw-embed-feed channel="toms_guide" playlist="gdR2W4" mode="row" player_placement="bottom-right"></fw-embed-feed></figure><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/entertainment/prime-video/our-readers-picked-the-best-prime-video-original-show-and-movie-of-2026-so-far-and-the-winners-surprised-me">Our readers picked the best Prime Video originals of 2026 (so far)</a></li><li><a href="https://www.tomsguide.com/entertainment/prime-video/new-on-prime-video-in-june-2026-top-movies-and-shows-to-stream-this-month">Everything new on Prime Video in June 2026</a></li><li><a href="https://www.tomsguide.com/entertainment/prime-video/5-must-watch-classic-movies-were-just-added-to-prime-video-these-iconic-films-have-stood-the-ultimate-test-of-time">5 must-watch classic movies were just added to Prime Video</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ You may hurt yourself laughing: One of the funniest shows I've ever seen is this underrated gem on BritBox with 100% on Rotten Tomatoes ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/entertainment/streaming/you-may-hurt-yourself-laughing-one-of-the-funniest-shows-ive-ever-seen-is-this-underrated-gem-on-britbox-with-100-percent-on-rotten-tomatoes</link>
                                                                            <description>
                            <![CDATA[ Before she made "I May Destroy You," Michaela Coel gave the world "Chewing Gum. Here's why you should stream the hilarious 2015 sitcom on BritBox ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">u7r5k2xfQ7B6iqLrLjZezM</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/3fViT52yFcL7CVgnnQaxCR-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Mon, 22 Jun 2026 07:30:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Streaming]]></category>
                                                    <category><![CDATA[Entertainment]]></category>
                                                                                                                    <dc:creator><![CDATA[ Christina Izzo ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/LMncQCRNbbLXxxjbfZJvWE.jpeg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/3fViT52yFcL7CVgnnQaxCR-1280-80.jpg">
                                                            <media:credit><![CDATA[E4]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Michaela Coel in Chewing Gum]]></media:description>                                                            <media:text><![CDATA[Michaela Coel in Chewing Gum]]></media:text>
                                <media:title type="plain"><![CDATA[Michaela Coel in Chewing Gum]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/3fViT52yFcL7CVgnnQaxCR-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p><strong>BritBox</strong> may not be as widely known as global streaming juggernauts like <a href="https://www.tomsguide.com/entertainment/streaming/netflix">Netflix</a> and <a href="https://www.tomsguide.com/entertainment/streaming/disney-plus">Disney+</a>, but if you're a diehard fan of <a href="https://www.tomsguide.com/best-picks/25-best-british-shows-you-can-watch-in-the-us">British shows</a> and movies, there's arguably no better <a href="https://www.tomsguide.com/us/best-streaming-video-services,review-2625.html">streaming service</a> out there. Founded by BBC Studios and ITV, the platform features current and classic programs across all genres, whether you're into <a href="https://www.tomsguide.com/entertainment/streaming/3-cozy-mystery-dramas-on-britbox-perfect-for-a-weekend-bing">quaint country mysteries</a>, <a href="https://www.tomsguide.com/entertainment/streaming/this-quirky-british-detective-drama-just-arrived-on-britbox-and-its-got-93-percent-on-rotten-tomatoes">quirky detective dramas or </a>cackle-inducing TV comedies.<a href="https://www.tomsguide.com/entertainment/streaming/this-quirky-british-detective-drama-just-arrived-on-britbox-and-its-got-93-percent-on-rotten-tomatoes"> </a></p><p>And of the latter, BritBox is home to one of this writer's favorite British sitcoms: <strong>"Chewing Gum,"</strong> the 2015 E4 sitcom by the multitalented <strong>Michaela Coel</strong>, who would go on to create the acclaimed HBO dramedy "I May Destroy You," earning the Best Actress BAFTA and a Primetime Emmy (becoming the first Black woman to win for Outstanding Writing for a Limited Series) in the process. </p><p>Based on Coel's 2012 one-woman play "Chewing Gum Dreams," "Chewing Gum" may not be as well-known as Coel's latter, darker work, but it's no less worthy of a watch, a riotously funny series featuring some of Britain's finest, with the likes of Cynthia Erivo and Jonathan Bailey joining Coel onscreen. Need more convincing? Here's why you should tune into "Chewing Gum" on BritBox now. </p><figure class="inline-layout"><fw-embed-feed channel="toms_guide" playlist="gdR2W4" mode="row" player_placement="bottom-right"></fw-embed-feed></figure><h2 id="what-is-chewing-gum-about">What is 'Chewing Gum' about?</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/zrM5EquhmJE" allowfullscreen></iframe></div></div><p>Writer-creator Michaela Coel stars as Tracey Gordon, a 24-year-old deeply religious but sexually curious woman who dumps her ultra-pious boyfriend of six years, Ronald (John MacMillan), to embark on a chaotic and hysterical mission to break free from her repressed Pentecostal upbringing, lose her virginity and explore the wider world.</p><p>As the sitcom follows along with Tracey's amorous hijinks and attempts at seduction across two seasons and a dozen episodes, "Chewing Gum" gives hilarious insights into the protagonist's colorful world, from bad dates to Beyoncé-inspired makeovers to the London council estate in which she lives. (Along with Coel and MacMillan, the cast includes Danielle Walters as Candice, Tracey's best friend; Susan Wokoma as Tracey's sister Cynthia; and Shola Adewusi as their strict, devout mother Joy.) </p><h2 id="why-i-recommend-you-stream-chewing-gum-on-britbox">Why I recommend you stream 'Chewing Gum' on BritBox</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="wk4zYKPMHyBCBfg77tTx8R" name="Michaela Coel in Chewing Gum" alt="Michaela Coel in Chewing Gum" src="https://cdn.mos.cms.futurecdn.net/wk4zYKPMHyBCBfg77tTx8R.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: E4)</span></figcaption></figure><p>If you enjoy smart cringe comedy like "Fleabag," "Derry Girls," "This Way Up" and, yes, "I May Destroy You," you'll no doubt find plenty to like about "Chewing Gum." Coel — who took home a BAFTA for performing in the unapologetically raunchy sitcom — wrings countless laughs out of Tracey's awkward attempts at romance and coming-of-age foibles, especially as the character frequently breaks the fourth wall to share her innermost secrets and wildest anxieties. </p><p>"Chewing Gum" is the rare comedy series that maintained a perfect 100% approval rating on <a href="https://www.rottentomatoes.com/tv/chewing_gum" target="_blank">Rotten Tomatoes</a> across its entire run, with critics praising Coel's "brazen" lead performance, the scripts' deft juggling of "Christian convictions and crude intentions" and the show's overall "surreal charm and button-pushing comedy."</p><p><em><strong>Stream </strong></em><a href="https://www.britbox.com/us/season/Chewing_Gum_S1_10176223" target="_blank" rel="nofollow"><em><strong>"Chewing Gum" on BritBox </strong></em></a><em><strong>now</strong></em></p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/entertainment/streaming/i-cant-believe-one-of-my-favorite-british-sitcoms-from-the-90s-is-streaming-for-free-on-tubi-and-it-has-100-percent-on-rotten-tomatoes">I can't believe one of my favorite British sitcoms from the '90s is streaming for free on Tubi (and it has 100% on Rotten Tomatoes)</a></li><li><a href="https://www.tomsguide.com/entertainment/streaming/i-found-3-new-british-tv-gems-and-theyre-all-rated-over-90-percent-on-rotten-tomatoes">I found 3 new British TV gems – and they're all rated over 90% on Rotten Tomatoes</a></li><li><a href="https://www.tomsguide.com/entertainment/streaming/3-britbox-shows-to-watch-on-hbo-max">3 BritBox shows to watch on HBO Max</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ 'House of the Dragon' finally delivers the epic battle I've been waiting for in its season 3 premiere ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/entertainment/hbo-max/house-of-the-dragon-finally-delivers-the-epic-battle-ive-been-waiting-for-in-its-season-3-premiere</link>
                                                                            <description>
                            <![CDATA[ "House of the Dragon" finally delivered the epic battle I waited all of season 2 for in its season 3 premiere. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">oWP8zLar9AS3YjA8kNjBqP</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/UCZuYmBwXCUkwkxjHnvU4N-1280-80.png" type="image/png" length="0"></enclosure>
                                                                        <pubDate>Mon, 22 Jun 2026 02:00:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[HBO Max]]></category>
                                                    <category><![CDATA[Entertainment]]></category>
                                                    <category><![CDATA[Streaming]]></category>
                                                                                                <author><![CDATA[ malcolm.mcmillan@futurenet.com (Malcolm McMillan) ]]></author>                    <dc:creator><![CDATA[ Malcolm McMillan ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/sSDLEbNEgBXf86HpujaWZ6.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Malcolm McMillan is a Streaming Editor for Tom&#039;s Guide, covering all the latest in streaming TV shows and movies. That means news, analysis, recommendations, reviews and more for just about anything you can watch, including sports! If it can be seen on a screen, he can write about it. &lt;/p&gt;&lt;p&gt;Malcolm has been with Tom&#039;s Guide since June 2022, starting as a staff writer covering breaking news. Since then, he&#039;s transitioned to cover artificial intelligence (AI), A/V tech and VR headsets. Since late 2023 he has almost exclusively covered streaming and entertainment for Tom&#039;s Guide.&lt;/p&gt;&lt;p&gt;Before writing for Tom&#039;s Guide, Malcolm worked as a fantasy football analyst writing for several sites and also had a brief stint working for Microsoft selling laptops, Xbox products and even the ill-fated Windows phone. He is passionate about video games and sports, though both cause him to yell at the TV frequently. He proudly sports many tattoos, including an Arsenal tattoo, in honor of the team that causes him to yell at the TV the most.&lt;/p&gt; ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/png" url="https://cdn.mos.cms.futurecdn.net/UCZuYmBwXCUkwkxjHnvU4N-1280-80.png">
                                                            <media:credit><![CDATA[Ollie Upton/HBO]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Steve Toussaint as Corlys Velaryon in &quot;House of the Dragon episode 301]]></media:description>                                                            <media:text><![CDATA[Steve Toussaint as Corlys Velaryon in &quot;House of the Dragon episode 301]]></media:text>
                                <media:title type="plain"><![CDATA[Steve Toussaint as Corlys Velaryon in &quot;House of the Dragon episode 301]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/UCZuYmBwXCUkwkxjHnvU4N-1280-80.png" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <div  class="fancy-box"><div class="fancy_box-title">Tom's Guide Verdict: "House of the Dragon" season 3 premiere</div><div class="fancy_box_body"><p class="fancy-box__body-text"><ul><li><strong>Rating: 4/5 Stars</strong></li><li><strong>Verdict: </strong>"House of the Dragon" heard the cries for more battles and more dragons, and delivered an epic battle in this season 3 premiere. It finally made it feel like anyone and everyone could die in Westeros again. I just wish we had gotten to the battle quicker.</li><li><strong>Premiere date/time:</strong> Out now</li><li><strong>Channel:</strong> HBO and <a data-analytics-id="inline-link" href="https://www.tomsguide.com/entertainment/hbo-max/watch-a-knight-of-the-seven-kingdoms" target="_blank">streaming on HBO Max</a></li></ul></p></div></div><p>Tonight's "House of the Dragon" season 3 premiere had one job: wash away the stench of season 2. <a href="https://www.tomsguide.com/entertainment/hbo-max/house-of-the-dragon-is-following-in-game-of-thrones-footsteps-and-thats-a-problem">The season 2 finale</a> (all the way back in August 2024!) felt like it was building towards a major showdown... only to pull the rug out from under us with a cliffhanger ending. People felt cheated, and suddenly, there was concern that the show and franchise as a whole had lost their way.</p><p>Having nearly two years to sit in those bad vibes didn't help. And when "<a href="https://www.tomsguide.com/news/live/a-knight-of-the-seven-kingdoms-season-1-finale-live">A Knight of the Seven Kingdoms</a>" arrived this year to critical acclaim, it felt like "House of the Dragon" had been eclipsed.</p><p>After tonight, though, I think we can put our concerns to rest. Or, at least, lock them in a room in Dragonstone for the time being. Tonight's season 3 premiere wasn't perfect, and frankly, it would have worked so much better as the finale of season 2. But it delivered epic battles on dragonback and brought back the expectation that anyone and everyone can die in Westeros.</p><p><em><strong>Spoilers ahead for "House of the Dragon" season 3 premiere</strong></em></p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:14.80%;"><img id="4qkPkyt7YheYgpg43NfzSY" name="TG_Spoiler_Warning_2.jpg" alt="An image indicating spoilers are ahead." src="https://cdn.mos.cms.futurecdn.net/4qkPkyt7YheYgpg43NfzSY.jpg" mos="" align="middle" fullscreen="" width="2000" height="296" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><h2 id="house-of-the-dragon-season-2-should-have-ended-with-this-battle">'House of the Dragon' season 2 should have ended with this battle</h2><p>At the end of season 2, everyone seems set to converge for a major battle. </p><p>That's where the season 3 premiere picks up. Daemon (Matt Smith) is fighting the Lannisters with the Rivermen. Ormund Hightower (James Norton) is on his way to King's Landing to aid Aemond (Ewan Mitchell), who has deposed his brother Aegon (Tom Glynn-Carney). And a Triarchy fleet led by Lohar is on a collision course with Corlys Velaryon's (Steve Toussaint) fleet in the Gullet, not far from Dragonstone, where Rhaenyra (Emma D'Arcy) is planning to take King's Landing with the help of the former queen consort Alicent Hightower (Olivia Cooke).</p><p>Unfortunately, we spend a good chunk of the episode going over this, and that's because the show thinks we need to. It's been nearly two years since the end of season 2, and there's only so much you can fit into a "Previously on ..." </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="XtkzNJz6ULuwAWafQsev5N" name="ewan-mitchell" alt="Ewan Mitchell as Prince Aemond in "House of the Dragon episode 301" src="https://cdn.mos.cms.futurecdn.net/XtkzNJz6ULuwAWafQsev5N.png" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Ollie Upton/HBO)</span></figcaption></figure><p>Maybe there were budgetary concerns as well (60 minutes of fighting is more expensive than 30, after all) but it didn't feel like Ryan Condol and company cheaped out on this episode. We got the appearance of numerous dragons outside of the Gullet, and those cost just as much as any battle.</p><p>Had this been the season 2 finale, I think that the show could have devoted the entire episode to the epic battle in the Gullet, similar to what "Game of Thrones" did in "Blackwater." If it had done that, I'd have been hard-pressed not to declare the episode a five out of five. The fighting is well choreographed, there are some epic one-on-one battles, and we see some major character deaths. Plus, there are <em>three</em> dragons fighting in the Gullet, one of which goes down into the depths, never to return, and another that is out of control, burning friend and foe alike.</p><p>In short, it's exactly the choreographed chaos we love in a Westerosi battle. While the climactic death of Jacaerys "Jace" Velaryon (Harry Collett) doesn't hit as hard as the showrunners would probably have liked, Lohar's demise is satisfying to watch. Now the question remains: Can this show deliver more of the same as season 3 goes on?</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-Ww38oW"></div>                            </div>                            <script src="https://kwizly.com/embed/Ww38oW.js" async></script><h2 id="verdict-anyone-can-die-in-house-of-the-dragon-and-this-season-seems-set-on-proving-that">Verdict: Anyone can die in 'House of the Dragon,' and this season seems set on proving that</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/0JlMjgqduVw" allowfullscreen></iframe></div></div><p>My favorite aspect of this episode was that, while watching it, I felt that basically anyone and everyone could die. Those in King's Landing, as well as Ormund's army, felt safe (for now), but just about everyone else felt in peril, even those fighting far from the Battle of the Gullet.</p><p>That's one of the things we came to love from "Game of Thrones," and part of why the final seasons of that show were a bit underwhelming. George R.R. Martin sets the expectations that he will kill his darlings on a whim, and your fan-favorite characters will never be safe. I'm just hoping that by the end of season 3, we have quite a few more dramatic deaths to add to the list.</p><p><a href="https://www.hbomax.com/" target="_blank" rel="nofollow"><em>Stream "House of the Dragon" on HBO Max now</em></a></p><figure class="inline-layout"><fw-embed-feed channel="toms_guide" playlist="gdR2W4" mode="row" player_placement="bottom-right"></fw-embed-feed></figure><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/entertainment/paramount-plus/michael-fassbender-shines-in-the-agency-season-2-which-is-as-twisted-a-spy-thriller-as-ever">Michael Fassbender shines in ‘The Agency’ season 2, which is as twisted a spy thriller as ever</a></li><li><a href="https://www.tomsguide.com/entertainment/paramount-plus/3-new-to-paramount-movies-you-need-to-stream-this-weekend-june-19-21-2026">3 new to Paramount+ movies you need to stream this weekend (June 19-21)</a></li><li><a href="https://www.tomsguide.com/entertainment/streaming/fox-just-bought-roku-for-usd22-billion-and-it-could-be-a-disaster-for-streaming">Fox just bought Roku for $22 billion, and it could be a disaster for streaming</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ 'Rocky' is streaming on Netflix for its 50th anniversary — but it's not the sports movie you remember ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/entertainment/netflix/rocky-is-streaming-on-netflix-for-its-50th-anniversary-but-its-not-the-sports-movie-you-remember</link>
                                                                            <description>
                            <![CDATA[ Revisit "Rocky," the origin story of film's most famous fictional boxer Rocky Balboa, with a rewatch on Netflix to celebrate the movie's 50th anniversary ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">nPLUxWkovnPFNp7KDjb5wj</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/uLDJ3mwweDtUqurBj4JCMJ-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sun, 21 Jun 2026 08:45:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Netflix]]></category>
                                                    <category><![CDATA[Entertainment]]></category>
                                                    <category><![CDATA[Streaming]]></category>
                                                                                                                    <dc:creator><![CDATA[ Christina Izzo ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/LMncQCRNbbLXxxjbfZJvWE.jpeg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/uLDJ3mwweDtUqurBj4JCMJ-1280-80.jpg">
                                                            <media:credit><![CDATA[Alamy]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Sylvester Stallone in Rocky]]></media:description>                                                            <media:text><![CDATA[Sylvester Stallone in Rocky]]></media:text>
                                <media:title type="plain"><![CDATA[Sylvester Stallone in Rocky]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/uLDJ3mwweDtUqurBj4JCMJ-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Between the Winter Olympics, the NBA Finals (go Knicks!) and the <a href="https://www.tomsguide.com/entertainment/streaming/toms-guide-to-the-world-cup">FIFA World Cup</a>, 2026 has been an especially sporty year so far, so it feels fitting that this year marks the big 50th anniversary of one of the greatest <a href="https://www.tomsguide.com/entertainment/streaming/inspiring-sports-movies">sports movies</a> of all time — we're talking, of course, about that legendary boxing flick, "Rocky."</p><p>Written by and starring Sylvester Stallone, the 1976 classic is a rousing, rags-to-riches underdog story that not only redefined cinema but also, through those energetic training montages, that instantly iconic score and Stallone's own dogged determination to get the movie made, is one of the most inspiring watches we've seen on any screen.  </p><p>In the five decades since the Best Picture-winning ring drama first premiered in theaters, "Rocky" was selected by the Library of Congress for preservation in the National Film Registry for being "culturally, historically or aesthetically significant" and spawned eight sequels, including the critically acclaimed "Creed" trilogy. But this year's big anniversary is an opportune time to go back to the Balboa beginnings with a "Rocky" rewatch. Helpfully, the sports drama is available to stream on <a href="https://www.tomsguide.com/entertainment/streaming/netflix">Netflix</a> right now. </p><figure class="inline-layout"><fw-embed-feed channel="toms_guide" playlist="gdR2W4" mode="row" player_placement="bottom-right"></fw-embed-feed></figure><h2 id="what-is-rocky-about">What is 'Rocky' about?</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/-Hk-LYcavrw" allowfullscreen></iframe></div></div><p>Directed by<strong> </strong>John G. Avildsen (who won the Oscar for his scrappy, naturalistic filmmaking here), "Rocky" stars actor-writer Sylvester Stallone as Rocky Balboa, a small-time club fighter from working-class Philadelphia fighter plucked out of obscurity by the reigning world heavyweight champion Apollo Creed (<a href="https://www.tomsguide.com/entertainment/streaming/5-best-carl-weathers-movies-from-rocky-to-predator-and-where-to-stream-them">Carl Weathers</a>). With Creed's scheduled opponent unable to compete due to an injured hand, Balboa only has five weeks to prep for the fight of his life. </p><p>Along with chronicling Rocky's tenacious training for 15 rounds against the greatest boxer in the world — most famously depicted in that "Gonna Fly Now"-soundtracked, stair-climbing Philadelphia Museum of Art sequence — the drama also shows off Rocky's soft side, following his tender courtship of Adrianna "Adrian" Pennino (Talia Shire), a shy woman working at the local pet store.</p><h2 id="why-rocky-is-worth-a-rewatch-on-netflix">Why 'Rocky' is worth a rewatch on Netflix</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="u2KRcENGazrnEuJwYF4PSS" name="Sylvester Stallone in Rocky" alt="Sylvester Stallone in Rocky" src="https://cdn.mos.cms.futurecdn.net/u2KRcENGazrnEuJwYF4PSS.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: United Artists)</span></figcaption></figure><p>Along with Martin Scorsese's "Taxi Driver," Clint Eastwood's "Million Dollar Baby" and its own spinoff "Creed," "Rocky" is one of the rare boxing movies that transcends its sports-movie genre by focusing on the individual beyond the fighter. </p><p>We don't just root for Rocky in the ring as he goes from everyman to champion; we cheer on his personal growth, his romantic relationship and his resilient, empathetic nature. It's that grounded, character-driven quality that has allowed the athletic drama to endure as a deeply human story of passion, pathos and perseverance. </p><p>Though its franchise successors have varied in quality from top-notch (2015's "Creed") to TKO (1990's "Rocky V"), the 1976 original is an undisputed film classic that will be just as uplifting and gripping 50 years from now. So go in for one more round!</p><p><em><strong>Stream </strong></em><a href="https://www.anrdoezrs.net/links/8900245/type/dlg/sid/tomsguide-us-8611402218364848455/https://www.netflix.com/watch/915927" target="_blank" rel="nofollow"><em><strong>"Rocky" on Netflix </strong></em></a><em><strong>now</strong></em></p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-W5xY3e"></div>                            </div>                            <script src="https://kwizly.com/embed/W5xY3e.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/entertainment/netflix/netflix-just-added-46-new-shows-and-movies-here-are-the-5-im-streaming-first-june-1-2026">Netflix just added 46 new shows and movies — here's 6 I'd stream right now</a></li><li><a href="https://www.tomsguide.com/entertainment/streaming/missed-it-in-theaters-heres-every-movie-finally-arriving-on-streaming-in-june-2026">Missed it in theaters? Here's every movie finally arriving on streaming in June 2026</a></li><li><a href="https://www.tomsguide.com/entertainment/netflix/we-asked-our-readers-for-the-best-netflix-original-show-or-movie-of-2026-so-far-and-there-was-a-clear-winner">We asked our readers for the best Netflix original show or movie of 2026 (so far) — and there was a clear winner</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ The 6 best video games we've played in 2026 (so far) on PS5, Switch 2, PC and Xbox ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/gaming/6-best-video-games-of-2026-so-far-on-ps5-nintendo-switch-2-pc-and-xbox</link>
                                                                            <description>
                            <![CDATA[ It's already been an excellent year for new video games, and with 2026 at the halfway point, these are the best we've played so far. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">YgS63HsVQUQPudxfMGRWNk</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/AEzSaTkaXpfRFkwn4XhHbj-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sun, 21 Jun 2026 07:15:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Gaming]]></category>
                                                                                                <author><![CDATA[ rory.mellon@futurenet.com (Rory Mellon) ]]></author>                    <dc:creator><![CDATA[ Rory Mellon ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/5Rv6LtQXMj5JB4Eu8Lt4Sn.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                        <dc:contributor><![CDATA[ Tom&#039;s Guide Staff ]]></dc:contributor>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/AEzSaTkaXpfRFkwn4XhHbj-1280-80.jpg">
                                                            <media:credit><![CDATA[IO Interactive]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[007 First Light]]></media:description>                                                            <media:text><![CDATA[007 First Light]]></media:text>
                                <media:title type="plain"><![CDATA[007 First Light]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/AEzSaTkaXpfRFkwn4XhHbj-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>We're approaching the halfway point of 2026, and it's already shaping up to be another truly fantastic 12 months for new video games. And we haven't even got to the ludicrously crowded September/October period yet, and the small matter of the launch of <a href="https://www.tomsguide.com/tag/grand-theft-auto">Grand Theft Auto VI</a>, either.</p><p>But before all of the exciting games to come, we wanted to take a moment to celebrate the games already released in 2026 that have seriously impressed us. Across all major platforms, there's been plenty of must-play experiences ranging from new installments in beloved franchises to original IPs, and one of the best licensed games ever made!</p><p>If you skipped any of these games when they launched, the summer months (which are a little quieter for new releases) are the time to circle back. These are the best video games we've played in 2026 so far.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-XbQNgO"></div>                            </div>                            <script src="https://kwizly.com/embed/XbQNgO.js" async></script><h2 id="resident-evil-requiem">Resident Evil Requiem</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/POz1-EmLsTY" allowfullscreen></iframe></div></div><p><em><strong>Platforms: </strong></em><em>Nintendo Switch 2, PC, PS5, Xbox Series X/S</em></p><p>I expected <a href="https://www.tomsguide.com/gaming/resident-evil-requiem-review">Resident Evil Requiem</a> to be a good time, but what I didn’t expect was for it to be one of my favorite Resident Evil titles of all time. It masterfully blends the gameplay of its two protagonists to offer an experience for fans of both action and horror, and makes both characters interesting to play as (although, admittedly, I always looked forward to Leon). </p><p>Being able to catch on to things or open new paths with Leon after progressing through an area with Claire made exploring areas a second time feel interesting instead of cumbersome, and the post-game content made me replay the game not once but twice, and that is saying a lot for someone who has never replayed a game or gone for platinums before. </p><p>Whether you’re playing on PS5 Pro or Switch 2, the game runs really well, and Capcom deserves credit for this when some studios (I’m looking at you, Bethesda!) haven’t done the best job at optimizing their games. </p><p>Requiem reminded me of what makes Resident Evil one of the best horror franchises ever made, and my personal favorite series in the genre. I am really excited for future RE titles and any DLC Requiem has to offer. Just give me more Leon Kennedy, Capcom. Just give me more Leon Kennedy. — <em>Phil Rodrigues</em></p><p><em><strong>Read our full </strong></em><a href="https://www.tomsguide.com/gaming/resident-evil-requiem-review"><em><strong>Resident Evil Requiem review</strong></em></a></p><div class="product"><a data-dimension112="914721ac-e535-4e01-985a-bff8b9a76135" data-action="Deal Block" data-label="Resident Evil Requiem is the latest entry in the popular survival horror-action series. You play as dual protagonists, Grace Ashcroft and Leon S. Kenedy, as they unravel a shocking mystery and survive against the hordes of the undead and even more frightening mutated creatures. Combining tense horror and blistering action, Resident Evil Requiem is a must-play title." data-dimension48="Resident Evil Requiem is the latest entry in the popular survival horror-action series. You play as dual protagonists, Grace Ashcroft and Leon S. Kenedy, as they unravel a shocking mystery and survive against the hordes of the undead and even more frightening mutated creatures. Combining tense horror and blistering action, Resident Evil Requiem is a must-play title." data-dimension25="$69" href="https://www.amazon.com/Resident-Evil-Requiem-Amazon-Exclusive-PlayStation/dp/B0FY929QN1/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1298px;"><p class="vanilla-image-block" style="padding-top:115.56%;"><img id="t6iarbisuGMy5SzXoHtF9Q" name="resident-evil-requiem-ps5-na-box" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/t6iarbisuGMy5SzXoHtF9Q.jpg" mos="" align="middle" fullscreen="" width="1298" height="1500" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>Resident Evil Requiem is the latest entry in the popular survival horror-action series. You play as dual protagonists, Grace Ashcroft and Leon S. Kenedy, as they unravel a shocking mystery and survive against the hordes of the undead and even more frightening mutated creatures. Combining tense horror and blistering action, Resident Evil Requiem is a must-play title.<a class="view-deal button" href="https://www.amazon.com/Resident-Evil-Requiem-Amazon-Exclusive-PlayStation/dp/B0FY929QN1/" target="_blank" rel="nofollow" data-dimension112="914721ac-e535-4e01-985a-bff8b9a76135" data-action="Deal Block" data-label="Resident Evil Requiem is the latest entry in the popular survival horror-action series. You play as dual protagonists, Grace Ashcroft and Leon S. Kenedy, as they unravel a shocking mystery and survive against the hordes of the undead and even more frightening mutated creatures. Combining tense horror and blistering action, Resident Evil Requiem is a must-play title." data-dimension48="Resident Evil Requiem is the latest entry in the popular survival horror-action series. You play as dual protagonists, Grace Ashcroft and Leon S. Kenedy, as they unravel a shocking mystery and survive against the hordes of the undead and even more frightening mutated creatures. Combining tense horror and blistering action, Resident Evil Requiem is a must-play title." data-dimension25="$69">View Deal</a></p></div><h2 id="pokemon-pokopia">Pokémon Pokopia</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/SDh6COB0Nqk" allowfullscreen></iframe></div></div><p><em><strong>Platforms: </strong></em><em>Nintendo Switch 2</em></p><p>As someone who’s never been a fan of Animal Crossing, <a href="https://www.tomsguide.com/gaming/nintendo/i-never-understood-the-cozy-game-hype-until-i-played-pokemon-pokopia-and-after-200-hours-i-still-cant-put-it-down">Pokémon Pokopia</a> was my biggest gaming surprise of 2026 — and it’s a game I can’t get enough of. It’s a cozy yet surprisingly deep life-simulation adventure where I’ve built and rebuilt habitats, restored ecosystems and created thriving communities for my favorite Pocket Monsters.</p><p>Playing as a Ditto who can craft and gain abilities to help with terraforming has been extremely fun. Each Pokémon’s personality and funny dialogue have made me fall in love with the franchise all over again. The gameplay loop is addictive, as is the creative freedom you’re given. Pokopia effortlessly blends elements of building sims, sandbox games, and classic Pokémon exploration into a seamless experience.</p><p>What perhaps surprised me the most, though, was the strong storytelling and writing revolving around a post-apocalyptic world. It’s surprisingly deep — and I certainly wasn’t expecting the scattered notes you find (or the ending) to hit that hard. Pokopia feels refreshingly new but unmistakably Pokémon at the same time. I can’t wait for the DLC! <em>— Nikita Achanta</em></p><p><em><strong>Read our full </strong></em><a href="https://www.tomsguide.com/gaming/pokemon-pokopia-review"><em><strong>Pokémon Pokopia review</strong></em></a></p><div class="product"><a data-dimension112="a4ac03b2-c7fe-4cfa-888b-1fafa4168dff" data-action="Deal Block" data-label="In Pokémon Pokopia, you'll play as a shape-shifting Ditto who can copy abilities from other Pokémon to rebuild an abandoned island. It’s the perfect cozy gaming blend of Pokémon, Animal Crossing and Minecraft. This Switch 2 exclusive has quickly become one of 2026's most popular new games." data-dimension48="In Pokémon Pokopia, you'll play as a shape-shifting Ditto who can copy abilities from other Pokémon to rebuild an abandoned island. It’s the perfect cozy gaming blend of Pokémon, Animal Crossing and Minecraft. This Switch 2 exclusive has quickly become one of 2026's most popular new games." data-dimension25="$69" href="https://www.amazon.com/Pok%C3%A9mon-Pokopia-Nintendo-Switch-2/dp/B0G1VH7HZ1/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:900px;"><p class="vanilla-image-block" style="padding-top:133.33%;"><img id="KM6mBbDSNKDZjBUAbWbd8b" name="Pokémon Pokopia" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/KM6mBbDSNKDZjBUAbWbd8b.jpg" mos="" align="middle" fullscreen="" width="900" height="1200" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>In Pokémon Pokopia, you'll play as a shape-shifting Ditto who can copy abilities from other Pokémon to rebuild an abandoned island. It’s the perfect cozy gaming blend of Pokémon, Animal Crossing and Minecraft. This Switch 2 exclusive has quickly become one of 2026's most popular new games. <a class="view-deal button" href="https://www.amazon.com/Pok%C3%A9mon-Pokopia-Nintendo-Switch-2/dp/B0G1VH7HZ1/" target="_blank" rel="nofollow" data-dimension112="a4ac03b2-c7fe-4cfa-888b-1fafa4168dff" data-action="Deal Block" data-label="In Pokémon Pokopia, you'll play as a shape-shifting Ditto who can copy abilities from other Pokémon to rebuild an abandoned island. It’s the perfect cozy gaming blend of Pokémon, Animal Crossing and Minecraft. This Switch 2 exclusive has quickly become one of 2026's most popular new games." data-dimension48="In Pokémon Pokopia, you'll play as a shape-shifting Ditto who can copy abilities from other Pokémon to rebuild an abandoned island. It’s the perfect cozy gaming blend of Pokémon, Animal Crossing and Minecraft. This Switch 2 exclusive has quickly become one of 2026's most popular new games." data-dimension25="$69">View Deal</a></p></div><h2 id="pragmata">Pragmata</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/TzBtbtOghV0" allowfullscreen></iframe></div></div><p><em><strong>Platforms: </strong></em><em>Nintendo Switch 2, PC, PS5, Xbox Series X/S</em></p><p>It’s amazing how much a strong demo can do in making someone like me see the vision. Before I took Hugh and Diana into rooms full of rampaging robots, I followed Capcom’s brand-new IP closely. The painfully long wait for a final release date took my hype levels down a peg, but I still maintained a sliver of hope that <a href="https://www.tomsguide.com/gaming/pragmata-review">Pragmata</a> would pull through and deliver a quality experience.</p><p>After replaying the demo way more times than I can count, I was fully convinced that Capcom had a new smash hit on their hands. Thankfully, that sentiment of mine stayed true once I reached the end of Hugh and Diana’s emotional journey. The genius way the developers at Capcom mashed up traditional third-person gunplay with a grid-based hacking system that’s controlled by the face buttons roped me in immediately. And I was always excited to see all the new weapons and mods I could tap into to take down waves of disgruntled bots.</p><p>I was shocked to see how much post-game content Pragmata had in store for me, which gave me plenty more reasons to bring my best loadouts to ever more challenging combat scenarios. While Pragmata’s story could have been a lot stronger, I still got a ton of enjoyment out of Hugh and Diana’s warm relationship. Here’s hoping we get a sequel that expands on this game’s clever approach to shooting and hacking. <em>— Elton Jones </em></p><p><em><strong>Read our full </strong></em><a href="https://www.tomsguide.com/gaming/pragmata-review"><em><strong>Pragmata review</strong></em></a></p><div class="product"><a data-dimension112="92c4f448-798f-40c4-aa1b-88ac5964f269" data-action="Deal Block" data-label="In Pragmata, you play Hugh, a man stranded on a lunar space station, who encounters Diana, a mysterious android resembling a young girl. Teaming up, they must find a way to return to Earth while dealing with various robotic threats that have taken over the station. With a cinema campaign and unique hacking-based combat, Pragmata is one of 2026’s strongest new games to date." data-dimension48="In Pragmata, you play Hugh, a man stranded on a lunar space station, who encounters Diana, a mysterious android resembling a young girl. Teaming up, they must find a way to return to Earth while dealing with various robotic threats that have taken over the station. With a cinema campaign and unique hacking-based combat, Pragmata is one of 2026’s strongest new games to date." data-dimension25="$59" href="https://www.amazon.com/Capcom-Pragmata-Standard-XBOX-Digital/dp/B0G6JS5TZG/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1175px;"><p class="vanilla-image-block" style="padding-top:127.66%;"><img id="ypUniBHcEyqcVkZ4NhTGCV" name="pragamata-xbox-box-na" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/ypUniBHcEyqcVkZ4NhTGCV.jpg" mos="" align="middle" fullscreen="" width="1175" height="1500" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>In Pragmata, you play Hugh, a man stranded on a lunar space station, who encounters Diana, a mysterious android resembling a young girl. Teaming up, they must find a way to return to Earth while dealing with various robotic threats that have taken over the station. With a cinema campaign and unique hacking-based combat, Pragmata is one of 2026’s strongest new games to date.<a class="view-deal button" href="https://www.amazon.com/Capcom-Pragmata-Standard-XBOX-Digital/dp/B0G6JS5TZG/" target="_blank" rel="nofollow" data-dimension112="92c4f448-798f-40c4-aa1b-88ac5964f269" data-action="Deal Block" data-label="In Pragmata, you play Hugh, a man stranded on a lunar space station, who encounters Diana, a mysterious android resembling a young girl. Teaming up, they must find a way to return to Earth while dealing with various robotic threats that have taken over the station. With a cinema campaign and unique hacking-based combat, Pragmata is one of 2026’s strongest new games to date." data-dimension48="In Pragmata, you play Hugh, a man stranded on a lunar space station, who encounters Diana, a mysterious android resembling a young girl. Teaming up, they must find a way to return to Earth while dealing with various robotic threats that have taken over the station. With a cinema campaign and unique hacking-based combat, Pragmata is one of 2026’s strongest new games to date." data-dimension25="$59">View Deal</a></p></div><h2 id="forza-horizon-6">Forza Horizon 6</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/oYhaW-Vr4wg" allowfullscreen></iframe></div></div><p><em><strong>Platforms: </strong></em><em>PC, Xbox Series X/S (PS5 TBD)</em></p><p>I mean, this one’s an obvious pick, right? Easily one of the best racing games over the past decade and the greatest in the Horizon series. <a href="https://www.tomsguide.com/gaming/forza-horizon-6-review">Forza Horizon 6</a> puts you in a drop-dead gorgeous recreation of Japan, gives you a ton of incredible cars to drive in, and an almost-infinite wealth of things to do from fun short storylines and stunt events (like racing a Gundam) to full-blown high-octane racing action.</p><p>And while I could go into the upgrades here to visual flair, the huge improvement in audio with a banger soundtrack and cars that sound <em>so </em>much more alive, the versatile driving physics giving you either arcade accessibility or sim-level immersion, or the variety of events keeping the game feeling alive for a long time to come.</p><p>But the real thing that keeps it head and shoulders above the competition is how it's the first racing title I’ve played to truly capture the essence of car culture. Every single tiny detail comes together to form a love letter to the automobile unlike anything you’ve played before. Just do yourself a favor, buy it now, and thank me later. <em>— Jason England</em></p><p><em><strong>Read our full </strong></em><a href="https://www.tomsguide.com/gaming/forza-horizon-6-review"><em><strong>Forza Horizon 6 review</strong></em></a></p><div class="product"><a data-dimension112="8a9d3f40-2ce3-46f4-b32a-c2586aeb8145" data-action="Deal Block" data-label="Forza Horizon 6 finally takes the open-world racing series to the destination fans have been requesting for years: Japan. It offers Horizon's signature blend of tightly-crafted driving gameplay and so much content you'll still be chipping away at its endless events well into 2027. Plus, it looks downright photo-realistic, with loving detail paid to both its large open map and its huge roster of cars." data-dimension48="Forza Horizon 6 finally takes the open-world racing series to the destination fans have been requesting for years: Japan. It offers Horizon's signature blend of tightly-crafted driving gameplay and so much content you'll still be chipping away at its endless events well into 2027. Plus, it looks downright photo-realistic, with loving detail paid to both its large open map and its huge roster of cars." data-dimension25="$67" href="https://www.amazon.com/Forza-Horizon-6-Standard-XBOX-X/dp/B0GHC1548X" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:400px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="CFhxpteMGpHcdb6fypvQRd" name="forza-horizon-6-xbox-na-box" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/CFhxpteMGpHcdb6fypvQRd.jpg" mos="" align="middle" fullscreen="" width="400" height="400" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>Forza Horizon 6 finally takes the open-world racing series to the destination fans have been requesting for years: Japan. It offers Horizon's signature blend of tightly-crafted driving gameplay and so much content you'll still be chipping away at its endless events well into 2027. Plus, it looks downright photo-realistic, with loving detail paid to both its large open map and its huge roster of cars. <a class="view-deal button" href="https://www.amazon.com/Forza-Horizon-6-Standard-XBOX-X/dp/B0GHC1548X" target="_blank" rel="nofollow" data-dimension112="8a9d3f40-2ce3-46f4-b32a-c2586aeb8145" data-action="Deal Block" data-label="Forza Horizon 6 finally takes the open-world racing series to the destination fans have been requesting for years: Japan. It offers Horizon's signature blend of tightly-crafted driving gameplay and so much content you'll still be chipping away at its endless events well into 2027. Plus, it looks downright photo-realistic, with loving detail paid to both its large open map and its huge roster of cars." data-dimension48="Forza Horizon 6 finally takes the open-world racing series to the destination fans have been requesting for years: Japan. It offers Horizon's signature blend of tightly-crafted driving gameplay and so much content you'll still be chipping away at its endless events well into 2027. Plus, it looks downright photo-realistic, with loving detail paid to both its large open map and its huge roster of cars." data-dimension25="$67">View Deal</a></p></div><h2 id="lego-batman-legacy-of-the-dark-knight">Lego Batman: Legacy of the Dark Knight</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/DfJaUpW_P00" allowfullscreen></iframe></div></div><p><em><strong>Platforms: </strong></em><em>PC, PS5, Xbox Series X/S (Switch 2, September 18)</em></p><p>I’m a Batman fan, and I’m a Lego fan, so I already knew I’d dig Lego Batman: Legacy of the Dark Knight. However, I didn’t expect it to be such a thoroughly captivating and enjoyable experience. It’s a title I’ll absolutely have in my top 10 games of the year. Yes, it’s that good!</p><p>So what’s so special about <a href="https://www.tomsguide.com/gaming/lego-batman-legacy-of-the-dark-knight-is-the-batman-arkham-successor-i-wasnt-expecting">Lego Batman: Legacy of the Dark Knight</a>? Aside from the usual Lego charm, this game is a true love letter to various Batman media— particularly the big Hollywood movies. You play through all of the Caped Crusader’s biggest moments, from falling into a batcave as a child all the way through his rise as Gotham City’s dark avenger. Naturally, the tone is silly, but it retains enough earnestness not to be a complete joke.</p><p>Gameplay-wise, it feels like a stripped-down version of the Batman Arkham games, with similar combat and traversal mechanics in a relatively large open world. You even get those games’ versions of puzzles. The Lego parts involving building items and the slew of collectibles, including costumes, vehicles, and more, also make this game highly addictive.</p><p>If you’re looking for a game that’s pure fun, Lego Batman: Legacy of the Dark Knight is a must-own title. <em>— Tony Polanco</em></p><p><em><strong>Read our full </strong></em><a href="https://www.tomsguide.com/gaming/lego-batman-legacy-of-the-dark-knight-review"><em><strong>Lego Batman: Legacy of the Dark Knight review</strong></em></a></p><div class="product"><a data-dimension112="3184f643-45a3-489d-93fa-c6f87ad23a17" data-action="Deal Block" data-label="Lego Batman: Legacy of the Dark Knight is the ultimate celebration of the world's greatest detective. It brings together elements from Batman's entire movie history and also offers an open-world Gotham full of collectibles and clever references. It's an essential experience for Batman fans of any age, and can be enjoyed in two-player co-op." data-dimension48="Lego Batman: Legacy of the Dark Knight is the ultimate celebration of the world's greatest detective. It brings together elements from Batman's entire movie history and also offers an open-world Gotham full of collectibles and clever references. It's an essential experience for Batman fans of any age, and can be enjoyed in two-player co-op." data-dimension25="$69" href="https://www.amazon.com/LEGO-Batman-Legacy-Dark-Knight-PlayStation/dp/B0G6Q5XKGT/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1298px;"><p class="vanilla-image-block" style="padding-top:115.56%;"><img id="3Fm9Y3rS9fR4JbkcoGMezF" name="lego-batman-legacy-of-the-dark-knight-ps5-na-box" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/3Fm9Y3rS9fR4JbkcoGMezF.jpg" mos="" align="middle" fullscreen="" width="1298" height="1500" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>Lego Batman: Legacy of the Dark Knight is the ultimate celebration of the world's greatest detective. It brings together elements from Batman's entire movie history and also offers an open-world Gotham full of collectibles and clever references. It's an essential experience for Batman fans of any age, and can be enjoyed in two-player co-op.<a class="view-deal button" href="https://www.amazon.com/LEGO-Batman-Legacy-Dark-Knight-PlayStation/dp/B0G6Q5XKGT/" target="_blank" rel="nofollow" data-dimension112="3184f643-45a3-489d-93fa-c6f87ad23a17" data-action="Deal Block" data-label="Lego Batman: Legacy of the Dark Knight is the ultimate celebration of the world's greatest detective. It brings together elements from Batman's entire movie history and also offers an open-world Gotham full of collectibles and clever references. It's an essential experience for Batman fans of any age, and can be enjoyed in two-player co-op." data-dimension48="Lego Batman: Legacy of the Dark Knight is the ultimate celebration of the world's greatest detective. It brings together elements from Batman's entire movie history and also offers an open-world Gotham full of collectibles and clever references. It's an essential experience for Batman fans of any age, and can be enjoyed in two-player co-op." data-dimension25="$69">View Deal</a></p></div><h2 id="007-first-light">007 First Light</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/nTUoIyTMw0Q" allowfullscreen></iframe></div></div><p><em><strong>Platforms: </strong></em><em>PC, PS5, Xbox Series X/S (Switch 2 TBD)</em></p><p>007 First Light is the best James Bond video game ever made. That’s really saying something considering the pedigree of N64’s GoldenEye, and my own childhood nostalgia for 007: Nightfire on the PlayStation 2. However, First Light trumps them both by delivering a remarkable, ridiculously cinematic main campaign that had me hooked from start to end. </p><p>Rather than cast you as a Bond in his prime, you experience his origin story, playing as a fresh-faced spy (voiced/mod-capped expertly by Patrick Gibson). As any good Bond game should, your 15-hour adventure takes you all over the world, from Malta to Mauritania, and has you unraveling a villainous plot that feels highly relevant for our times.</p><p>The authentic presentation is spot on, complete with a fitting Bond tune written/performed by Lana del Rey, but none of this would matter if First Light weren’t also a joy to play. Fortunately, with Hitman developer IO at the wheel, that was never in doubt. The game’s blend of espionage exploration, and thrilling combat encounters (the melee animations are phenomenal); you really do feel like the world’s most suave secret agent. </p><p>It also packs set-piece moments that rival the best of Uncharted and the Tomb Raider reboot trilogy. And it culminates in a finale that feels fitting for such an epic Bond tale. The bar for licensed games has been raised in recent years, but 007 First Light sets a new standard. <em>— Rory Mellon</em></p><p><em><strong>Read our full </strong></em><a href="https://www.tomsguide.com/gaming/007-first-light-review"><em><strong>007 First Light review</strong></em></a></p><div class="product"><a data-dimension112="6f9dae72-f092-462b-9b4f-142dbdee926b" data-action="Deal Block" data-label="From IO Interactive, the developers of Hitman, comes 007 First Light, a single-player, narrative-driven action-adventure that casts you as a young James Bond taking his first steps into the world of spycraft. To defeat a shadowy villain, Bond has to travel the globe, utilize an arsenal of gadgets, and get his hands dirty. It's a cinematic and authentic Bond experience from start to finish." data-dimension48="From IO Interactive, the developers of Hitman, comes 007 First Light, a single-player, narrative-driven action-adventure that casts you as a young James Bond taking his first steps into the world of spycraft. To defeat a shadowy villain, Bond has to travel the globe, utilize an arsenal of gadgets, and get his hands dirty. It's a cinematic and authentic Bond experience from start to finish." data-dimension25="$69" href="https://www.amazon.com/007-First-Light-Specialist-PlayStation-5/dp/B0FBHCYKXX/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1298px;"><p class="vanilla-image-block" style="padding-top:115.56%;"><img id="bEC2QxCRe4PRgzY8QJYrSS" name="007-first-light-specialist-edition-ps5-na-box" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/bEC2QxCRe4PRgzY8QJYrSS.jpg" mos="" align="middle" fullscreen="" width="1298" height="1500" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>From IO Interactive, the developers of Hitman, comes 007 First Light, a single-player, narrative-driven action-adventure that casts you as a young James Bond taking his first steps into the world of spycraft. To defeat a shadowy villain, Bond has to travel the globe, utilize an arsenal of gadgets, and get his hands dirty. It's a cinematic and authentic Bond experience from start to finish. <a class="view-deal button" href="https://www.amazon.com/007-First-Light-Specialist-PlayStation-5/dp/B0FBHCYKXX/" target="_blank" rel="nofollow" data-dimension112="6f9dae72-f092-462b-9b4f-142dbdee926b" data-action="Deal Block" data-label="From IO Interactive, the developers of Hitman, comes 007 First Light, a single-player, narrative-driven action-adventure that casts you as a young James Bond taking his first steps into the world of spycraft. To defeat a shadowy villain, Bond has to travel the globe, utilize an arsenal of gadgets, and get his hands dirty. It's a cinematic and authentic Bond experience from start to finish." data-dimension48="From IO Interactive, the developers of Hitman, comes 007 First Light, a single-player, narrative-driven action-adventure that casts you as a young James Bond taking his first steps into the world of spycraft. To defeat a shadowy villain, Bond has to travel the globe, utilize an arsenal of gadgets, and get his hands dirty. It's a cinematic and authentic Bond experience from start to finish." data-dimension25="$69">View Deal</a></p></div><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/gaming/i-played-control-resonant-for-2-hours-and-trust-me-remedy-cooked-with-this-sequel">I played Control Resonant — and Remedy cooked with this sequel</a></li><li><a href="https://www.tomsguide.com/gaming/7-games-im-looking-forward-to-this-year-that-arent-gta-6">7 games I’m looking forward to this year that aren’t GTA 6</a></li><li><a href="https://www.tomsguide.com/gaming/ive-been-sim-racing-for-6-years-and-then-i-tried-real-life-racing-here-are-3-things-i-wish-these-games-taught-me">I’ve been sim racing for 6 years, and then I tried real-life racing</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ 5 best certified dad movies to watch this Father’s Day ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/entertainment/movies/5-best-certified-dad-movies-to-watch-this-fathers-day</link>
                                                                            <description>
                            <![CDATA[ Father's Day is here, and if you're planning a movie marathon with your dad, here are five great dad movies that they're sure to enjoy. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">NQmEz2pGtr5o76uRMnb9V7</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/yJLn54o5AZ3ppyMYXwkknS-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sun, 21 Jun 2026 04:00:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Movies]]></category>
                                                    <category><![CDATA[Entertainment]]></category>
                                                                                                <author><![CDATA[ rory.mellon@futurenet.com (Rory Mellon) ]]></author>                    <dc:creator><![CDATA[ Rory Mellon ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/5Rv6LtQXMj5JB4Eu8Lt4Sn.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/yJLn54o5AZ3ppyMYXwkknS-1280-80.jpg">
                                                            <media:credit><![CDATA[20th Century Fox / Pictorial Press Ltd / Alamy]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[(L-R) Matt Damon as Carroll Shelby and Christian Bale as Ken Miles in &quot;Ford v Ferrari&quot;]]></media:description>                                                            <media:text><![CDATA[(L-R) Matt Damon as Carroll Shelby and Christian Bale as Ken Miles in &quot;Ford v Ferrari&quot;]]></media:text>
                                <media:title type="plain"><![CDATA[(L-R) Matt Damon as Carroll Shelby and Christian Bale as Ken Miles in &quot;Ford v Ferrari&quot;]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/yJLn54o5AZ3ppyMYXwkknS-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>“Dad movies” have become a genuine craze in the movie world. While the subgenre doesn’t have a universally agreed-upon definition, I often find myself watching a movie and concluding “that is a total dad movie.” So what better way to celebrate Father’s Day than to put together a dad movie marathon for the dad in your life?</p><p>I might not be a dad myself, but I do have one, and I think I’m pretty good at spotting films that fit within the category. So I’ve put together a collection of films that you can stream this weekend, perfect for the annual day dedicated to celebrating fatherhood in all its forms. There’s a bit of everything down below, from sports dramas and action-thrillers to even a sci-fi option. </p><p>These are my top picks for the best dad movies you need to watch this Father’s Day.</p><h2 id="ford-v-ferrari-2019">‘Ford v Ferrari’ (2019)</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/zyYgDtY2AMY" allowfullscreen></iframe></div></div><p>Heralded as perhaps the 21st century’s most quintessential dad movie, it’s got everything you could want in the subgenre: a '60s setting, a focus on racing cars, an underdog story, and two popular actors in the lead roles, Matt Damon and Christian Bale. It comes from “Logan” director James Mangold and really is the perfect watch on a Sunday afternoon.</p><p>Based on the true story of the Le Mans ‘66 race (fun fact: the movie was released under that title in Europe), “Ford v Ferrari” sees Carroll Shelby (Damon) tasked by Ford Motor Company with building a race car that can compete with the track-conquering Ferrari fleet. To achieve this ambitious goal, he teams up with driver Ken Miles (Bale) to build a vehicle that can propel Ford to pole position in the grueling Le Mans endurance race.</p><p><em><strong>Watch </strong></em><a href="https://www.amazon.com/Ford-v-Ferrari-Matt-Damon/dp/B081F2GK4J/" target="_blank" rel="nofollow"><em><strong>"Ford v Ferrari" on Prime Video</strong></em></a><em><strong> now</strong></em></p><h2 id="the-fugitive-1993">‘The Fugitive’ (1993)</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/ETPVU0acnrE" allowfullscreen></iframe></div></div><p>Based on the 1960s TV series of the same name, this 1993 action-thriller is a favorite of dads everywhere. It’s a Harrison Ford vehicle that pulled in strong box office figures in theaters and went on to be nominated for seven Oscars (including Best Picture), with Tommy Lee Jones taking home the Best Supporting Actor award. If you want some excitement this Father’s Day, “The Fugitive” delivers timeless thrills and tension.</p><p>Richard Kimble (Ford) is a surgeon in Chicago, stunned when he’s arrested and accused of murdering his beloved wife, Helen (Sela Ward). Sentenced to death, he manages to escape custody while being transferred to prison. Rather than disappear, he’s determined to find the true killer and clear his name. In response, U.S. Marshal Samuel Gerard (Lee Jones) leads a manhunt to locate Kimble. It’s a cat-vs-mouse game with high stakes.</p><p><em><strong>Watch </strong></em><a href="https://www.amazon.com/gp/video/detail/B00BUKFCKC" target="_blank" rel="nofollow"><em><strong>"The Fugitive" on Prime Video (buy/rent)</strong></em></a><em><strong> now</strong></em></p><h2 id="bull-durham-1988">‘Bull Durham’ (1988)</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/dnJFndf-Krg" allowfullscreen></iframe></div></div><p>You can’t talk about dad movies without Kevin Costner being in the conversation. Heck, for many fathers, this entire list could be a roundup of the best Costner movies, and I reckon they’d be more than happy to watch them all. The competition here was fierce, but I’ve gone with 1988’s “Bull Durham” because of its setting in the world of baseball and because it offers a genuinely sweet romance between Costner and Susan Sarandon.</p><p>Costner plays Lawrence “Crash” Davis, a veteran catcher, hired by the Durham Bulls, a struggling minor league team, to mentor their hotshot rookie pitcher (Tim Robbins), said to have a “million dollar arm, and a five cent head.” Their coach-player relationship starts rocky and becomes even more complicated when they both get involved with the same woman, Annie (Sarandon), a “baseball groupie” who picks one player each season to be her lover.</p><p><em><strong>Watch </strong></em><a href="https://www.amazon.com/gp/video/detail/B0DJPRXSLT" target="_blank" rel="nofollow"><em><strong>"Bull Durham" on Prime Video</strong></em></a><em><strong> now</strong></em></p><h2 id="rocky-1976">‘Rocky’ (1976)</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/-Hk-LYcavrw" allowfullscreen></iframe></div></div><p>“Rocky” is a movie that needs no introduction; it’s one of the finest sports films ever made. It turned Sylvester Stallone into a bankable movie star (well deserved after he struggled to get the film made), and the franchise is still going strong with the recent “Creed” trilogy starring Michael B. Jordan. It’s a movie that will have you fist-pumping in satisfaction and is perhaps the ultimate underdog story. Plus, you just cannot beat that iconic theme tune! </p><p>The titular Rocky Balboa (Stallone) is a no-name boxer working as a collector for a loan shark, but he's got big dreams. When the reigning world heavyweight champion, Apollo Creed (Carl Weathers), offers the chance for a local contender to face him, Rocky gets his big shot. Rocky’s training for the fight of his life comes at the same time he begins a relationship and starts to fall for Adrian (Taila Shire). </p><p><em><strong>Watch </strong></em><a href="https://www.netflix.com/title/915927" target="_blank" rel="nofollow"><em><strong>"Rocky" on Netflix</strong></em></a><em><strong> now</strong></em></p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-W5xY3e"></div>                            </div>                            <script src="https://kwizly.com/embed/W5xY3e.js" async></script><h2 id="the-martian-2015">‘The Martian’ (2015)</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/ej3ioOneTy8" allowfullscreen></iframe></div></div><p>“The Martin” is a more unconventional pick, perhaps, but in my mind it’s got big dad movie energy. It’s based on the popular Andy Weir novel (the same author behind “Project Hail Mary”), and sees Matt Damon — clearly, he loves starring in dad movies — and is all about a battle for survival on the Red Planet. With a strong cast, great direction from Ridley Scott and an engrossing narrative, it’s a two-and-a-half-hour movie that flies by.</p><p>During a botched attempt to abort a mission on Mars, astronaut Mark Watney (Damon) is presumed dead and left behind on the planet’s red surface. Now stranded in a hostile environment, Watney must find a way to contact NASA so they can begin the daunting task of bringing him home, but first, he has to figure out how to survive on the hostile Mars.</p><p><em><strong>Watch </strong></em><a href="https://www.fubo.tv/welcome/program/MV006118770000/the-martian" target="_blank" rel="nofollow"><em><strong>"The Martian" on Fubo</strong></em></a><em><strong> now</strong></em></p><figure class="inline-layout"><fw-embed-feed channel="toms_guide" playlist="gdR2W4" mode="row" player_placement="bottom-right"></fw-embed-feed></figure><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/sales-events/21-fathers-day-gifts-dad-actually-wants-shop-deals-from-yeti-garmin-patagonia-and-more">23 Father’s Day gifts Dad actually wants from $4</a></li><li><a href="https://www.tomsguide.com/entertainment/prime-video/new-on-prime-video-in-june-2026-top-movies-and-shows-to-stream-this-month">New on Prime Video in June 2026</a></li><li><a href="https://www.tomsguide.com/ai/i-gave-chatgpt-my-dads-hobbies-and-asked-for-fathers-day-ideas-these-recommendations-were-better-than-expected">I gave ChatGPT my Dad’s hobbies and asked for Father’s Day Ideas </a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ 5 recently announced video games I’m most excited about, including a sequel I’ve been waiting 13 long years for ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/gaming/5-recently-announced-video-games-im-most-excited-about-including-a-sequel-ive-been-waiting-13-long-years-for</link>
                                                                            <description>
                            <![CDATA[ Here are five of my most anticipated video games announced or shown with new footage at the Xbox Showcase and Summer Game Fest. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">Eujr3bNhuy9HzM8rL2vkWF</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/5YuJsRWfDcQvhQk5B3aHzc-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sat, 20 Jun 2026 10:15:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Gaming]]></category>
                                                                                                <author><![CDATA[ alix.blackburn@futurenet.com (Alix Blackburn) ]]></author>                    <dc:creator><![CDATA[ Alix Blackburn ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/8UxyT2McanNFLYwQ6wC7di.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/5YuJsRWfDcQvhQk5B3aHzc-1280-80.jpg">
                                                            <media:credit><![CDATA[The Coalition / Microsoft / Capcom / Telltale Games]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Gears of War: E-Day, Resident Evil: Veronica, The Wolf Among Us 2]]></media:description>                                                            <media:text><![CDATA[Gears of War: E-Day, Resident Evil: Veronica, The Wolf Among Us 2]]></media:text>
                                <media:title type="plain"><![CDATA[Gears of War: E-Day, Resident Evil: Veronica, The Wolf Among Us 2]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/5YuJsRWfDcQvhQk5B3aHzc-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>The recent <a href="https://www.tomsguide.com/news/live/xbox-games-showcase-2026-live-updates">Xbox Games Showcase</a> and <a href="https://www.tomsguide.com/news/live/summer-game-fest-2026-live-updates">Summer Game Fest</a> delivered exactly what I look forward to every year: a packed stretch of reveals, trailers, and fresh gameplay footage that immediately floods my wishlist. This year was no different, with both events spotlighting some of the biggest upcoming releases across Xbox, PS5, and PC, alongside plenty of surprise announcements I didn’t see coming. </p><p>As someone who plays primarily on PC, it genuinely feels like there’s never been a better time to be a gamer and keep adding to that ever-growing backlog (future me, don’t look at your bank account). </p><p>What stood out most was how much new footage we actually got for already-anticipated titles, giving us a clearer look at what’s ahead, while also introducing new games worth tracking. But for me personally, the biggest moment was finally seeing the <strong>confirmation of The Wolf Among Us 2</strong>, a game I’ve <em>literally </em>been waiting 13 years for. That alone would’ve been enough, but it’s just one of five standout games I can’t wait to dive into.</p><h2 id="gears-of-war-e-day">Gears of War: E-Day</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/8LWpeBX6ZwY" allowfullscreen></iframe></div></div><p>Few games at the Xbox Showcase made a stronger impression on me than Gears of War: E-Day. The franchise means a lot to me, as the original Gears of War was one of the first games I played growing up and something my dad and I bonded over through countless multiplayer playthroughs. So, you can imagine my excitement when the showcase delivered extended gameplay footage and a dedicated post-show deep dive, giving fans their best look yet at the next chapter in Xbox’s flagship shooter series.</p><p>Set 14 years before the original game, E-Day takes players back to the terrifying first day of the Locust invasion, following younger versions of Marcus Fenix and Dominic Santiago as humanity faces its greatest catastrophe. The gameplay shown at the showcase leaned heavily into what made the original trilogy so beloved: brutal cover-based combat, intense close-quarters encounters, and a darker tone.</p><p>What excites me most is that it feels like a return to the franchise’s roots while still benefiting from modern technology. Built entirely in Unreal Engine 5, the game looks seriously stunning, with detailed environments, improved movement mechanics, and some of the most impressive visuals shown during the showcase.</p><p><em><strong>Gears of War: E-Day launches on October 6, 2026, on Xbox Series X|S and PC</strong></em></p><h2 id="resident-evil-veronica">Resident Evil: Veronica </h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/uxUMXniTfjM" allowfullscreen></iframe></div></div><p>It’s a great time to be a Resident Evil fan. Not only are we getting a movie this year, but next year we’re getting <em>another </em>game. At Summer Game Fest 2026, Capcom officially pulled back the curtain on the Resident Evil: Veronica remake. The reveal kicked off the event with a cinematic trailer that immediately confirmed the long-rumored remake was real, giving fans their first proper look at Claire Redfield’s return in a fully reimagined survival horror experience. </p><p>Built in Capcom’s modern RE Engine, the game is positioned as a ground-up remake rather than a simple remaster, continuing the studio’s recent run of revamps like Resident Evil 2 and Resident Evil 4. The trailer teases the refreshed take on the story set after the events of Resident Evil 2, with Claire once again at the centre of the nightmare on Rockfort Island.</p><p>Resident Evil will always remain one of gaming’s most successful and consistent series because it constantly evolves while staying true to its survival horror roots (something clearly seen with Requiem). Claire is also my favorite character in the franchise, so it’s great to see her back in action again!</p><p><em><strong>Resident Evil: Veronica launches in 2027 on PS5, Xbox Series X|S and PC</strong></em></p><h2 id="the-wolf-among-us-2">The Wolf Among Us 2</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/mPj8FouOu8Q" allowfullscreen></iframe></div></div><p>When I tell you my jaw was on the floor at the announcement (more like confirmation) of The Wolf Among Us 2, I really mean it. I might sound like a broken record at this point, but I have such vivid memories of the first game from when I was younger, especially as someone who was obsessed with all things Telltale (The Walking Dead being a core memory). The Wolf Among Us 2 finally re-emerged after years of silence, and perhaps the biggest takeaway is the simple fact that the project is still very much alive after a famously turbulent development cycle. </p><p>The reveal included a fresh trailer that sees Bigby Wolf back on the trail of a dark new mystery involving a string of brutal murders threatening the fragile balance between humans and “Fables.” It’s set six months after the original game, and the footage teased a more cinematic, third-person presentation alongside the series’ trademark choice-driven storytelling.</p><p>A 2027 release window was confirmed for this sequel, alongside a remaster of the original game arriving in late 2026, giving newcomers a chance to catch up. For fans who’ve waited since 2013 to dive back into this incredible world, Summer Game Fest felt like the moment the wait finally became real again. But now, it also means the wait is somehow even harder.</p><p><em><strong>The Wolf Among Us 2 launches in 2027 on PS4/PS5, Xbox One, Xbox Series X|S, PC, and Nintendo Switch/2</strong></em></p><h2 id="state-of-decay-3">State of Decay 3</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/eoLOzgHvKxQ" allowfullscreen></iframe></div></div><p>During the Xbox Showcase, State of Decay 3 finally stepped back into the spotlight with a proper gameplay reveal, and it looks like the series is evolving in all the right ways. I’m actually playing State of Decay 2 right now because it’s such an easy, fun game to drop into, making it perfect for the sandbox survival loop where you can just lose hours building up a community and taking on hordes. And that’s before even getting into my obvious love for anything zombies, apocalypse settings, or RPG-style progression systems.</p><p>State of Decay 3 is evolving the series into a much bigger, more ambitious survival experience set in a brutal post-apocalyptic world where humanity is long past the initial outbreak. Instead of just surviving the collapse, it’s now about rebuilding communities in a world that has become even more dangerous and unpredictable. The core loop is still familiar (scavenge, survive, build) but everything has been scaled up. You’ll manage settlements, recruit survivors, and expand multiple bases across a much larger open world, reportedly around four times bigger than State of Decay 2.</p><p>On top of that, new “Plague Nests” act like evolving infection hubs that spread and respond to your actions, making the world feel more reactive. I’m already excited for what’s next in this franchise, and the idea of things escalating and fighting back in smarter, more unpredictable ways just makes State of Decay 3 feel like a natural next obsession.</p><p><em><strong>State of Decay 3 will launch in 2027 on PS5, Xbox Series X|S, and PC</strong></em></p><h2 id="alien-isolation-2">Alien: Isolation 2</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/lUfKBrUgiS0" allowfullscreen></iframe></div></div><p>“Alien” is my favorite movie of all time, so it’s no surprise that I fell in love with Alien: Isolation. Everything about this universe is incredibly cool, from its claustrophobic dread to the biomechanical design of the classic Xenomorph. I could honestly yap about it for <em>hours</em>. That’s why I practically screamed when Creative Assembly finally unveiled our first substantial look at Alien: Isolation 2. The pre-alpha trailer oozed tension and atmosphere, capturing everything that made the original one of the greatest horror games ever made.</p><p>While the original trapped players aboard the claustrophobic Sevastopol Station, the sequel appears to expand its scope to a colony world featuring both interior environments and more open outdoor locations, all while a relentless Xenomorph continues to hunt the player. Creative Assembly has also confirmed that authenticity to the original 1979 “Alien” film remains a core pillar of the game's design.</p><p>As a <em>huge </em>fan of the first game, this was easily one of the standout moments of Summer Game Fest. The footage looked every bit as terrifying as I hoped, and even without a firm release date, Alien: Isolation 2 has shot straight to the top of my wishlist. </p><p><em><strong>Alien: Isolation 2 will launch on PS5, Xbox Series X|S, PC, and Nintendo Switch 2</strong></em><em> </em></p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-evLJmO"></div>                            </div>                            <script src="https://kwizly.com/embed/evLJmO.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/gaming/7-games-im-looking-forward-to-this-year-that-arent-gta-6">7 games I’m looking forward to this year that aren’t GTA 6</a></li><li><a href="https://www.tomsguide.com/gaming/prime-day-gaming-deals-take-up-to-54-percent-off-nintendo-switch-ps5-gaming-pcs-and-more-23-deals-you-cant-miss">Prime Day gaming deals take up to 54% off Switch, PS5, PCs and more </a></li><li><a href="https://www.tomsguide.com/news/best-pc-gaming-deals">Best PC gaming deals in June 2026</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Beavis and Butt-Head's reboot just arrived on Netflix. I was skeptical about it —but I was wrong ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/entertainment/netflix/beavis-and-butt-heads-reboot-just-arrived-on-netflix-i-was-skeptical-about-it-but-i-was-wrong</link>
                                                                            <description>
                            <![CDATA[ The animated idiots who got their start on MTV have been starring in a reboot that's every bit as good as the original series. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">QpXXftctFGt3hVX8gbWFnJ</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/DHXGw7sVwco55B74tePTpf-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sat, 20 Jun 2026 08:30:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Netflix]]></category>
                                                    <category><![CDATA[Entertainment]]></category>
                                                    <category><![CDATA[Streaming]]></category>
                                                                                                                    <dc:creator><![CDATA[ Josh Bell ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/7YJDqbzv55AwNVnwqDfBK9.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/DHXGw7sVwco55B74tePTpf-1280-80.jpg">
                                                            <media:credit><![CDATA[Paramount Plus via YouTube]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[(L to R) Butt-Head and Beavis (holding a power drill) sit at school in Mike Judge’s Beavis and Butt-Head]]></media:description>                                                            <media:text><![CDATA[(L to R) Butt-Head and Beavis (holding a power drill) sit at school in Mike Judge’s Beavis and Butt-Head]]></media:text>
                                <media:title type="plain"><![CDATA[(L to R) Butt-Head and Beavis (holding a power drill) sit at school in Mike Judge’s Beavis and Butt-Head]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/DHXGw7sVwco55B74tePTpf-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>“Beavis and Butt-Head” is the product of such a specific cultural moment that it may seem difficult to imagine the animated title characters continuing to exist in the 2020s. I had that same skepticism when the feature film “Beavis and Butt-Head Do the Universe” was announced in 2021, and even more so when it was announced that a new “Beavis and Butt-Head” series would follow the movie. While “Do the Universe” got a decent amount of attention when it was released on Paramount+, the series that launched a couple of months later hasn’t made nearly the same impact.</p><p>That’s disappointing because the return of “Beavis and Butt-Head” has delivered on the promise of “Do the Universe,” mixing the duo’s classic idiocy with updated buffoonery for the modern age. Maybe the show hasn’t quite found its audience on Paramount+ or linear cable channel Comedy Central, where the most recent <a href="https://www.tomsguide.com/e/entertainment/streaming/watch-beavis-and-butt-head-revival-season-3-online">third season</a> initially premiered. </p><p>But the first two reboot seasons are now available on <a href="https://www.netflix.com/title/70142336" target="_blank" rel="nofollow">Netflix</a>, and anyone who didn’t know that Beavis and Butt-Head are back can finally check out the hilariously moronic adventures they’ve been missing.</p><figure class="inline-layout"><fw-embed-feed channel="toms_guide" playlist="gdR2W4" mode="row" player_placement="bottom-right"></fw-embed-feed></figure><h2 id="the-appeal-of-beavis-and-butt-head-is-timeless">The appeal of ‘Beavis and Butt-Head’ is timeless</h2><p>Creator Mike Judge launched “Beavis and Butt-Head” with a short segment on MTV’s animated anthology series “Liquid Television” in 1992, and the show remains an indelible part of ’90s pop culture, especially via the music videos that the duo of dim-witted teenagers would mock during interstitial segments. While the original show ended in 1997, Judge already produced a one-season return in 2011, proving that he could keep the characters fresh for any era.</p><p>Of course, “fresh” is a relative term for the limited worldview of the crass best friends (both voiced by Judge) living in the suburban wasteland of Highland, Texas. The new episodes don’t deviate from Beavis and Butt-Head’s familiar fixations on setting things on fire, ineptly attempting to “score” with “chicks,” and eating nachos. </p><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/3DSSDUI0Cis" allowfullscreen></iframe></div></div><p>Those crude desires are just as applicable now as they were 30 years ago, but Judge still shakes things up by also featuring middle-aged versions of Beavis and Butt-Head in some adventures, along with the alternate-dimension “smart” versions that debuted in “Do the Universe.”</p><p>Although “Do the Universe” explicitly placed the teenage characters in the ’90s before transporting them to the 2020s, the reboot exists in an eternal present, no matter the age or dimensional status of the characters. Adult Beavis and Butt-Head have not matured, and their lives are even more hilariously pathetic — and sadly indicative of the state of American society. </p><p>Judge has always been able to blend social commentary with consistent smart-stupid humor, and the new “Beavis and Butt-Head” is still laugh-out-loud funny, whether it’s sending up Christian missionaries or just finding new ways to give the title characters horrific physical injuries.</p><h2 id="beavis-and-butt-head-is-as-clever-and-funny-as-it-s-always-been">‘Beavis and Butt-Head’ is as clever and funny as it’s always been</h2><p>My favorite recent “Beavis and Butt-Head” episodes are the ones that take the characters in weirdly philosophical directions, as when Beavis encounters the living embodiment of his beloved fire, or has an identity crisis when a new student also named Beavis joins their school. Judge and his collaborators find ways to explore larger issues in the context of the stupidest people alive doing the stupidest things imaginable, and that makes them even more profound.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2044px;"><p class="vanilla-image-block" style="padding-top:56.21%;"><img id="mPDU64hT9xA2Sd6bWEZLzi" name="Screen Shot 2025-08-31 at 3.25.01 AM Cropped.png" alt="Press" src="https://cdn.mos.cms.futurecdn.net/mPDU64hT9xA2Sd6bWEZLzi.png" mos="" align="middle" fullscreen="" width="2044" height="1149" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Comedy Central)</span></figcaption></figure><p>For anyone who grew up on Beavis and Butt-Head’s mockery of music videos, the new series also cleverly updates those segments, mixing current music video clips with snippets of videos from YouTube and social media. Beavis and Butt-Head are just as savage about modern pop stars as they were about the chart-toppers of the ’90s, but now they also have the opportunity to take down self-promoting influencers and inane YouTube stunts. It’s the perfect evolution of a key element of the show, balancing the classic approach with something that makes sense for the present moment.</p><p>That kind of balance is what makes the new “Beavis and Butt-Head” so successful. As he’s done with his equally strong revival of <a href="https://www.tomsguide.com/entertainment/streaming/how-to-watch-king-of-the-hill-season-14">“King of the Hill”</a> on Hulu, Judge preserves everything that worked about the original show and moves it carefully into a new era. I admit that I get a hit of nostalgia while watching Beavis and Butt-Head, still clad in their Metallica and AC/DC T-shirts, terrorize their military-veteran neighbor Tom Anderson or antagonize their hippie teacher Mr. Van Driessen. </p><p>But if nostalgia was the only thing that “Beavis and Butt-Head” had to offer, it would wear out its welcome quickly. After three seasons of the reboot, I’m still eager to see what these dumbasses do next.</p><p><em><strong>Stream </strong></em><a href="https://www.netflix.com/title/70142336" target="_blank" rel="nofollow"><em><strong>“Beavis and Butt-Head” on Netflix</strong></em></a><em><strong> now</strong></em></p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/entertainment/streaming/new-on-tubi-in-june-2026-all-the-movies-and-shows-to-watch">New on Tubi in June 2026</a></li><li><a href="https://www.tomsguide.com/entertainment/sports/watch-world-cup-2026-free-live-streams">How to watch the World Cup for free</a></li><li><a href="https://www.tomsguide.com/best-picks/best-free-streaming-services">The best free streaming services</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I just tested ‘the perfect monitor for MacBook users’ with Nano-texture glass — and it's $600 cheaper than the Apple Studio Display ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/computing/monitors/i-just-tested-the-perfect-monitor-for-macbook-users-with-nano-texture-glass-and-its-usd600-cheaper-than-the-apple-studio-display</link>
                                                                            <description>
                            <![CDATA[ I've spent the last week testing the BenQ MA270S and as a MacBook user, this is the Apple Studio Display I've been waiting for. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">3zjPpVPUhRGyusWxgvqrFQ</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/KRkepWBhbTahXafBbmnycW-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sat, 20 Jun 2026 08:15:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Monitors]]></category>
                                                    <category><![CDATA[Computing Peripherals]]></category>
                                                    <category><![CDATA[Computing Hardware]]></category>
                                                                                                <author><![CDATA[ nikita.achanta@futurenet.com (Nikita Achanta) ]]></author>                    <dc:creator><![CDATA[ Nikita Achanta ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/oXuvixDz99SbZp9z8Uoor3.png ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Nikita is a Senior Writer on the Reviews team at Tom&#039;s Guide. She is a lifelong gaming and photography enthusiast, especially interested in wildlife photography. Having worked as a Sub Editor and Writer for Canon EMEA, she’s a bit of a grammar nerd (and a supporter of the Oxford comma), and has also interviewed photographers from all over the world and working in different genres.&lt;/p&gt;&lt;p&gt;A holder of two master’s degrees, the most recent one being in Magazine Journalism from Cardiff University, Nikita’s work has appeared in several publications such as Motor Sport Magazine, NME, Marriott Bonvoy, The Independent, and Metro. Her favorite tech includes the PS5, the DJI Air 3S, and the Fujifilm X-T50. She&#039;s also a licensed drone pilot and cameras expert so you&#039;ll find her testing those nearly every week.&lt;/p&gt;&lt;p&gt;In her downtime, Nikita can usually be found sinking hours into RPGs on her PS5, flying a drone, out on a walk with a camera in hand, at a concert, watching F1, or planning her next tattoo. You can follow her photography account on Instagram&lt;a href=&quot;https://www.instagram.com/photos.bynikita/&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt; here&lt;/a&gt;.&lt;/p&gt; ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/KRkepWBhbTahXafBbmnycW-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A BenQ MA270S monitor]]></media:description>                                                            <media:text><![CDATA[A BenQ MA270S monitor]]></media:text>
                                <media:title type="plain"><![CDATA[A BenQ MA270S monitor]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/KRkepWBhbTahXafBbmnycW-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>The <a href="https://www.tomsguide.com/reviews/apple-studio-display">Apple Studio Display</a> is expensive. That shouldn't come as a surprise to anyone familiar with the Silicon Valley giant's products. It's expensive, and some might argue it's worth the premium — and I won't lie, I've always been a little envious of those who own it. Have you <em>seen </em>how good it looks, how great it performs?</p><p>But as someone who reviews great tech day in and day out, I've finally found an Apple Studio Display alternative that's expensive but nowhere near as pricey as the first-party monitor. I've spent the last week testing the <a href="https://www.tomsguide.com/computing/monitors/benq-ma270s-review">BenQ MA270S,</a> and boy, I shed a tear when I boxed up our review unit to ship it back.</p><div class="product"><a data-dimension112="74e84086-bef8-4e33-81f1-7bb187534114" data-action="Deal Block" data-label="For MacBook users, the BenQ MA270S offers seamless compatibility and comes with an Apple-like app for customization. It boasts wide color coverage and excellent accuracy, making it a great choice for creatives. There’s no shortage of ports, and the Nano Gloss 5K panel is a sight to behold." data-dimension48="For MacBook users, the BenQ MA270S offers seamless compatibility and comes with an Apple-like app for customization. It boasts wide color coverage and excellent accuracy, making it a great choice for creatives. There’s no shortage of ports, and the Nano Gloss 5K panel is a sight to behold." data-dimension25="$999" href="https://www.bhphotovideo.com/c/product/1945262-REG/benq_ma270s_27_5k_hdr.html" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:500px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="DCVuUySVxgC8r4nTWzuuJW" name="1770767121_1945262" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/DCVuUySVxgC8r4nTWzuuJW.jpg" mos="" align="middle" fullscreen="" width="500" height="500" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>For MacBook users, the BenQ MA270S offers seamless compatibility and comes with an Apple-like app for customization. It boasts wide color coverage and excellent accuracy, making it a great choice for creatives. There’s no shortage of ports, and the Nano Gloss 5K panel is a sight to behold.<a class="view-deal button" href="https://www.bhphotovideo.com/c/product/1945262-REG/benq_ma270s_27_5k_hdr.html" target="_blank" rel="nofollow" data-dimension112="74e84086-bef8-4e33-81f1-7bb187534114" data-action="Deal Block" data-label="For MacBook users, the BenQ MA270S offers seamless compatibility and comes with an Apple-like app for customization. It boasts wide color coverage and excellent accuracy, making it a great choice for creatives. There’s no shortage of ports, and the Nano Gloss 5K panel is a sight to behold." data-dimension48="For MacBook users, the BenQ MA270S offers seamless compatibility and comes with an Apple-like app for customization. It boasts wide color coverage and excellent accuracy, making it a great choice for creatives. There’s no shortage of ports, and the Nano Gloss 5K panel is a sight to behold." data-dimension25="$999">View Deal</a></p></div><p>Unlike most of the other monitors I've tested, the MA270S is a MacBook-first monitor, and it's designed for owners of Apple's powerful laptops. Its design, interface, selection of ports, and companion app are all very Apple-esque. It packs a bright and vivid 5K Nano-texture glass panel that's a joy to look at. As a MacBook user, this is the monitor of my dreams, and here's why it's worth buying if you can't get the Apple Studio Display.</p><h2 id="nano-gloss-for-the-win">Nano Gloss for the win</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="QTXCRZXcNwYKpTvTNbYN3Z" name="BENQ_MA27_ 1.JPG" alt="A BenQ MA270S monitor for MacBooks" src="https://cdn.mos.cms.futurecdn.net/QTXCRZXcNwYKpTvTNbYN3Z.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>I've used and reviewed my fair share of the <a href="https://www.tomsguide.com/best-picks/best-monitors">best monitors</a>, and one of the reasons why the BenQ MA270S is the perfect display for MacBook users is that it features a Nano-texture glass display — or Nano Gloss. It's the same glass you'll find on the Apple Studio Display and the <a href="https://www.tomsguide.com/computing/monitors/apple-studio-display-xdr-review">Apple Studio Display XDR</a>. This panel delivers true blacks and refined highlights, and it's one of the reasons why the colors appear Mac-like.</p><p>The MA270S' Nano Gloss panel is designed to diffuse the light source softly, making it more comfortable to look at. The surface diffuses the light so it looks like it has a velvety finish. What's great about the MA270S is that its panel features flicker-free technology, and it has received the industry's stamp of approval. Eye Comfort 3.0 certification from TÜV Rheinland and EyeSafe 2.0 mean that the monitor is designed to reduce visual fatigue and protect eye health.</p><p>As someone who spends up to eight hours a day, five days a week, staring at a screen, using a monitor that doesn't hurt my eyes or make them feel achy is a necessity for me. Now that I've used a Nano Gloss screen, I don't know how I'm going to go back to my work-sanctioned monitor. </p><h2 id="mac-like-true-to-life-colors">Mac-like, true-to-life colors</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:741px;"><p class="vanilla-image-block" style="padding-top:56.28%;"><img id="QTXCRZXcNwYKpTvTNbYN3Z" name="BENQ_MA27_ 1.JPG" alt="A BenQ MA270S monitor for MacBooks" src="https://cdn.mos.cms.futurecdn.net/v2/t:14,l:254,cw:741,ch:417,q:80/QTXCRZXcNwYKpTvTNbYN3Z.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Alongside the Nano-texture glass that protects your eyes during prolonged use, the BenQ MA270S boasts Mac-like colors, as the monitor has been fine-tuned for this. This makes it a class apart from all of the other screens I've tested. BenQ says that its Nano Gloss panel goes toe-to-toe with the Apple Studio Display.</p><p><a href="https://www.benq.eu/en-uk/knowledge-center/knowledge/why-glossy-screens-matter-for-mac-users.html" target="_blank" rel="nofollow">According to BenQ</a>, in side-by-side tests, "color tone and saturation were remarkably close," and it "maintained contrast and color that stayed consistent with Mac colors, ensuring accuracy whether working flexibly or sharing the screen." When I plugged my MacBook into the MA270S, I immediately noticed the colors looked just like on my work-sanctioned <a href="https://www.tomsguide.com/reviews/macbook-air-2022-m2">MacBook Air M2</a>, so I was looking forward to seeing how the monitor performed in my lab tests.</p><p>And lo and behold, the MA270S performed formidably. I measured the color coverage and accuracy, and imagine my surprise when the MA270S upstaged the Apple Studio Display <em>and </em>the very expensive Apple Studio Display XDR. Have a look at the table below. As you can see, in my lab tests, the MA270S covered 158.7% of the sRGB color space and 112.4% of the wider DCI P3 gamut, blowing both Apple displays out of the water.</p><div ><table><tbody><tr><td class="firstcol empty" ></td><td  ><p><strong>sRGB</strong></p></td><td  ><p><strong>DCI P3</strong></p></td><td  ><p><strong>Delta-E</strong></p></td></tr><tr><td class="firstcol " ><p><strong>BenQ MA270S</strong></p></td><td  ><p>158.7%</p></td><td  ><p>112.4%</p></td><td  ><p>0.09</p></td></tr><tr><td class="firstcol " ><p><a href="https://www.tomsguide.com/reviews/apple-studio-display"><strong>Apple Studio Display</strong></a></p></td><td  ><p>114.1%</p></td><td  ><p>80.8%</p></td><td  ><p>0.2</p></td></tr><tr><td class="firstcol " ><p><a href="https://www.tomsguide.com/computing/monitors/apple-studio-display-xdr-review"><strong>Apple Studio Display XDR</strong></a></p></td><td  ><p>106.7%</p></td><td  ><p>75.6%</p></td><td  ><p>0.2</p></td></tr></tbody></table></div><p>As for color accuracy? Also better than both Apple displays, as the MA270S achieved a Delta-E score of 0.09. This goes to show that the color relayed on the monitor is extremely close to the output from the source. The closer the Delta-E score to zero, the better, and the MA270S's 0.09 score is quite a bit better than the Apple Studio Display's and the Apple Studio Display XDR's (0.2 each).</p><p>Throw 10-bit color into the mix, and you've got a beast for productivity and creative work. The colors I saw on the MA270S appeared bright, vivid, and nothing short of stunning, and I felt fully immersed in whatever activity I was doing — whether that was going about my daily task or watching 4K wildlife compilations on YouTube.</p><p>I even edited some photos to share on my <a href="https://www.instagram.com/photos.bynikita/" target="_blank" rel="nofollow">Instagram account</a>, and knowing that the colors I was seeing on the monitor were as accurate as they could be gave me a lot of confidence in post-production.</p><h2 id="ports-for-days">Ports for days</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="hjxqmKsyaDMsSyNstS2YtY" name="BENQ_ 4.JPG" alt="A BenQ MA270S monitor for MacBooks" src="https://cdn.mos.cms.futurecdn.net/hjxqmKsyaDMsSyNstS2YtY.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>For power users and those who have many, many devices they like hooking up to their monitors, the BenQ MA270S sports a wide array of ports. Ready to find out what they are? Let me take a deep breath in. Okay. Here we go:</p><ul><li>A power port (obviously)</li><li>Two HDMI 2.1 ports</li><li>One Thunderbolt 4 port with 96W power delivery</li><li>A second Thunderbolt 4 port with 15W power delivery</li><li>And another Thunderbolt 4 port for daisy-chaining</li><li>Two USB-A 3.2 Gen 2 downstream ports with 10Gbps transfer speeds and 7.5W power delivery</li><li>One USB-C 3.2 Gen 2 downstream port also with 10Gbps transfer speeds and 15W power delivery</li><li>And a USB-C DisplayPort Alt Mode port with 35W power delivery</li></ul><p>Phew! Give me a second to catch my breath. Okay, I'm back now. Having <em>that </em>many ports at your disposal means you don't need to worry about hooking up any additional USB hubs or docks. Cable management is a breeze, too, as BenQ happily includes a cable holder that can be clipped around the monitor's stand.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="4Ey8UNuKMz2bJDqUwj9m5Z" name="BENQ_ 2.JPG" alt="A BenQ MA270S monitor for MacBooks" src="https://cdn.mos.cms.futurecdn.net/4Ey8UNuKMz2bJDqUwj9m5Z.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>For MacBook users, I really can't think of a better monitor. Well, there's the Apple Studio Display, yes, but not everyone has $1,600 just lying around. If you're happy to fork over <a href="https://www.bhphotovideo.com/c/product/1945262-REG/benq_ma270s_27_5k_hdr.html" target="_blank" rel="nofollow">$999 at B&H Photo</a> / <a href="https://www.amazon.co.uk/BenQ-MA270S-Thunderbolt-Brightness-Adjustment/dp/B0GSSXL5GT" target="_blank" rel="nofollow">£884 at Amazon U.K.</a>, the MA270S is a no-brainer. It's stunning to look at and use; it features more ports than you might have use for, and its color coverage and accuracy easily outdo Apple's first-party displays.</p><p>What do you think? Would you buy the MA270S? Or is there another MacBook-first monitor you use? Let me know in the comments below! And check out my full <a href="https://www.tomsguide.com/computing/monitors/benq-ma270s-review">BenQ MA270S review</a> for all the details.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-O6jnAO"></div>                            </div>                            <script src="https://kwizly.com/embed/O6jnAO.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/monitors/benq-ma270s-review">Forget Apple Studio Display — I just tested the BenQ MA270S and its Nano-texture glass display is ‘one of the most beautiful I’ve ever seen’</a></li><li><a href="https://www.tomsguide.com/computing/monitors/benq-creative-pro-pd2730s-5k-monitor-review">BenQ Creative Pro PD2730S review: The endgame of productivity monitors</a></li><li><a href="https://www.tomsguide.com/best-picks/best-monitors">Best monitors in 2026</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ 3 must-watch Netflix movies leaving in June 2026 — including a Mark Wahlberg disaster thriller based on a true story ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/entertainment/netflix/3-must-stream-netflix-movies-about-to-be-removed-in-june-2026-including-a-mark-wahlberg-disaster-thriller-based-on-a-true-story</link>
                                                                            <description>
                            <![CDATA[ Netflix has confirmed a large collection of movies about to be removed from its library. Here are the 3 to watch while you still can. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">j6PCuxtb3LHwZs6CfwaruJ</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/xgLKfGx4fjQtGCCtCDQdYC-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sat, 20 Jun 2026 07:30:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Netflix]]></category>
                                                    <category><![CDATA[Entertainment]]></category>
                                                    <category><![CDATA[Streaming]]></category>
                                                                                                <author><![CDATA[ rory.mellon@futurenet.com (Rory Mellon) ]]></author>                    <dc:creator><![CDATA[ Rory Mellon ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/5Rv6LtQXMj5JB4Eu8Lt4Sn.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/xgLKfGx4fjQtGCCtCDQdYC-1280-80.jpg">
                                                            <media:credit><![CDATA[Netflix; Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Netflix logo on orange background]]></media:description>                                                            <media:text><![CDATA[Netflix logo on orange background]]></media:text>
                                <media:title type="plain"><![CDATA[Netflix logo on orange background]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/xgLKfGx4fjQtGCCtCDQdYC-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Netflix adds new movies to its already sizeable library every single month, but at the same time, it also removes some old favorites to make room. It's called "content churn," and it's an unavoidable trend across all the <a href="https://www.tomsguide.com/us/best-streaming-video-services,review-2625.html">best streaming services</a>. </p><p>While the new additions tend to get the spotlight, it's worth taking some time to look over the movies set to leave Netflix as well. After all, in just a few days, these movies will wave goodbye and won't be available to stream anymore (well, not available on stream on Netflix, at least). </p><p>I've combed through Netflix's confirmed slate of movies leaving the platform at the end of June 2026 and picked out a trio you should place at the top of your watchlist. Watch these great movies while you still can.</p><h2 id="deepwater-horizon-2016">'Deepwater Horizon' (2016)</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/8yASbM8M2vg" allowfullscreen></iframe></div></div><p>Mark Wahlberg headlines this disaster thriller based on the true story of the Deepwater Horizon oil rig explosion. The movie’s real-life inspiration grounds the on-screen events, helping the emotional beats really hit home. The impressive effects are a highlight, and even if the character work is fairly pedestrian, “Deepwater Horizon” will have you invested quickly.</p><p>On April 20, 2010, the Deepwater Horizon oil drilling rig exploded, instantly killing multiple crew members and leaving the survivors in a dangerous situation as flames engulfed the installation. The movie version of events follows technician Mike Williams (Wahlberg) as he attempts to lead his colleagues to safety while battling against the chaos. Also starring Kurt Russell, John Malkovich, Dylan O'Brien and Kate Hudson, “Deepwater Horizon” may have struggled at the box office, but it’s worth watching before it waves goodbye to Netflix.</p><p><em><strong>Watch </strong></em><a href="https://www.netflix.com/title/80104412" target="_blank" rel="nofollow"><em><strong>"Deepwater Horizon" on Netflix</strong></em></a><em><strong> until July 1</strong></em></p><h2 id="jumanji-welcome-to-the-jungle-2017">Jumanji: Welcome to the Jungle (2017)</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/2QKg5SZ_35I" allowfullscreen></iframe></div></div><p>When a reboot/sequel to 1995’s “Jumanji” was announced, I can’t exactly say I had high hopes. So color me (pleasantly) shocked when the end result, “Jumanji: Welcome to the Jungle,” proved to be an entertaining popcorn blockbuster. This big-budget follow-up is heaps of fun and does a great job of paying respect to its predecessor, while taking the franchise in a slightly new direction. Plus, it stars The Rock at the peak of his powers. </p><p>Set a couple of decades after the first “Jumnaji,” four high schoolers are given detention, where they discover an old video game system and a cartridge bearing the Jumnaji name. Booting up the game, they are sucked into a virtual jungle, becoming their chosen in-game avatars (played by Dwayne Johnson, Kevin Hart, Karen Gillan and Jack Black). To escape the jungle and return to the real world, they’ll need to complete the game before they run out of lives.</p><p><em><strong>Watch </strong></em><a href="https://www.netflix.com/title/70298435" target="_blank" rel="nofollow"><em><strong>"Jumanji: Welcome to the Jungle" on Netflix</strong></em></a><em><strong> until July 1</strong></em></p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-exmJNW"></div>                            </div>                            <script src="https://kwizly.com/embed/exmJNW.js" async></script><h2 id="my-girl-1991">My Girl (1991)</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/KSyKO0Lklmo" allowfullscreen></iframe></div></div><p>Anybody who has seen “My Girl” can attest that this coming-of-age comedy is both deeply heartwarming and emotionally devastating. I won’t reveal any spoilers here, but let’s just say it’s one of only a handful of movies that have produced a genuine tear from me. Starring a host of ‘90s favourites including Dan Aykroyd, Jamie Lee Curtis and Macaulay Culkin, it’s a family movie at its heart, but with a sobering edge that makes it an even richer watch.</p><p>11-year-old Vada Sultenfuss (Anna Chlumsky) is raised by her widowed father (Aykroyd) after her mother died in childbirth. This tragedy and her father’s work in a funeral parlor have led to Vada becoming something of a hypochondriac. Her world is turned upside down when her father begins dating a new woman, Shelly (Lee Curtis), and along with some help from her best friend, Tommy J. (Culkin), she attempts to break them up. </p><p><em><strong>Watch </strong></em><a href="https://www.netflix.com/title/786137" target="_blank" rel="nofollow"><em><strong>"My Girl" on Netflix</strong></em></a><em><strong> until July 1</strong></em></p><figure class="inline-layout"><fw-embed-feed channel="toms_guide" playlist="gdR2W4" mode="row" player_placement="bottom-right"></fw-embed-feed></figure><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/entertainment/netflix/new-on-netflix-in-june-2026-5-best-movies-and-shows-to-stream-plus-full-release-list">New on Netflix in June 2026</a></li><li><a href="https://www.tomsguide.com/entertainment/netflix/ive-seen-netflixs-new-rom-com-movie-and-it-proves-that-likeable-stars-can-carry-a-movie-but-charm-can-only-get-you-so-far">I’ve seen Netflix’s new rom-com movie — here's my verdict</a></li><li><a href="https://www.tomsguide.com/entertainment/netflix/5-new-netflix-movies-and-shows-you-need-to-stream-this-week-june-15-21-2026">5 new Netflix movies and shows you need to stream this week</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I’ve taken over 6,000 photos on the Canon EOS R6 Mark III — here are my favorite portraits, wildlife, and landscape shots ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/cameras-photography/mirrorless-cameras/my-favorite-shots-taken-on-the-canon-eos-r6-mark-iii</link>
                                                                            <description>
                            <![CDATA[ I've spent the last two weeks testing the Canon EOS R6 Mark III and after taking 6,000 photos on it, I'm seriously impressed. Here are my favorite photos. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">3xX9vUv68arSi9pjv5rUNQ</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/zNesjStttmk4QB2xjTa87L-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sat, 20 Jun 2026 07:15:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Mirrorless Cameras]]></category>
                                                    <category><![CDATA[Cameras &amp; Photography]]></category>
                                                                                                <author><![CDATA[ nikita.achanta@futurenet.com (Nikita Achanta) ]]></author>                    <dc:creator><![CDATA[ Nikita Achanta ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/oXuvixDz99SbZp9z8Uoor3.png ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Nikita is a Senior Writer on the Reviews team at Tom&#039;s Guide. She is a lifelong gaming and photography enthusiast, especially interested in wildlife photography. Having worked as a Sub Editor and Writer for Canon EMEA, she’s a bit of a grammar nerd (and a supporter of the Oxford comma), and has also interviewed photographers from all over the world and working in different genres.&lt;/p&gt;&lt;p&gt;A holder of two master’s degrees, the most recent one being in Magazine Journalism from Cardiff University, Nikita’s work has appeared in several publications such as Motor Sport Magazine, NME, Marriott Bonvoy, The Independent, and Metro. Her favorite tech includes the PS5, the DJI Air 3S, and the Fujifilm X-T50. She&#039;s also a licensed drone pilot and cameras expert so you&#039;ll find her testing those nearly every week.&lt;/p&gt;&lt;p&gt;In her downtime, Nikita can usually be found sinking hours into RPGs on her PS5, flying a drone, out on a walk with a camera in hand, at a concert, watching F1, or planning her next tattoo. You can follow her photography account on Instagram&lt;a href=&quot;https://www.instagram.com/photos.bynikita/&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt; here&lt;/a&gt;.&lt;/p&gt; ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/zNesjStttmk4QB2xjTa87L-1280-80.jpg">
                                                            <media:credit><![CDATA[Nikita Achanta / Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A person holding a Canon EOS R6 Mark III and a photo of goslings taken on said camera]]></media:description>                                                            <media:text><![CDATA[A person holding a Canon EOS R6 Mark III and a photo of goslings taken on said camera]]></media:text>
                                <media:title type="plain"><![CDATA[A person holding a Canon EOS R6 Mark III and a photo of goslings taken on said camera]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/zNesjStttmk4QB2xjTa87L-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>When I'm not writing 10,000 words a week, I can usually be found playing video games, at a concert, planning my next tattoo... or out on a walk with a camera in hand. I've loved photography for as long as I can remember, and I'm very lucky that I get to bring my love of photography to my job.</p><p>As a reviews writer at Tom's Guide, I test the <a href="https://www.tomsguide.com/us/best-mirrorless-cameras,review-2221.html">best mirrorless cameras</a>, and last year alone, <a href="https://www.tomsguide.com/cameras-photography/best-photos-i-ve-taken-on-cameras-reviewed-2025">I reviewed nearly 30 cameras</a>! And I'm showing no signs of stopping this year. For the last two weeks, I've been putting the <a href="https://www.tomsguide.com/cameras-photography/mirrorless-cameras/canon-eos-r6-mark-iii-review">Canon EOS R6 Mark III</a> through its paces, and now that I've finished testing it, I can confirm that it's a phenomenal mid-range shooter.</p><div class="product"><a data-dimension112="f24b0fc7-1201-4a63-8b48-550864f05206" data-action="Deal Block" data-label="Good becomes great as the Canon EOS R6 Mark III introduces substantial upgrades to its predecessor. A 32.5MP sensor, 7K Open Gate video, a full-size HDMI port, and CFExpress Type-B support make the EOS R6 Mark III a formidable mid-range camera. Images are detailed, and colors appear true to life. Best-in-class autofocus and IBIS give you very little to complain about. 40fps drive is the cherry on top for wildlife and sports photographers." data-dimension48="Good becomes great as the Canon EOS R6 Mark III introduces substantial upgrades to its predecessor. A 32.5MP sensor, 7K Open Gate video, a full-size HDMI port, and CFExpress Type-B support make the EOS R6 Mark III a formidable mid-range camera. Images are detailed, and colors appear true to life. Best-in-class autofocus and IBIS give you very little to complain about. 40fps drive is the cherry on top for wildlife and sports photographers." data-dimension25="$2799" href="https://www.adorama.com/canon-eos-r6-mark-iii-mirrorless-camera-body-only/p/car6m3" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1134px;"><p class="vanilla-image-block" style="padding-top:79.72%;"><img id="nkH3zjAzUbcGaNCu5kaAy3" name="Screenshot 2026-06-16 at 14.19.31" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/nkH3zjAzUbcGaNCu5kaAy3.png" mos="" align="middle" fullscreen="" width="1134" height="904" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>Good becomes great as the Canon EOS R6 Mark III introduces substantial upgrades to its predecessor. A 32.5MP sensor, 7K Open Gate video, a full-size HDMI port, and CFExpress Type-B support make the EOS R6 Mark III a formidable mid-range camera. Images are detailed, and colors appear true to life. Best-in-class autofocus and IBIS give you very little to complain about. 40fps drive is the cherry on top for wildlife and sports photographers.<a class="view-deal button" href="https://www.adorama.com/canon-eos-r6-mark-iii-mirrorless-camera-body-only/p/car6m3" target="_blank" rel="nofollow" data-dimension112="f24b0fc7-1201-4a63-8b48-550864f05206" data-action="Deal Block" data-label="Good becomes great as the Canon EOS R6 Mark III introduces substantial upgrades to its predecessor. A 32.5MP sensor, 7K Open Gate video, a full-size HDMI port, and CFExpress Type-B support make the EOS R6 Mark III a formidable mid-range camera. Images are detailed, and colors appear true to life. Best-in-class autofocus and IBIS give you very little to complain about. 40fps drive is the cherry on top for wildlife and sports photographers." data-dimension48="Good becomes great as the Canon EOS R6 Mark III introduces substantial upgrades to its predecessor. A 32.5MP sensor, 7K Open Gate video, a full-size HDMI port, and CFExpress Type-B support make the EOS R6 Mark III a formidable mid-range camera. Images are detailed, and colors appear true to life. Best-in-class autofocus and IBIS give you very little to complain about. 40fps drive is the cherry on top for wildlife and sports photographers." data-dimension25="$2799">View Deal</a></p></div><p>Once I'd finished testing the EOS R6 Mark III, I took a look at how many photos I'd taken on it — and there were 6,569 stills for me to sift through. Many of them were throwaways or part of burst sequences (of which I only edited and finalized a few). I've been thoroughly impressed and delighted with the photos I've taken, so I thought I'd share my favorites with you. So please, enjoy!</p><h2 class="article-body__section" id="section-wildlife"><span>Wildlife</span></h2><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/Gyjer5UkV9bN6zDAxCcHDL.jpg" alt="A photo of a bird taken on a Canon EOS R6 Mark III" /><figcaption><small role="credit">Nikita Achanta / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/tYamDB6GJykdRkv6xTS9nK.jpg" alt="A photo of a bird taken on a Canon EOS R6 Mark III" /><figcaption><small role="credit">Nikita Achanta / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/nEJzFTNmemEmowki8i5fBK.jpg" alt="A photo of a bird taken on a Canon EOS R6 Mark III" /><figcaption><small role="credit">Nikita Achanta / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/cg62KN8FRgytspmndy4EqH.jpg" alt="A photo of a bird taken on a Canon EOS R6 Mark III" /><figcaption><small role="credit">Nikita Achanta / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/8PAbDBc9dkNQiaoETj3yfH.jpg" alt="A photo of a bird taken on a Canon EOS R6 Mark III" /><figcaption><small role="credit">Nikita Achanta / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/rTwiypuDVrZn93wktJeGfG.jpg" alt="A photo of a bird taken on a Canon EOS R6 Mark III" /><figcaption><small role="credit">Nikita Achanta / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/Lv52Tk3777ban7MWXnwTpF.jpg" alt="A photo of a bird taken on a Canon EOS R6 Mark III" /><figcaption><small role="credit">Nikita Achanta / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/Me8oCeR29isPAZobxUZLuG.jpg" alt="A photo of a bird taken on a Canon EOS R6 Mark III" /><figcaption><small role="credit">Nikita Achanta / Tom's Guide</small></figcaption></figure></figure><p>Some of my favorite subjects to photograph are animals and birds, and the Canon EOS R6 Mark III is adept at wildlife photography. What I love about the EOS R6 Mark III is its rapid autofocus system featuring no fewer than a whopping 6,097 selectable points. In my testing, I found the EOS R6 Mark III was quick to lock onto the subjects I was photographing. It didn't falter even once.</p><p>All the images in the gallery above were captured with the AF set to Auto, and the camera was quick to recognize the subjects as birds, so it switched to Animal Detection.</p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/a72m8Lfi6MZpBWXXs4ZhAJ.jpg" alt="A photo of a bird taken on a Canon EOS R6 Mark III" /><figcaption><small role="credit">Nikita Achanta / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/chSbJjwcLN3FrhM6naFSxH.jpg" alt="A photo of a bird taken on a Canon EOS R6 Mark III" /><figcaption><small role="credit">Nikita Achanta / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/VHYRdKJR2YWjUrkNHvqsoH.jpg" alt="A photo of a bird taken on a Canon EOS R6 Mark III" /><figcaption><small role="credit">Nikita Achanta / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/2KGM9ufRrbTQZf6Q5gTyfH.jpg" alt="A photo of a bird taken on a Canon EOS R6 Mark III" /><figcaption><small role="credit">Nikita Achanta / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/gBMPCTLGBPc4ZAUbjUWQPG.jpg" alt="A photo of a bird taken on a Canon EOS R6 Mark III" /><figcaption><small role="credit">Nikita Achanta / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/o5ihpTX4au5gnxiDY9AwPL.jpg" alt="A photo of a bird taken on a Canon EOS R6 Mark III" /><figcaption><small role="credit">Nikita Achanta / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/ex252Ssxii2Vua99tE3KaG.jpg" alt="A photo of a bird taken on a Canon EOS R6 Mark III" /><figcaption><small role="credit">Nikita Achanta / Tom's Guide</small></figcaption></figure></figure><p>When I wanted to capture birds in flight or in action, I took full advantage of the camera's 40fps sequential shooting or high-speed drive. The EOS R6 Mark III is capable of capturing 330 JPEGs and 150 RAW images with its electronic shutter. 40fps drive ensures you never miss a moment of action, and 0.5 seconds of pre-burst capture records 20 frames when you half-press the shutter button.</p><p>As soon as I spotted the two pairs of moorhens fighting with each other, I pointed the camera in their direction, and it locked onto them. I then fired off a burst (while '<a href="https://www.youtube.com/watch?v=Bt4D8oA3mxU" target="_blank" rel="nofollow">Kung Fu Fighting</a>' by Carl Douglas played in my head) and captured hundreds of images of the birds attacking one another with their feet and beaks. You can see a few of the sequential images in the gallery above.</p><h2 class="article-body__section" id="section-portraits"><span>Portraits</span></h2><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/dtNSdK2Fddey93oxbABDse.jpg" alt="A portrait of a woman taken on a Canon EOS R6 Mark III" /><figcaption><small role="credit">Nikita Achanta / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/LCLQrdLpcnfDhcj59F3qYe.jpg" alt="A portrait of a woman taken on a Canon EOS R6 Mark III" /><figcaption><small role="credit">Nikita Achanta / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/o7rxxireMyibVeReL9W9Qc.jpg" alt="A portrait of a woman taken on a Canon EOS R6 Mark III" /><figcaption><small role="credit">Nikita Achanta / Tom's Guide</small></figcaption></figure></figure><p>Alongside being a fast camera, the Canon EOS R6 Mark III is great for portraits, whether those are taken indoors or outdoors. The 32.5MP CMOS sensor captures plenty of detail, and there's enough room for making tight crops in post-production. Human subject detection and tracking is fantastic, and if the camera can't detect any eyes, it automatically and seamlessly switches to face and body detection, so the EOS R6 Mark III is very reliable.</p><p>There are a few in-camera filters to play with too, such as Vivid, Warm, Cool, and Monochrome, to name a few. The black and white color profile is adept at capturing dramatic portraits. I took a couple of photos of my colleagues in the Monochrome filter, as you can see above. Also, thanks to up to 8.5-stops of in-body image stabilization (IBIS), you can confidently shoot at slow shutter speeds when lighting isn't adequate.</p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/vDpMPYRapknZfeexVKnE4e.jpg" alt="A portrait of a woman taken on a Canon EOS R6 Mark III" /><figcaption><small role="credit">Nikita Achanta / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/Y9jMowHMspcnqbgziGJBpc.jpg" alt="A portrait of a woman taken on a Canon EOS R6 Mark III" /><figcaption><small role="credit">Nikita Achanta / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/rWdWDs3PN6QNhYdUvYDk9e.jpg" alt="A portrait of a woman taken on a Canon EOS R6 Mark III" /><figcaption><small role="credit">Nikita Achanta / Tom's Guide</small></figcaption></figure></figure><p>The portraits I captured outdoors turned out just as lovely, even when the lighting was unpredictable and uncontrollable (unlike in a controlled studio environment). I adore the photos of my partner in the gallery above. The colors have come out beautifully, and I love the different shades of gray in the first slide.</p><h2 class="article-body__section" id="section-landscapes"><span>Landscapes</span></h2><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/DSoUfZksMxAPRDi3Exd9rE.jpg" alt="A landscape photo taken on a Canon EOS R6 Mark III" /><figcaption><small role="credit">Nikita Achanta / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/nvbhfEYnu7WZjgRJCEvneB.jpg" alt="A landscape photo taken on a Canon EOS R6 Mark III" /><figcaption><small role="credit">Nikita Achanta / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/yGH9EQMNkVrfpd5jwWjP2C.jpg" alt="A landscape photo taken on a Canon EOS R6 Mark III" /><figcaption><small role="credit">Nikita Achanta / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/cTYUoifqSYT22TNr9wLUbC.jpg" alt="A landscape photo taken on a Canon EOS R6 Mark III" /><figcaption><small role="credit">Nikita Achanta / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/33f7M7wGBRqXPxbCqCd3aC.jpg" alt="A landscape photo taken on a Canon EOS R6 Mark III" /><figcaption><small role="credit">Nikita Achanta / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/aDBrgtZueUPR95mkhtX9MB.jpg" alt="A landscape photo taken on a Canon EOS R6 Mark III" /><figcaption><small role="credit">Nikita Achanta / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/WchSCdBe5gdcM45dmuVajB.jpg" alt="A landscape photo taken on a Canon EOS R6 Mark III" /><figcaption><small role="credit">Nikita Achanta / Tom's Guide</small></figcaption></figure></figure><p>The Canon EOS R6 Mark III is truly a jack of all trades, and if you pair it with a wide-angle lens, like the <a href="https://www.bhphotovideo.com/c/product/1947744-REG/canon_rf_14mm_f_1_4_l.html" target="_blank" rel="nofollow">Canon RF 14mm f/1.4 L VCM</a>, you've got a winning combination for landscape photography. You can capture a lot of the scene, as I did in the photos above.</p><p>Another feature that makes the EOS R6 Mark III an outstanding landscape snapper is its excellent dynamic range. The camera excels at retaining both shadow and highlight detail. This gives you more wiggle room in post-production as you can lift the shadows to reveal detail, and recover highlights by pulling them down. The result is a balanced image where highlights don't appear blown out, and dark areas remain noise-free.</p><p>The EOS R6 Mark III is fully weather-sealed too, and it's protected against dust and moisture, so you can shoot confidently in changing environmental conditions. As someone who lives in the U.K., where it can start raining out of nowhere, you have no idea what a boon this is.</p><h2 class="article-body__section" id="section-details"><span>Details</span></h2><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/JRBdm9sveRvc59k48WyckN.jpg" alt="A photo taken on a Canon EOS R6 Mark III" /><figcaption><small role="credit">Nikita Achanta / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/m3k6CEYHNxn6Xd6cCF7a6N.jpg" alt="A photo taken on a Canon EOS R6 Mark III" /><figcaption><small role="credit">Nikita Achanta / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/iJFBhtLfoVKpXbE82gvcUP.jpg" alt="A photo taken on a Canon EOS R6 Mark III" /><figcaption><small role="credit">Nikita Achanta / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/EppgwsQ6y8HtA5SP7iMb2P.jpg" alt="A photo taken on a Canon EOS R6 Mark III" /><figcaption><small role="credit">Nikita Achanta / Tom's Guide</small></figcaption></figure></figure><p>I'll be the first to admit that I'm not a massive fan of macro photography, but I've enjoyed capturing close-ups with the Canon EOS R6 Mark III. Well, the photos in the gallery above aren't exactly macros or <em>close </em>close-ups, but they're shots I've used to test the camera's ability to capture the finer details.</p><p>Thanks to the camera's 32.5MP CMOS full-frame sensor, the images are packed with detail, intricate textures, crisp edges, and fine gradations. As I mentioned earlier, you can crop a fair amount too to really highlight your subject — as I did with the photos of the bees on the flowers. The soft pastel shades of the flowers look gorgeous, too.</p><h2 class="article-body__section" id="section-to-sum-up"><span>To sum up...</span></h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2048px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="NBToc3miMi6Z8DrsSYjon3" name="Canon_EOS_R6_Mark_III-24" alt="A woman holding a Canon EOS R6 Mark III" src="https://cdn.mos.cms.futurecdn.net/NBToc3miMi6Z8DrsSYjon3.jpg" mos="" align="middle" fullscreen="" width="2048" height="1152" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nikita Achanta / Tom's Guide)</span></figcaption></figure><p>There's a lot more I can say about the camera, which is what my full, in-depth <a href="https://www.tomsguide.com/cameras-photography/mirrorless-cameras/canon-eos-r6-mark-iii-review">Canon EOS R6 Mark III review</a> is there for, of course. For <a href="https://www.adorama.com/canon-eos-r6-mark-iii-mirrorless-camera-body-only/p/car6m3" target="_blank" rel="nofollow">$2,799 at Adorama</a> / <a href="https://www.lcegroup.co.uk/New/Canon-EOS-R6-Mark-III-Full-Frame-Mirrorless-Digital-Camera-Body_214336.html" target="_blank" rel="nofollow">£2,799 at London Camera Exchange</a>, you're getting a camera that pulls out all the stops. 7K Open Gate video, CFExpress Type-B support, a 32.5MP sensor for beautiful photos, advanced autofocus, 8.5-stops of IBIS, and Canon's vaunted color science — all of these come together to deliver a powerful mid-range package.</p><p>Testing the EOS R6 Mark III has been a lot of fun, and if you're on the hunt for a camera that doesn't compromise on image quality and doesn't break the bank, few are better than this. Have you tried the EOS R6 Mark III yet, or would you like to? Let me know what you think in the comments below!</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-ey62qW"></div>                            </div>                            <script src="https://kwizly.com/embed/ey62qW.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/cameras-photography/mirrorless-cameras/canon-eos-r6-mark-iii-review">I’ve taken over 6,000 photos on the Canon EOS R6 Mark III — and this feature-packed camera is nothing short of a mid-range masterpiece</a></li><li><a href="https://www.tomsguide.com/cameras-photography/mirrorless-cameras/i-just-tested-the-canon-eos-r5-mark-ii-to-photograph-wildlife-and-this-one-feature-has-changed-how-i-take-photos-forever">I tested the Canon EOS R5 Mark II to photograph wildlife — and this one feature has changed how I take photos forever</a></li><li><a href="https://www.tomsguide.com/cameras-photography/mirrorless-cameras/om-system-om-1-mark-ii-wildlife-camera-first-impressions">‘Few wildlife cameras come close to this’: why the OM System OM-1 Mark II is perfect for photographing birds in flight and other animals</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Critics and audiences do not agree about Denzel's 26-year-old serial killer crime thriller movie — so I had to stream it for myself ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/entertainment/movies/critics-and-audiences-do-not-agree-about-denzels-26-year-old-serial-killer-crime-thriller-movie-so-i-had-to-stream-it-for-myself</link>
                                                                            <description>
                            <![CDATA[ Critics panned "The Bone Collector," but audiences largely liked this crime thriller starring Denzel Washington and Angelina Jolie. I had to stream it to see who is right. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">CxRoAv6iFvvcsZZ6pgfLSE</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/Lk5V5UwTJPwGNTGz3LrKn7-1280-80.png" type="image/png" length="0"></enclosure>
                                                                        <pubDate>Sat, 20 Jun 2026 05:30:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Movies]]></category>
                                                    <category><![CDATA[Entertainment]]></category>
                                                                                                <author><![CDATA[ malcolm.mcmillan@futurenet.com (Malcolm McMillan) ]]></author>                    <dc:creator><![CDATA[ Malcolm McMillan ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/sSDLEbNEgBXf86HpujaWZ6.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Malcolm McMillan is a Streaming Editor for Tom&#039;s Guide, covering all the latest in streaming TV shows and movies. That means news, analysis, recommendations, reviews and more for just about anything you can watch, including sports! If it can be seen on a screen, he can write about it. &lt;/p&gt;&lt;p&gt;Malcolm has been with Tom&#039;s Guide since June 2022, starting as a staff writer covering breaking news. Since then, he&#039;s transitioned to cover artificial intelligence (AI), A/V tech and VR headsets. Since late 2023 he has almost exclusively covered streaming and entertainment for Tom&#039;s Guide.&lt;/p&gt;&lt;p&gt;Before writing for Tom&#039;s Guide, Malcolm worked as a fantasy football analyst writing for several sites and also had a brief stint working for Microsoft selling laptops, Xbox products and even the ill-fated Windows phone. He is passionate about video games and sports, though both cause him to yell at the TV frequently. He proudly sports many tattoos, including an Arsenal tattoo, in honor of the team that causes him to yell at the TV the most.&lt;/p&gt; ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/png" url="https://cdn.mos.cms.futurecdn.net/Lk5V5UwTJPwGNTGz3LrKn7-1280-80.png">
                                                            <media:credit><![CDATA[Alamy]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[(L-R) Angelina Jolie and Denzel Washington in &quot;The Bone Collector&quot; (1999)]]></media:description>                                                            <media:text><![CDATA[(L-R) Angelina Jolie and Denzel Washington in &quot;The Bone Collector&quot; (1999)]]></media:text>
                                <media:title type="plain"><![CDATA[(L-R) Angelina Jolie and Denzel Washington in &quot;The Bone Collector&quot; (1999)]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/Lk5V5UwTJPwGNTGz3LrKn7-1280-80.png" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <div  class="fancy-box"><div class="fancy_box-title">The Tom's Guide Verdict: 'The Bone Collector'</div><div class="fancy_box_body"><p class="fancy-box__body-text"><strong>Rating: 2/5 stars</strong></p><p class="fancy-box__body-text"><em><strong>Verdict:</strong></em> "The Bone Collector" is never bad. At least, not egregiously so. Unfortunately, it's also never particularly good. Denzel Washington and Angelina Jolie always seem to know everything they need to, get somewhere at exactly the right time or end up just plain lucky. Even when things don't always go their way, it feels like one deus ex machina after another, which undercuts the performances.</p><p class="fancy-box__body-text"><em><strong>Where to watch: </strong></em><a data-analytics-id="inline-link" href="https://www.amazon.com/gp/video/detail/B0GXCMCFWT?" target="_blank" rel="nofollow">Buy or rent "The Bone Collector" on Prime Video</a></p></div></div><p>We're another week into my 52-week <a href="https://www.tomsguide.com/tag/denzelwatchathon"><strong>Denzel Watchathon</strong>,</a> and with <strong>"The Bone Collector,"</strong> we're almost done with the 1990's. On its face, there's a lot to like about this crime thriller movie. It stars Denzel and Angelina Jolie as a pair of NYPD cops hunting down a serial killer in the Big Apple.</p><p>Oh, and there's a twist! Denzel's character, an acclaimed forensics expert named Lincoln Rhyme, is a quadriplegic, thanks to an accident during an investigation we see in the opening scene of the movie.</p><p>But that's not the only wrinkle. This movie was, to put it mildly, derided by critics. They largely panned it, and it currently holds a mere 30% on <a href="https://www.rottentomatoes.com/m/bone_collector" target="_blank">Rotten Tomatoes</a>. However, unlike last week's movie, "<a href="https://www.tomsguide.com/entertainment/movies/critics-hated-parts-of-denzels-1998-action-thriller-movie-but-28-years-later-it-hits-completely-differently">The Siege</a>," audiences weren't aligned with the critics on this one. Instead, they seem to like "The Bone Collector," giving it a respectful 63% rating on the site.</p><p>So I decided I had to see for myself who was right: Critics or audiences? Admittedly, I didn't have much of a choice, given this was the movie next on my list. But let's pretend I chose this serial killer thriller of my own free will.</p><p><em>If you want to watch this movie before you read on, I'm afraid I have some bad news. Like with many of Denzel's earlier films, "The Bone Collector" isn't currently streaming on any of the </em><a href="https://www.tomsguide.com/us/best-streaming-video-services,review-2625.html"><em>best streaming services</em></a><em> or the </em><a href="https://www.tomsguide.com/best-picks/best-free-streaming-services"><em>best free streaming services</em></a><em>. Instead, you'll need to </em><a href="https://www.amazon.com/gp/video/detail/B0GXCMCFWT?" target="_blank" rel="nofollow"><em>buy or rent it from Amazon</em></a><em> or the digital storefront of your choice.</em></p><h2 id="this-crime-thriller-s-fatal-flaw-is-its-mediocrity">This crime thriller's fatal flaw is its mediocrity</h2><div  class="fancy-box"><div class="fancy_box-title">Read more Denzel Watchathon</div><div class="fancy_box_body"><p class="fancy-box__body-text">Here are the other Denzel Washington movies I've covered so far in our Denzel Watchathon:</p><p class="fancy-box__body-text"><ol><li><strong></strong><a data-analytics-id="inline-link" href="https://www.tomsguide.com/entertainment/movies/i-just-watched-denzel-washingtons-controversial-first-movie-and-you-can-stream-it-free-right-now"><strong>"Carbon Copy" (1981)</strong></a><strong></strong></li><li><strong></strong><a data-analytics-id="inline-link" href="https://www.tomsguide.com/entertainment/movies/im-watching-all-52-denzel-washington-movies-in-2026-and-this-must-watch-murder-mystery-is-a-combination-of-sinners-and-a-few-good-men-in-the-best-way"><strong>"A Soldier's Story" (1984)</strong></a><strong></strong></li><li><strong></strong><a data-analytics-id="inline-link" href="https://www.tomsguide.com/entertainment/movies/im-watching-all-52-denzel-washington-movies-in-2026-and-hes-the-high-point-of-this-1980s-political-thriller"><strong>"Power" (1986)</strong></a><strong></strong></li><li><strong></strong><a data-analytics-id="inline-link" href="https://www.tomsguide.com/entertainment/movies/this-denzel-washington-political-biopic-is-a-must-watch-in-2026-and-its-an-oscar-worthy-performance"><strong>"Cry Freedom" (1987)</strong></a><strong></strong></li><li><strong></strong><a data-analytics-id="inline-link" href="https://www.tomsguide.com/entertainment/movies/this-denzel-washington-crime-drama-was-a-total-flop-in-the-1980s-but-it-might-be-his-most-underrated-movie"><strong>"For Queen and Country" (1988)</strong></a></li><li><strong></strong><a data-analytics-id="inline-link" href="https://www.tomsguide.com/entertainment/movies/im-watching-all-52-denzel-washington-movies-and-this-highly-rated-mystery-movie-is-currently-streaming-for-free"><strong>"The Mighty Quinn" (1989)</strong></a></li><li><strong></strong><a data-analytics-id="inline-link" href="https://www.tomsguide.com/entertainment/movies/denzels-first-oscar-winner-still-holds-up-36-years-later-and-you-can-stream-it-on-netflix-now"><strong>"Glory" (1989)</strong></a></li><li><a data-analytics-id="inline-link" href="https://www.tomsguide.com/entertainment/movies/i-watched-the-lowest-rated-denzel-washington-movie-of-all-time-and-its-not-as-bad-as-you-think"><strong>"Heart Condition" (1990)</strong></a></li><li><a data-analytics-id="inline-link" href="https://www.tomsguide.com/entertainment/movies/nearly-36-years-later-denzel-and-spike-lees-first-team-up-remains-a-must-watch"><strong>"Mo' Better Blues" (1990)</strong></a></li><li><strong></strong><a data-analytics-id="inline-link" href="https://www.tomsguide.com/entertainment/movies/hbo-max-has-one-of-the-best-denzel-washington-movies-that-youve-probably-never-seen-and-its-a-must-watch"><strong>"Mississippi Masala" (1991)</strong></a></li><li><strong></strong><a data-analytics-id="inline-link" href="https://www.tomsguide.com/entertainment/movies/this-denzel-washington-crime-thriller-features-a-twisted-villain-and-you-can-stream-it-for-free"><strong>"Ricochet" (1992)</strong></a></li><li><strong></strong><a data-analytics-id="inline-link" href="https://www.tomsguide.com/entertainment/movies/denzel-was-robbed-of-an-oscar-in-this-1992-biopic-stream-it-and-see-for-yourself"><strong>"Malcolm X" (1992)</strong></a></li><li><a data-analytics-id="inline-link" href="https://www.tomsguide.com/entertainment/movies/33-years-later-denzel-still-shines-in-this-star-studded-shakespeare-adaptation-and-you-can-stream-it-for-free-right-now"><strong>"Much Ado About Nothing" (1993)</strong></a></li><li><strong></strong><a data-analytics-id="inline-link" href="https://www.tomsguide.com/entertainment/movies/julia-roberts-and-denzel-washington-teaming-up-for-a-legal-thriller-should-be-a-perfect-movie-but-32-years-later-i-think-it-missed-the-mark"><strong>"The Pelican Brief" (1993)</strong></a></li><li><a data-analytics-id="inline-link" href="https://www.tomsguide.com/entertainment/movies/i-just-watched-philadelphia-and-i-cant-believe-this-was-the-only-time-tom-hanks-and-denzel-teamed-up-for-a-movie"><strong>"Philadelphia" (1993)</strong></a></li><li><a data-analytics-id="inline-link" href="https://www.tomsguide.com/entertainment/movies/over-30-years-later-this-denzel-washington-and-gene-hackman-action-thriller-is-still-one-of-my-favorite-movies"><strong>"Crimson Tide" (1995)</strong></a></li><li><a data-analytics-id="inline-link" href="https://www.tomsguide.com/entertainment/movies/30-years-ago-denzel-washington-and-russell-crowe-teamed-up-for-this-sci-fi-action-movie-about-the-dangers-of-ai-and-you-can-stream-it-for-free"><strong>"Virtuosity" (1995)</strong></a></li><li><strong></strong><a data-analytics-id="inline-link" href="https://www.tomsguide.com/entertainment/movies/denzel-washington-and-don-cheadles-1995-crime-drama-is-still-worth-streaming-over-30-years-later"><strong>"Devil in a Blue Dress" (1995)</strong></a></li><li><strong></strong><a data-analytics-id="inline-link" href="https://www.tomsguide.com/entertainment/movies/denzel-washingtons-1996-war-drama-is-a-few-good-men-meets-saving-private-ryan-and-its-still-a-must-watch-nearly-30-years-later"><strong>"Courage Under Fire" (1996)</strong></a></li><li><a data-analytics-id="inline-link" href="https://www.tomsguide.com/entertainment/movies/i-just-watched-denzels-90s-romantic-comedy-and-im-not-sure-even-he-can-convince-me-to-like-christmas-movies"><strong>"The Preacher's Wife" (1996)</strong></a></li><li><strong></strong><a data-analytics-id="inline-link" href="https://www.tomsguide.com/entertainment/movies/i-just-watched-this-cult-classic-supernatural-thriller-starring-denzel-washington-and-the-critics-got-this-movie-so-wrong"><strong>"Fallen" (1998)</strong></a></li><li><strong></strong><a data-analytics-id="inline-link" href="https://www.tomsguide.com/entertainment/movies/denzel-goes-one-on-one-with-an-nba-legend-in-this-spike-lee-drama-and-you-can-stream-it-for-free-right-now"><strong>"He Got Game" (1998)</strong></a></li><li><a data-analytics-id="inline-link" href="https://www.tomsguide.com/entertainment/movies/critics-hated-parts-of-denzels-1998-action-thriller-movie-but-28-years-later-it-hits-completely-differently"><strong>"The Siege" (1998)</strong></a></li></ol></p></div></div><p>Things start okay for "The Bone Collector." We get Denzel as Rhyme investigating a crime scene set to an appropriately eerie score. Next thing we see, debris is falling and Rhyme wakes up in a bed, paralyzed from the neck down.</p><p>This, I think, is ultimately the first problem with the movie, and I could see why it wouldn't be a problem in the book that this movie is adapted from. Because Rhyme is a quadriplegic, we spend <em>a lot</em> of time in his room, having conversations and looking at computer screens. It also comes across that his ability to instantly dissect a crime scene and know the answer to anything that may come up is to make up for the fact that he can't go out and walk the crime scene and deduce things in real-time.</p><p>Even the arrival of Amelia Donaghy (Jolie) doesn't do much to shake things up. She does, at least, get us out in the field more as we investigate the serial killer going around town in a taxi, picking people up and finding inventive ways to murder them. </p><p>Unfortunately, she also suffers from Rhyme's condition of being able to figure out everything with relative ease, and her performance doesn't work for me in general. I don't think it's Jolie's fault; it's the character. But ultimately, I didn't find myself connecting with her or anyone else in this movie.</p><p>This gets to the core of the problem with "The Bone Collector": nothing about it does it for me. As I already alluded to earlier in this review, there's rarely anything awful about the movie. It has a talented cast that also includes Queen Latifah, Michael Rooker, Luis Guzmán and Ed O'Neill. It doesn't run too long. It's, at most times, perfectly fine.</p><p>But you never connect with any of the characters. Donaghy has a backstory involving a dead NYPD father that's only briefly touched on. She's also in a complicated relationship with a man named Steve (Bobby Cannavale), which seems to exist just to make us wonder if he's the one making noise outside Donaghy's apartment in a later scene in the movie. Exploring either of these relationships would have done wonders for getting closer to her character, but it just doesn't happen. </p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-OoNVoW"></div>                            </div>                            <script src="https://kwizly.com/embed/OoNVoW.js" async></script><h2 id="verdict-the-bone-collector-is-a-mere-copycat-killer-flick">Verdict: 'The Bone Collector' is a mere copycat killer flick</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/006lJ-OoCrQ" allowfullscreen></iframe></div></div><p>It's tough to watch "The Bone Collector" and not compare it to "Seven," which probably isn't fair to this movie. After all, David Fincher's 1995 masterpiece is considered by many to be one of the best crime thrillers ever made, if not the best.</p><p>But when you compare the two, it's easy to see where this movie falls short. You're much more easily able to connect with Brad Pitt's character in "Seven." Morgan Freeman has far more agency than the bedridden Denzel. Kevin Spacey is a <em>far</em> more creepy and compelling serial killer villain than the killer in "The Bone Collector." It's, simply put, a very similar movie that gets everything right, making it a rough comparison for Denzel and Angelina Jolie's facsimile to endure.</p><p>Adding insult to injury, you can <a href="https://tubitv.com/movies/568896/seven" target="_blank" rel="nofollow">stream "Seven" for free on Tubi</a>. Granted, it won't have Denzel in it, but that's about the only negative thing I can say. If you one day get the chance to stream "The Bone Collector" for free, then by all means, give it a chance too. But I can't in good conscience recommend streaming it for $3.99 when a free, far better alternative is available.</p><p><em></em><a href="https://www.amazon.com/gp/video/detail/B0GXCMCFWT?" target="_blank" rel="nofollow"><em>Buy or rent "The Bone Collector" on Prime Video now</em></a><em></em></p><figure class="inline-layout"><fw-embed-feed channel="toms_guide" playlist="gdR2W4" mode="row" player_placement="bottom-right"></fw-embed-feed></figure><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/entertainment/hulu/3-new-to-hulu-movies-you-need-to-stream-this-weekend-june-19-21-2026">3 new to Hulu movies you need to stream this weekend (June 19-21)</a></li><li><a href="https://www.tomsguide.com/entertainment/paramount-plus/michael-fassbender-shines-in-the-agency-season-2-which-is-as-twisted-a-spy-thriller-as-ever">Michael Fassbender shines in ‘The Agency’ season 2, which is as twisted a spy thriller as ever</a></li><li><a href="https://www.tomsguide.com/entertainment/paramount-plus/3-new-to-paramount-movies-you-need-to-stream-this-weekend-june-19-21-2026">3 new to Paramount+ movies you need to stream this weekend (June 19-21)</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I thought I could be the life of the party with the Soundboks Mix — but its shortcomings make me want to buy another party speaker instead ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/audio/bluetooth-speakers/i-thought-i-could-be-the-life-of-the-party-with-the-soundboks-mix-but-its-shortcomings-make-me-want-to-buy-another-party-speaker-instead</link>
                                                                            <description>
                            <![CDATA[ I've spent the last week testing the Soundboks Mix and while this party speaker is good, its closest competition blows it out of the water. Here's why. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">mkHvJHQGw27aP7ygozrSRj</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/JszLChisaE6N7vn4QJyMMD-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sat, 20 Jun 2026 05:15:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Bluetooth Speakers]]></category>
                                                    <category><![CDATA[Audio]]></category>
                                                    <category><![CDATA[Speakers]]></category>
                                                                                                <author><![CDATA[ nikita.achanta@futurenet.com (Nikita Achanta) ]]></author>                    <dc:creator><![CDATA[ Nikita Achanta ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/oXuvixDz99SbZp9z8Uoor3.png ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Nikita is a Senior Writer on the Reviews team at Tom&#039;s Guide. She is a lifelong gaming and photography enthusiast, especially interested in wildlife photography. Having worked as a Sub Editor and Writer for Canon EMEA, she’s a bit of a grammar nerd (and a supporter of the Oxford comma), and has also interviewed photographers from all over the world and working in different genres.&lt;/p&gt;&lt;p&gt;A holder of two master’s degrees, the most recent one being in Magazine Journalism from Cardiff University, Nikita’s work has appeared in several publications such as Motor Sport Magazine, NME, Marriott Bonvoy, The Independent, and Metro. Her favorite tech includes the PS5, the DJI Air 3S, and the Fujifilm X-T50. She&#039;s also a licensed drone pilot and cameras expert so you&#039;ll find her testing those nearly every week.&lt;/p&gt;&lt;p&gt;In her downtime, Nikita can usually be found sinking hours into RPGs on her PS5, flying a drone, out on a walk with a camera in hand, at a concert, watching F1, or planning her next tattoo. You can follow her photography account on Instagram&lt;a href=&quot;https://www.instagram.com/photos.bynikita/&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt; here&lt;/a&gt;.&lt;/p&gt; ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/JszLChisaE6N7vn4QJyMMD-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A black Soundboks Mix party speaker]]></media:description>                                                            <media:text><![CDATA[A black Soundboks Mix party speaker]]></media:text>
                                <media:title type="plain"><![CDATA[A black Soundboks Mix party speaker]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/JszLChisaE6N7vn4QJyMMD-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Small, portable Bluetooth speakers can sound really good, but let's be honest: if you're soundtracking a large gathering or party, a small one isn't going to cut it. You need a proper party speaker for that, one that gets incredibly loud and makes your guests feel like they're at a concert. How about one that hits a staggering 121dB, then?</p><p>The <a href="https://www.tomsguide.com/audio/bluetooth-speakers/soundboks-mix-review">Soundboks Mix</a> is perhaps the loudest speaker I've tested yet. It's loud, but even at the highest volume, music doesn't sound too distorted, and the treble and mids remain surprisingly clear. Bass is nothing short of Earth-shaking, and the room-filling sound leaves you drooling. But...</p><div class="product"><a data-dimension112="dc054b3e-61a7-4a29-b6c3-43def3c6fc70" data-action="Deal Block" data-label="The Soundboks Mix is the brand’s portable party speaker, and it packs impressive audio capabilities. Ground-shaking bass, crisp treble, and refined mids make listening to music and soundtracking a party a treat. It’s IP65-rated so it’s protected against the elements, and it comes with a user-friendly companion app for customizing the equalizer. However, there aren’t as many connection ports on it as its closest rival, and it uses Bluetooth 4.2." data-dimension48="The Soundboks Mix is the brand’s portable party speaker, and it packs impressive audio capabilities. Ground-shaking bass, crisp treble, and refined mids make listening to music and soundtracking a party a treat. It’s IP65-rated so it’s protected against the elements, and it comes with a user-friendly companion app for customizing the equalizer. However, there aren’t as many connection ports on it as its closest rival, and it uses Bluetooth 4.2." data-dimension25="$799" href="https://www.amazon.com/Soundboks-Mix-Weatherproof-Rechargeable-Ultra-Loud/dp/B0GLP3S87Y/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:661px;"><p class="vanilla-image-block" style="padding-top:141.45%;"><img id="sypUHzwyPGjW57FYtGkA6k" name="Soundboks-Mix-deal" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/sypUHzwyPGjW57FYtGkA6k.jpg" mos="" align="middle" fullscreen="" width="661" height="935" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>The Soundboks Mix is the brand’s portable party speaker, and it packs impressive audio capabilities. Ground-shaking bass, crisp treble, and refined mids make listening to music and soundtracking a party a treat. It’s IP65-rated so it’s protected against the elements, and it comes with a user-friendly companion app for customizing the equalizer. However, there aren’t as many connection ports on it as its closest rival, and it uses Bluetooth 4.2.<a class="view-deal button" href="https://www.amazon.com/Soundboks-Mix-Weatherproof-Rechargeable-Ultra-Loud/dp/B0GLP3S87Y/" target="_blank" rel="nofollow" data-dimension112="dc054b3e-61a7-4a29-b6c3-43def3c6fc70" data-action="Deal Block" data-label="The Soundboks Mix is the brand’s portable party speaker, and it packs impressive audio capabilities. Ground-shaking bass, crisp treble, and refined mids make listening to music and soundtracking a party a treat. It’s IP65-rated so it’s protected against the elements, and it comes with a user-friendly companion app for customizing the equalizer. However, there aren’t as many connection ports on it as its closest rival, and it uses Bluetooth 4.2." data-dimension48="The Soundboks Mix is the brand’s portable party speaker, and it packs impressive audio capabilities. Ground-shaking bass, crisp treble, and refined mids make listening to music and soundtracking a party a treat. It’s IP65-rated so it’s protected against the elements, and it comes with a user-friendly companion app for customizing the equalizer. However, there aren’t as many connection ports on it as its closest rival, and it uses Bluetooth 4.2." data-dimension25="$799">View Deal</a></p></div><p>Yeah, there's always a "but." It's part and parcel of testing and reviewing products, because few (if any) are perfect. The Mix is no different. Even though I love its sound profile, its drawbacks have left me feeling shortchanged — and when $799 is on the line, you want bang for your buck. There is <em>one </em>speaker out there that's great value for money, and sadly, it ain't the Mix.</p><h2 id="shake-the-ground">Shake the ground</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Syt6GuUeRig4JF24bZU8cG" name="Soundboks_Mix_" alt="A black Soundboks Mix party speaker" src="https://cdn.mos.cms.futurecdn.net/Syt6GuUeRig4JF24bZU8cG.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>One of the Soundboks Mix's biggest selling points is that it's get ridiculously loud. At a whopping 121dB, the Mix sounds loud enough to vibrate a glass off a desk if you're indoors, or shake the ground when you're outdoors. Metaphorically speaking, of course — I didn't <em>actually </em>manage to drop a glass off a countertop.</p><p>All that's to say is that you can certainly be the life of the party with the Mix. Whether you're head-banging to bass-heavy rock or dancing to electronic dance music, the Mix has you covered. Two 72W Class D amplifiers powered by a  10-inch woofer and a 1.2-inch dome tweeter cover a frequency response range of 40Hz to 20KHz — typical for a speaker of its demeanour.</p><p>Regardless of the tune I listened to, I was impressed. Lana Del Rey's vocals in ‘<a href="https://open.qobuz.com/album/gcsfc9y5o0or4" target="_blank" rel="nofollow">First Light</a>’ sat front and centre and sounded remarkably clear. The warmth, texture and emotional nuance were reproduced accurately, while subtle details in her delivery found themselves in the spotlight without sounding too clinical. The treble in rock tunes, like ‘<a href="https://open.qobuz.com/track/361933224" target="_blank" rel="nofollow">Elma</a>’ by Yin Yin and ‘<a href="https://open.qobuz.com/track/47683549" target="_blank" rel="nofollow">Echoes</a>’ by Pink Floyd, shone and sounded vibrant without cutting through the rest of the soundstage.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="3FmGWRVvPfwtvKddRTvSWD" name="Soundboks_Mix_" alt="A black Soundboks Mix party speaker" src="https://cdn.mos.cms.futurecdn.net/3FmGWRVvPfwtvKddRTvSWD.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><div  class="fancy-box"><div class="fancy_box-title">Hear me out...</div><div class="fancy_box_body"><p class="fancy-box__body-text">Naturally, I have a lot more to say about the sound quality, which is why my in-depth review is there! Check out my <a data-analytics-id="inline-link" href="https://www.tomsguide.com/audio/bluetooth-speakers/soundboks-mix-review">Soundboks Mix review</a> for all the details.</p></div></div><p>None of that would matter, however, if the Mix didn't do what a party speaker is designed to do: make you dance to electronic tracks, and it manages to do so. The bass in ‘<a href="https://open.qobuz.com/track/400341345" target="_blank" rel="nofollow">Lights Burn Dimmer</a>’ by Fred Again and Jaime T sounded controlled and tight with the EQ set to Indoor. It didn't overpower the rest of the soundstage. Switching the EQ preset to Bass+ made me feel the song in my bones. It was loud and made the ground beneath me shake. I could feel my teeth chattering.</p><p>Turning the volume all the way up to 10 (as you might do if you're hosting a party outdoors) revealed a weakness, though. The bass was still room-filling, but it sounded wobbly and uncontrolled, like the Mix was struggling to keep up with it, or was feeling overwhelmed by it. Truth be told, that's not great news for a party speaker — especially for one that costs just under $800... which, very nicely, brings me to my next point.</p><h2 id="nowhere-to-hide-when-the-competition-is-so-good">Nowhere to hide when the competition is so good</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2048px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="WnGYtHHq6oV5ywBFiAwDSh" name="Marshall_Bromley_450_edit" alt="Marshall Bromley 450 party speaker" src="https://cdn.mos.cms.futurecdn.net/WnGYtHHq6oV5ywBFiAwDSh.jpg" mos="" align="middle" fullscreen="" width="2048" height="1150" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>When I was testing the Soundboks Mix, I couldn't help but think to myself, "This speaker could be <em>the </em>best party speaker around... if it wasn't competing with the <a href="https://www.tomsguide.com/audio/bluetooth-speakers/marshall-bromley-450-review">Marshall Bromley 450</a>." The Bromley 450, Marshall's second-ever party speaker, is a top-notch product that doesn't skimp on features on sound quality. I've thoroughly tested that speaker too, and knowing what it offers for the same money has further highlighted the Mix's flaws to me.</p><div class="product"><a data-dimension112="7fe5201f-9c84-4929-82a7-8197fa2b803b" data-action="Deal Block" data-label="A plethora of wired and wireless connectivity options make the Marshall Bromley 450 not just a powerful speaker, but a stunning amp and karaoke machine as well. Music sounds glorious and highly detailed across genres, while Auracast works like a charm to hook up multiple speakers across rooms. Oh, and the reactive LED lighting helps with immersion. 40-hour battery life and IP55 waterproofing make it a winner." data-dimension48="A plethora of wired and wireless connectivity options make the Marshall Bromley 450 not just a powerful speaker, but a stunning amp and karaoke machine as well. Music sounds glorious and highly detailed across genres, while Auracast works like a charm to hook up multiple speakers across rooms. Oh, and the reactive LED lighting helps with immersion. 40-hour battery life and IP55 waterproofing make it a winner." data-dimension25="$799" href="https://www.amazon.com/Marshall-Bromley-Portable-Party-Speaker/dp/B0G62KZ7XD/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1453px;"><p class="vanilla-image-block" style="padding-top:103.23%;"><img id="HjgJt6n3dM7M8i2cDEqMue" name="Marshall Bromley 450" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/HjgJt6n3dM7M8i2cDEqMue.png" mos="" align="middle" fullscreen="" width="1453" height="1500" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>A plethora of wired and wireless connectivity options make the Marshall Bromley 450 not just a powerful speaker, but a stunning amp and karaoke machine as well. Music sounds glorious and highly detailed across genres, while Auracast works like a charm to hook up multiple speakers across rooms. Oh, and the reactive LED lighting helps with immersion. 40-hour battery life and IP55 waterproofing make it a winner.<a class="view-deal button" href="https://www.amazon.com/Marshall-Bromley-Portable-Party-Speaker/dp/B0G62KZ7XD/" target="_blank" rel="nofollow" data-dimension112="7fe5201f-9c84-4929-82a7-8197fa2b803b" data-action="Deal Block" data-label="A plethora of wired and wireless connectivity options make the Marshall Bromley 450 not just a powerful speaker, but a stunning amp and karaoke machine as well. Music sounds glorious and highly detailed across genres, while Auracast works like a charm to hook up multiple speakers across rooms. Oh, and the reactive LED lighting helps with immersion. 40-hour battery life and IP55 waterproofing make it a winner." data-dimension48="A plethora of wired and wireless connectivity options make the Marshall Bromley 450 not just a powerful speaker, but a stunning amp and karaoke machine as well. Music sounds glorious and highly detailed across genres, while Auracast works like a charm to hook up multiple speakers across rooms. Oh, and the reactive LED lighting helps with immersion. 40-hour battery life and IP55 waterproofing make it a winner." data-dimension25="$799">View Deal</a></p></div><p>One of the first things I noticed about the Mix was its lack of ports. All you get is a USB-C port for charging and a 3.5mm jack for wired playback. The Bromley 450 goes above and beyond here, with two XLR/6.35mm combo ports for microphones and acoustic/electric guitars, and RCA ports for keyboards and turntables. It essentially doubles (or triples) as an amplifier and a karaoke machine.</p><p>You've then got the Mix using an old version of Bluetooth: 4.2. That's not <em>bad, </em>per se, but it isn't good either for a speaker that came out in March 2026. Bluetooth 4.2 is an old version at this point. That means shorter range and no way to stream LE or hi-res audio, so you're stuck with the basic SBC codec.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2048px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="XwbtGmTpNXUqgU9BykKqpg" name="Marshall_Bromley_450_edit-19" alt="Marshall Bromley 450 party speaker" src="https://cdn.mos.cms.futurecdn.net/XwbtGmTpNXUqgU9BykKqpg.jpg" mos="" align="middle" fullscreen="" width="2048" height="1152" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The Bromley 450 has yet another ace up its sleeve: 360° True Stereophonic surround sound, which means that regardless of where you're standing in a room, you'll hear the same exceptional sound. This makes listening to your favorite tunes more immersive, something the Mix can't achieve.</p><p>Combine all of this with the wobbly bass and you've got yourself a clear winner. The Mix costs <a href="https://www.amazon.com/Soundboks-Mix-Weatherproof-Rechargeable-Ultra-Loud/dp/B0GLP3S87Y/" target="_blank" rel="nofollow">$799</a> / <a href="https://www.amazon.co.uk/SOUNDBOKS-Mix-Weatherproof-Rechargeable-Ultra-Loud/dp/B0GLP3S87Y/" target="_blank" rel="nofollow">£599</a>, and the Bromley 450 retails for <a href="https://www.amazon.com/Marshall-Bromley-Portable-Party-Speaker/dp/B0G62KZ7XD/" target="_blank" rel="nofollow">$799</a> / <a href="https://www.argos.co.uk/product/8397942" target="_blank" rel="nofollow">£549</a>, and for the same price, you get versatile connectivity options, better Bluetooth and LE audio, 360° sound, and even integrated stage lights that react to the music.</p><p>I know which speaker I'd personally buy. What do you think? Let me know in the comments below!</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-XbQVgO"></div>                            </div>                            <script src="https://kwizly.com/embed/XbQVgO.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/audio/bluetooth-speakers/soundboks-mix-review">I just tested Soundboks’ portable party speaker — and it’s so close to be being great</a></li><li><a href="https://www.tomsguide.com/audio/bluetooth-speakers/marshall-bromley-450-review">I just tested the ‘best party speaker of 2026’ — here's why you should buy the Marshall Bromley 450</a></li><li><a href="https://www.tomsguide.com/audio/bluetooth-speakers/forget-the-bose-s1-pro-the-brand-new-marshall-bromley-450-just-redefined-party-speakers">Forget Bose — there's no better party speaker on the planet than the brand-new Marshall Bromley 450</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ This is the one Netflix movie I’m streaming on Father’s Day — and it’s perfect for dads who love action-thriller films ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/entertainment/netflix/this-is-the-one-netflix-movie-im-streaming-on-fathers-day-and-its-perfect-for-dads-who-love-action-thriller-films</link>
                                                                            <description>
                            <![CDATA[ This Father’s Day weekend, my dad chose to watch “Land of Bad,” an action-thriller that sees a rescue mission in hostile territory go disastrously wrong. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">EjpGZaKhPSDjZj6bFX5poE</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/YTUYJK46mh7zWsz3o66KbR-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sat, 20 Jun 2026 05:00:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Netflix]]></category>
                                                    <category><![CDATA[Entertainment]]></category>
                                                    <category><![CDATA[Streaming]]></category>
                                                                                                <author><![CDATA[ alix.blackburn@futurenet.com (Alix Blackburn) ]]></author>                    <dc:creator><![CDATA[ Alix Blackburn ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/8UxyT2McanNFLYwQ6wC7di.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/YTUYJK46mh7zWsz3o66KbR-1280-80.jpg">
                                                            <media:credit><![CDATA[FlixPix / Broken Open Pictures / Alamy]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Liam Hemsworth in &quot;Land of Bad&quot; film (2024)]]></media:description>                                                            <media:text><![CDATA[Liam Hemsworth in &quot;Land of Bad&quot; film (2024)]]></media:text>
                                <media:title type="plain"><![CDATA[Liam Hemsworth in &quot;Land of Bad&quot; film (2024)]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/YTUYJK46mh7zWsz3o66KbR-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Father’s Day weekend means one thing: getting my dad to choose a movie. It’s become something of a tradition for us, even alongside our regular trips to the theater each week. Still, there’s something a bit more wholesome about staying in and watching a proper “dad movie” at home. When put on the spot this year, he picked “Land of Bad,” an action-thriller currently streaming on <a href="https://www.tomsguide.com/entertainment/streaming/netflix">Netflix</a>. Clearly, he went straight for something intense and action-heavy, as expected.</p><p>“Land of Bad” is essentially the perfect dad movie. Not only does it star Russell Crowe, but it has enough action to keep your adrenaline spiked, and it very much leans into a tactile feel heavily influenced by classic survival films like “Predator.” While its theatrical run was relatively quiet (grossing around $7 million), the movie found a massive second life on streaming, particularly after landing on Netflix in 2024. So even though I’m not the biggest action fan, I was still very curious about watching this film.</p><p>If you’re stuck on what to watch for Father’s Day weekend, or simply need a tense film to add to your watchlist, here’s everything to know about the action-thriller “Land of Bad.”</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-W0mgRO"></div>                            </div>                            <script src="https://kwizly.com/embed/W0mgRO.js" async></script><h2 id="what-is-land-of-bad-about">What is ‘Land of Bad’ about? </h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/dKcHOR-V1G4" allowfullscreen></iframe></div></div><p>“Land of Bad” follows Sergeant JJ Kinney (Liam Hemsworth), a newly assigned Joint Terminal Attack Controller, during a high-stakes extraction mission in the southern Philippines. </p><p>When his Delta Force team is brutally ambushed by militants, Kinney becomes the sole survivor on the ground, trapped deep within enemy territory. His only lifeline is Reaper (Russell Crowe), a tech-weary drone pilot operating from an Air Force base in Las Vegas.</p><p>As Kinney works his way through the treacherous jungle, hunted by a ruthless extremist group, Reaper serves as his eyes in the sky. Over a tense forty-eight-hour window, Reaper has to orchestrate precision air strikes and guide Kinney toward a distant extraction point before it’s too late.</p><h2 id="land-of-bad-a-tense-military-thriller-made-for-dad-viewing">‘Land of Bad’ a tense military thriller made for dad viewing</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="qkCtdWGniTYskocpizpwQk" name="2TADE1N" alt="Liam Hemsworth and Luke Hemsworth in "Land of Bad" film (2024)" src="https://cdn.mos.cms.futurecdn.net/qkCtdWGniTYskocpizpwQk.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: FlixPix / Broken Open Pictures / Alamy)</span></figcaption></figure><p>A dad movie is often defined as an easy-to-watch, reliably satisfying film that aims to provide popcorn-style entertainment over anything experimental. For that very reason, action movies tend to be the most popular pick, so I thought I already knew what kind of movie “Land of Bad” would be when we first discovered it on Netflix. However, William Eubank’s film turned out to be a truly gripping ride. </p><p>That all comes down to how it tells its story, splitting between Hemsworth’s character’s life-or-death survival in the wilderness and the everyday civilian atmosphere of an Air Force command centre thousands of miles away. It’s certainly a unique contrast for a war film considering many focus on the camaraderie between men in such a dangerous situation, but “Land of Bad” makes this scenario feel a little more isolating. Even more so when Sergeant Kinney is left alone in the rugged jungles of the Gold Coast for much of the film.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="XsA2H4nhUN4wgupe6tJMdC" name="2WCN70Y" alt="Russell Crowe in "Land of Bad" film (2024)" src="https://cdn.mos.cms.futurecdn.net/XsA2H4nhUN4wgupe6tJMdC.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: FlixPix / Broken Open Pictures / Alamy)</span></figcaption></figure><p>“Land of Bad” doesn’t bring much new to the war-action genre, and its twists are fairly predictable, so the story itself doesn’t always do much to keep you invested. Instead, the film holds your attention through its performances, leaning on the long-distance dynamic between Hemsworth and Crowe’s characters, which at times feels more like a character drama played out over comms. Crowe is largely confined to a chair, watching events unfold on a monitor, yet still delivers what ends up being the film’s strongest performance.</p><p>For dads though, “Land of Bad” succeeds as an entertaining thriller thanks to its brutal action sequences and hand-to-hand combat (since my dad adores “John Wick,” he’s always been a fan of that fighting style). There’s a strong sense of urgency running through the action, which keeps the stakes feeling consistently high. Overall, “Land of Bad” is not particularly memorable, but it still packs in plenty of tension, practical set-pieces, and explosions to remain consistently compelling. Fans of action-thrillers, including dads, should enjoy it.</p><p><em><strong>Stream "Land of Bad" on </strong></em><a href="https://www.netflix.com/title/81747468" target="_blank" rel="nofollow"><em><strong>Netflix</strong></em></a></p><figure class="inline-layout"><fw-embed-feed channel="toms_guide" playlist="gdR2W4" mode="row" player_placement="bottom-right"></fw-embed-feed></figure><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/entertainment/netflix/3-best-new-to-netflix-movies-you-should-stream-this-weekend-june-19-21">3 best new to Netflix movies to stream this weekend</a></li><li><a href="https://www.tomsguide.com/entertainment/netflix/new-on-netflix-in-june-2026-5-best-movies-and-shows-to-stream-plus-full-release-list">Everything new on Netflix in June 2026</a></li><li><a href="https://www.tomsguide.com/entertainment/streaming/when-is-disclosure-day-streaming-release-date">When is 'Disclosure Day' streaming? Our best guess</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ 3 best new to Prime Video shows to binge-watch this weekend (June 19-21) ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/entertainment/prime-video/3-best-new-to-prime-video-shows-to-binge-watch-this-weekend-june-19-21</link>
                                                                            <description>
                            <![CDATA[ Planning to binge-watch something new this weekend? Here's our weekly guide to the best new to Prime Video series you should be streaming right now. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">3DVE37SKanR5fupZEL5hV8</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/7v7XNmW6osSrU2CPPHzmb7-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 19 Jun 2026 16:18:54 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Prime Video]]></category>
                                                    <category><![CDATA[Entertainment]]></category>
                                                    <category><![CDATA[Streaming]]></category>
                                                                                                                    <dc:creator><![CDATA[ Christina Izzo ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/LMncQCRNbbLXxxjbfZJvWE.jpeg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/7v7XNmW6osSrU2CPPHzmb7-1280-80.jpg">
                                                            <media:credit><![CDATA[Mimadeo / Alamy]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Sunset background for Prime Video logo]]></media:description>                                                            <media:text><![CDATA[Sunset background for Prime Video logo]]></media:text>
                                <media:title type="plain"><![CDATA[Sunset background for Prime Video logo]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/7v7XNmW6osSrU2CPPHzmb7-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>If TV-watching and couch-rotting are on your weekend to-do list (and given how fast June is moving, we don't blame you one bit for taking a breather!), you're likely looking for a great new show to binge. As one of the top <a href="https://www.tomsguide.com/us/best-streaming-video-services,review-2625.html">streaming services</a> around, <a href="https://www.tomsguide.com/entertainment/streaming/prime-video">Prime Video</a> always has top-notch new television tiles and film releases being added to the platform's already extensive library, which should make choosing your next weekend watch that much easier. </p><p>To help you even further, we here at Tom's Guide have narrowed things down to a trio of worthy shows that we think you should check out next. If you're a romance fan (who isn't?), cuddle up to the streamer's latest steamy romantic drama "Every Year After." If it's action-packed animation you want, there's a new season of "The Legend of Vox Machina" for you to enjoy. And if you want your comedy with a side of theological fantasy, the final installment of "Good Omens" recently dropped as well. </p><p>So without further ado, here are the 3 best new to Prime Video shows to binge-watch this weekend.</p><h2 id="every-year-after">'Every Year After'</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/F5SpqQ8dNa8" allowfullscreen></iframe></div></div><p><strong>Genre:</strong> Romantic drama series</p><p><strong>What it's about: </strong>A screen adaptation of Carley Fortune's best-selling romance novel of the same name, "Every Year After" is a second-chance love story told across two alternating timelines: The nostalgic past and fraught present of childhood friends-turned-first loves Percy Fraser (Sadie Soverall) and Sam Florek (Matt Cornett).</p><p><strong>Why you should watch it: </strong>It's a touch sadder than recent viral romances like "Heated Rivalry" and "Off Campus," but that emotional depth only adds to all of the charged feelings swirling around the Canada-set drama. If you enjoy YA romances, "Every Year After" should be right up your alley.</p><p><em><strong>Stream </strong></em><a href="https://www.amazon.com/gp/video/detail/B0GXTM8G3W/" target="_blank" rel="nofollow"><em><strong>"Every Year After" season 1 on Prime Video</strong></em></a><em><strong> now</strong></em></p><h2 id="the-legend-of-vox-machina-season-4">'The Legend of Vox Machina' season 4</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/FkqIXFztj6Q" allowfullscreen></iframe></div></div><p><strong>Genre:</strong> Adult animated fantasy series</p><p><strong>What it's about:</strong>  In season four of "The Legend of Vox Machina," our loveable band of unlikely heroes—including Vex (Laura Bailey), Percy (Taliesin Jaffe), Grog (Travis Willingham), Pike (Ashley Johnson) and new cast member Wayne Brady as Taryon Darrington—regroup a year after defeating the dragons of the Chroma Conclave. Now the adventurous crew has to face their most challenging foe yet: the Cult of the Whispered One.</p><p><strong>Why you should watch it: </strong>If you like shows like the original "Avatar: The Last Airbender," this show is a must-watch. Plus, the beloved Critical Role series is set to end with the already greenlit fifth and final season, so   </p><p><em><strong>Stream </strong></em><a href="https://www.amazon.com/gp/video/detail/B09PZHFHFS/" target="_blank" rel="nofollow"><em><strong>"The Legend of Vox Machina" season 4 on Prime Video</strong></em></a><em><strong> now</strong></em></p><h2 id="good-omens-season-3">'Good Omens' season 3</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/r3zCN9S2RXg" allowfullscreen></iframe></div></div><p><strong>Genre:</strong> Fantasy comedy series</p><p><strong>What it's about:</strong>  Now Supreme Archangel, Aziraphale (Michael Sheen) seeks out the help of his unlikely demon pal Crowley (David Tennant) to navigate the Second Coming of Christ and to track down a missing Jesus Christ (played by "Black Mirror" actor Bilal Hasna). Together, Aziraphale and Crowley have to contend with a new apocalypse as well as the notion of whether heaven and hell do, or should, exist.</p><p><strong>Why you should watch it: </strong>Although initially conceived as a limited series, "Good Omens" has spread its wings as a three-season fan favorite that is sadly coming to an end with its recently released 90-minute finale. "Closing out the series with a serviceable final entry, <em>Good Omens</em> crafts a heartfelt goodbye thanks in part to David Tennant and Michael Sheen's unwavering performances," reads the critics consensus over on Rotten Tomatoes. </p><p><em><strong>Stream </strong></em><a href="https://target.georiot.com/Proxy.ashx?tsid=45724&GR_URL=https%3A%2F%2Famazon.com%2Fgp%2Fvideo%2Fdetail%2FB0GW8BRM9B%2Fref%3Datv_dp_season_select_s3%3Ftag%3Dftr-tomsguide-us-20%26ascsubtag%3Dtomsguide-us-3996577319402456524-20" target="_blank" rel="nofollow"><em><strong>"Good Omens" on Prime Video</strong></em></a><em><strong> now</strong></em></p><figure class="inline-layout"><fw-embed-feed channel="toms_guide" playlist="gdR2W4" mode="row" player_placement="bottom-right"></fw-embed-feed></figure><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/entertainment/prime-video/3-best-new-to-prime-video-movies-to-stream-this-weekend-june-19-21">3 best new to Prime Video movies to stream this weekend</a></li><li><a href="https://www.tomsguide.com/entertainment/prime-video/no-prime-membership-required-stream-these-5-great-movies-for-free-right-now">Stream these 5 movies for free — no Prime membership required</a></li><li><a href="https://www.tomsguide.com/entertainment/movies/disclosure-day-review">'Disclosure Day' review: Steven Spielberg reminds us of his greatness in his latest sci-fi epic</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I played Control Resonant for 2 hours — and trust me, Remedy cooked with this sequel ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/gaming/i-played-control-resonant-for-2-hours-and-trust-me-remedy-cooked-with-this-sequel</link>
                                                                            <description>
                            <![CDATA[ I just got an early hands-on preview with Control Resonant, and this paranormal sequel is shaping up to be something seriously special. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">upb6zbU9XmckVuDgYfwosk</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/TDmt8EdH5pADMuMEUVa4ti-1280-80.png" type="image/png" length="0"></enclosure>
                                                                        <pubDate>Fri, 19 Jun 2026 14:34:21 +0000</pubDate>                                                                                                                                <updated>Mon, 22 Jun 2026 16:52:07 +0000</updated>
                                                                                                                                            <category><![CDATA[Gaming]]></category>
                                                                                                <author><![CDATA[ rory.mellon@futurenet.com (Rory Mellon) ]]></author>                    <dc:creator><![CDATA[ Rory Mellon ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/5Rv6LtQXMj5JB4Eu8Lt4Sn.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/png" url="https://cdn.mos.cms.futurecdn.net/TDmt8EdH5pADMuMEUVa4ti-1280-80.png">
                                                            <media:credit><![CDATA[Remedy Entertainment]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Control Resonant screenshot]]></media:description>                                                            <media:text><![CDATA[Control Resonant screenshot]]></media:text>
                                <media:title type="plain"><![CDATA[Control Resonant screenshot]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/TDmt8EdH5pADMuMEUVa4ti-1280-80.png" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>I came away from my two-hour hands-on with the upcoming Control Resonant frustrated. Not because I wasn’t suitably impressed with what I’d just played, but rather because the already torturous wait until its September 24 release date is now going to feel extra long.</p><p>With this sequel to 2019’s Control, Remedy Entertainment has done what all good sequels should and found a balance between the familiar and fresh. The story, tone, and atmosphere are unmistakably Control, but the Finnish developer has taken some big combat swings and also expanded the scope of the universe. And that’s before diving into the new face on the box; this time you’re playing as Dylan Faden, brother of Control’s Jesse.</p><p>Even after playing Control Resonant for a couple of hours, much of the game is still shrouded in secrecy (as you would expect), but this preview made me even more confident that in a September of new games that is absurdly crowded, Control Resonant is shaping up to be a title that you won’t want to miss. I’m very confident that Remedy has cooked here.</p><div class="product"><a data-dimension112="8b5553ec-cbc7-4c85-9786-476778ac47cb" data-action="Deal Block" data-label="The sequel to 2019's Control, in Control Resonant, you play Dylan Faden as he explores a warped Manhattan taken over by a paranormal threat. With new melee-focused combat and a suite of superhuman abilities, Control Resonant is the latest blockbuster game from Redemy Entertainment that blends exciting action gameplay with a cinematic, often surreal, narrative." data-dimension48="The sequel to 2019's Control, in Control Resonant, you play Dylan Faden as he explores a warped Manhattan taken over by a paranormal threat. With new melee-focused combat and a suite of superhuman abilities, Control Resonant is the latest blockbuster game from Redemy Entertainment that blends exciting action gameplay with a cinematic, often surreal, narrative." data-dimension25="$59" href="https://www.amazon.com/CONTROL-Resonant-Steelbook-PlayStation-5/dp/B0H3WQP7C6/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1298px;"><p class="vanilla-image-block" style="padding-top:115.56%;"><img id="6ty6SW8xFKZCz6RDYyVgpM" name="control-resonant-ps5-box-art-na" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6ty6SW8xFKZCz6RDYyVgpM.jpg" mos="" align="middle" fullscreen="" width="1298" height="1500" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>The sequel to 2019's Control, in Control Resonant, you play Dylan Faden as he explores a warped Manhattan taken over by a paranormal threat. With new melee-focused combat and a suite of superhuman abilities, Control Resonant is the latest blockbuster game from Redemy Entertainment that blends exciting action gameplay with a cinematic, often surreal, narrative.<a class="view-deal button" href="https://www.amazon.com/CONTROL-Resonant-Steelbook-PlayStation-5/dp/B0H3WQP7C6/" target="_blank" rel="nofollow" data-dimension112="8b5553ec-cbc7-4c85-9786-476778ac47cb" data-action="Deal Block" data-label="The sequel to 2019's Control, in Control Resonant, you play Dylan Faden as he explores a warped Manhattan taken over by a paranormal threat. With new melee-focused combat and a suite of superhuman abilities, Control Resonant is the latest blockbuster game from Redemy Entertainment that blends exciting action gameplay with a cinematic, often surreal, narrative." data-dimension48="The sequel to 2019's Control, in Control Resonant, you play Dylan Faden as he explores a warped Manhattan taken over by a paranormal threat. With new melee-focused combat and a suite of superhuman abilities, Control Resonant is the latest blockbuster game from Redemy Entertainment that blends exciting action gameplay with a cinematic, often surreal, narrative." data-dimension25="$59">View Deal</a></p></div><h2 id="resonant-is-control-but-not-as-we-know-it">Resonant is Control, but not as we know it</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/RJTBoQhWaC0" allowfullscreen></iframe></div></div><p>My hands-on with Control Resonant was split into three sections. I got to play through the entirety of the game’s first act, then a segment in a portion of the game’s new Evacuation Zone, before finally completing a mid-game mission that sees Dylan descend into a mysterious sinkhole. </p><p>But to set the stage a little bit before diving into my impressions, if you didn’t know already, in Control Resonant you play Dylan Faden on a mission to help the Federal Bureau of Control (FBC) after their headquarters, The Oldest House, is overrun by the game’s signature enemy, the Hiss, and the surrounding area of Manhattan has become a twisted nightmare world. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="NAhgFKuqZCMs6QJRKFR82j" name="CTRL_R_WorldOf_Screenshot_25" alt="Control Resonant screenshot" src="https://cdn.mos.cms.futurecdn.net/NAhgFKuqZCMs6QJRKFR82j.png" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Remedy Entertainment)</span></figcaption></figure><p>It’s not just the lead character (though Jesse is still involved) and central location that have changed; Dylan’s approach to dispatching the many Hiss he encounters is a little different from his sibling's. The shape-shifting gun of the first Control is out, and instead, Dylan prefers to get up close and personal to his foes, thanks to an evolving melee weapon. </p><p>I can’t say that I felt Control’s combat needed refreshing, but it turns out Remedy knows best, because this switch-up already feels like a masterstroke. To put it simply, I <em>adored </em>Resonant’s combat. It’s fast, fluid and all about playing aggressively. If I can be so bold, I got a Bloodborne vibe thanks to the game’s mechanic of healing by downing enemies who drop health orbs. If you take some hits, you shouldn’t sit back but instead get back into the fray. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="UnMP8FLFCVx4bCcaHXZ4rj" name="CTRL_R_Preorder_Combat_02" alt="Control Resonant screenshot" src="https://cdn.mos.cms.futurecdn.net/UnMP8FLFCVx4bCcaHXZ4rj.png" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Remedy Entertainment)</span></figcaption></figure><p>Alongside your primary weapon — I chose dual batons so I could quickly slice up enemies before they’d even had the chance to attack me — you also have a more powerful secondary form, which includes an oversized hammer, a pair of even more oversized fists (turning Dylan into the Hulk), and my favorite of them all, a spear with a drill mounted on the end. </p><p>Like Jesse before him, Dylan also has access to a bunch of superhuman powers. Like his sister, he can launch himself into the air, floating around to dispatch flying enemies, and he can quick dash to make covering large distances a breeze. </p><p>In combat, Dylan’s supernatural abilities manifest as ground-pounds, shockwaves, spiky projectiles and a shield — which, to be honest, in a game where aggression counts, I found to be pretty unnecessary. I quickly switched the shield out for an ability that let me summon a floating rock orb that dished out damage of its own before letting me throw it at an enemy to deal a final burst of pain.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="NurdghykWvTnUCnEGVSPtj" name="CTRL_R_Preorder_Combat_13" alt="Control Resonant screenshot" src="https://cdn.mos.cms.futurecdn.net/NurdghykWvTnUCnEGVSPtj.png" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Remedy Entertainment)</span></figcaption></figure><p>Speaking of swapping out abilities, during the second part of my demo, I got a sense of Resonant’s progression system, and it looks <em>deep</em>. Maybe even a little overwhelming. Not only do you select a loadout of weapons and abilities, but there are sizeable skill trees and accessories that can buff Dylan. It was a lot to get my head around. Hopefully, in the full game, these numerous options are introduced gradually rather than all at once.</p><p>As I’ve hopefully made clear, actually playing Control Resonant is a delight. My experience was definitely very easy. I didn’t die once (even to a gigantic boss in the form of a massive stone face that throws yellow taxis), but the Remedy staff on hand noted the difficulty balance wasn’t final, so hopefully the full release offers encounters that test your skills.</p><h2 id="my-one-concern-after-playing-control-resonant">My one concern after playing Control Resonant</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Uu5nXXztRmtqeNqbeVLXri" name="CTRL_R_Preorder_Combat_06" alt="Control Resonant screenshot" src="https://cdn.mos.cms.futurecdn.net/Uu5nXXztRmtqeNqbeVLXri.png" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Remedy Entertainment)</span></figcaption></figure><p>If there’s one area of Control Resonant that I’m still not fully sold on yet, it’s the story and characters. </p><p>I will caveat that the majority of my hands-on was combat-focused, running around an open area stuffed with enemies and completing a mission that saw me descending into a twisted sinkhole crammed with nasties. </p><p>As a quick aside, this mission ended in a phenomenal, cinematic sequence that was so good, I’m not sure Remedy should have revealed it ahead of release. I genuinely don’t want to spoil it. It’ll be best enjoyed without prior knowledge.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ui8dUoc2dzQcov8h5DLqgj" name="CTRL_R_Preorder_Combat_17" alt="Control Resonant screenshot" src="https://cdn.mos.cms.futurecdn.net/ui8dUoc2dzQcov8h5DLqgj.png" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Remedy Entertainment)</span></figcaption></figure><p>The first act does hit all the right notes in terms of atmosphere and tone, and the sound design is immaculate, as you’d expect from a Remedy title. But in my play session, I found myself struggling to connect with Dylan himself, who seemed a milquetoast protagonist. This wasn’t helped by curiously flat-line delivery. But there could be a narrative reason that Dylan is treating a New York overrun with wispy monsters as little more than a vague annoyance.</p><p>However, there were signs of a more engrossing character to be fully explored in the final game. I noticed that his FBC garb had the initial scribbled out, hinting at plenty of friction between our hero and the mysterious bureau at the core of Control’s universe. So, maybe this is a case of needing to see the full picture before I can judge Dylan as a character, and I naturally can’t give a verdict on Resonant’s narrative until I’ve experienced it to completion. </p><p>Nevertheless, after my preview, I did find myself missing Jesse, a character I found more engaging straight from the drop. Hopefully, Dylan’s tale is ultimately as strong in the end. </p><h2 id="my-final-thoughts-on-control-resonant-for-now">My final thoughts on Control Resonant (for now)</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="DNgqH5qSGvjrZRs7z9MoHj" name="CTRL_R_Preorder_Combat_15" alt="Control Resonant screenshot" src="https://cdn.mos.cms.futurecdn.net/DNgqH5qSGvjrZRs7z9MoHj.png" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Remedy Entertainment)</span></figcaption></figure><p>Based on what I played, Control Resonant takes an approach I tend to favor in a sequel. It doesn’t completely reinvent the wheel — it’s still very much a Control game — but it’s not afraid to mix things up with a fundamentally different combat system and new narrative elements. </p><p>On a technical level, I played on a PS5 console, and while I didn’t notice any frame-rate issues, even when the screen flooded with dozens of hiss enemies at once, the resolution wasn’t quite so crisp. Of course, there’s time for Remedy to polish, and when I spoke to Art Director Elmeri Raitanen afterwards, he noted that the build I’d just played was an older one.</p><p>Will Control Resonant come together to deliver a follow-up that lives up to the high bar set by its predecessor? I’m extremely optimistic after playing a portion for myself. But we’ll have to wait until September to find out. Look out for our full Control Resonant review around launch.</p><p><em><strong>Control Resonant is set to launch on September 24, 2026, on PS5, Xbox Series X/S and PC</strong></em></p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/gaming/7-games-im-looking-forward-to-this-year-that-arent-gta-6">7 games I’m looking forward to this year that aren’t GTA 6</a></li><li><a href="https://www.tomsguide.com/gaming/gaming-peripherals/can-a-budget-ps5-headset-actually-make-games-sound-immersive-i-ditched-my-usd299-razer-for-the-usd69-powera-lucidsound-ls500-to-find-out">I ditched my $299 Razer for the $69 PowerA LucidSound LS500</a></li><li><a href="https://www.tomsguide.com/gaming/gaming-peripherals/the-game-i-always-play-to-test-gaming-headsets-is-getting-a-sequel-heres-why-control-is-the-best-test-for-bass-treble-and-spatial-audio">Here’s why Control is the best test for bass, treble and audio</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
            </channel>
</rss>